MySecureShell - SecureFTP: Difference between revisions
(16 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==Sissejuhatus - mis on MySecureShell ning milleks seda kasutada?== | ==Sissejuhatus - mis on MySecureShell ning milleks seda kasutada?== | ||
MySecureShell on SFTP serveri konsool, mis põhineb OpenSSH baasil, millele on lisatud lisa-võimalusi. Mõningad võimalused ning positiivsed küljed: | MySecureShell on SFTP serveri konsool, mis põhineb OpenSSH baasil, millele on lisatud lisa-võimalusi. Mõningad võimalused ning positiivsed küljed: | ||
Line 11: | Line 9: | ||
===Märkus/Eeldus=== | ===Märkus/Eeldus=== | ||
Antud labori ülesehitusel installeerin MySecureShell serveri Fedora 19 Linux distributsiooni peale ning kliendina kasutan Ubuntu 12.04LTS distributsiooni.<br> | Antud labori ülesehitusel installeerin MySecureShell serveri Fedora 19 32bit Linux distributsiooni peale ning kliendina kasutan Ubuntu 12.04LTS 32bit distributsiooni.<br> | ||
Labor eeldab OpenSSH serveri olemasolu serveril ning selle töötamist.<br> | Labor eeldab OpenSSH serveri olemasolu serveril ning selle töötamist.<br> | ||
<b>Kõik käsud on käivitatud juurkasutaja õigustes!!!</b> | <b>Kõik käsud on käivitatud juurkasutaja õigustes!!!</b><br> | ||
MySecureShell versioon 1-31-1. | MySecureShell versioon 1-31-1. | ||
<br> | <br> | ||
== | ==Paigaldamine== | ||
===Automaatne | ===Automaatne paigaldus kasutades andmehoidlat=== | ||
Soovitatud variant, ehk lisame MySecureShell andmehoidla Fedorale teadaolevate andmehoidlate nimistusse ning | Soovitatud variant, ehk lisame MySecureShell andmehoidla Fedorale teadaolevate andmehoidlate nimistusse ning paigaldame programmi läbi paketihaldaja Yum. | ||
*Kõigepealt lisame MySecureShell andmehoidla Fedora serveri teadaolevasse nimistusse. Selleks lisame järgnevad read faili "/etc/yum.conf" | *Kõigepealt lisame MySecureShell andmehoidla Fedora serveri teadaolevasse nimistusse. Selleks lisame järgnevad read faili "/etc/yum.conf" | ||
<source lang="bash"> | <source lang="bash"> | ||
Line 32: | Line 30: | ||
yum update | yum update | ||
</source> | </source> | ||
*Ning | *Ning paigaldame tarkvara MySecureShell | ||
<source lang="bash"> | <source lang="bash"> | ||
yum install mysecureshell.i386 | yum install mysecureshell.i386 | ||
</source> | </source> | ||
<br> | <br> | ||
===Alternatiivne käsitsi | |||
===Alternatiivne käsitsi paigaldamine=== | |||
*Laeme alla MySecureShell rpm paketi (näites x86 arhitektuurile) | *Laeme alla MySecureShell rpm paketi (näites x86 arhitektuurile) | ||
<source lang="bash"> | <source lang="bash"> | ||
Line 43: | Line 42: | ||
wget http://mysecureshell.free.fr/repository/index.php/fedora/i686/mysecureshell-1.32-1.i686.rpm | wget http://mysecureshell.free.fr/repository/index.php/fedora/i686/mysecureshell-1.32-1.i686.rpm | ||
</source> | </source> | ||
* | *Paigaldame paketi | ||
<source lang="bash"> | <source lang="bash"> | ||
rpm -ivh mysecureshell_xxx.rpm | rpm -ivh mysecureshell_xxx.rpm | ||
</source> | </source> | ||
<br> | <br> | ||
===Graafilise liidese | ===Graafilise liidese paigaldamine=== | ||
Kuigi graafilist liidest võib | Kuigi graafilist liidest võib paigaldada ka klient-arvutisse ning ühendada kaugühendusega serveri külge halduseks, on mõistlik siiski paigaldada see liides otse serveri arvuti külge, kuna sellisel juhul säilib programmi terviklik funktsionaalsus (vastasel juhul ei ole mõningad funktsioonid kättesaadavad). | ||
Graafilise liidese | Graafilise liidese paigaldamiseks server arvutisse toimigem järgnevalt: | ||
*Veendume, et Java on | *Veendume, et Java on paigaldatud | ||
<source lang="bash"> | <source lang="bash"> | ||
yum install java-1.8.0-openjdk.i686 | yum install java-1.8.0-openjdk.i686 | ||
Line 61: | Line 60: | ||
java -jar sftp-mss.jar | java -jar sftp-mss.jar | ||
</source> | </source> | ||
Kuna labori näites kasutame OpenJava't ning mitte SUN'i enda ametlikku Java't, siis käivitusele järgneb teavitus selle kohta: | Kuna labori näites kasutame OpenJava't ning mitte SUN'i enda ametlikku Java't, siis käivitusele järgneb teavitus selle kohta: (joonis 1. java) | ||
[[File:Errorjava.PNG | thumb | left | | [[File:Errorjava.PNG | thumb | left | joonis 1. java]]<br><br><br><br><br><br><br><br><br><br> | ||
Ning proovides ühendada kasutajat serveriga, saame teise veateate: | Ning proovides ühendada kasutajat serveriga, saame teise veateate: (joonis 2. nullpointer) | ||
[[File:Nullpointererr.PNG | thumb | left | | [[File:Nullpointererr.PNG | thumb | left | joonis 2. nullpointer]]<br><br><br><br><br><br><br><br><br><br> | ||
Teisest veateatest saab lahti, kui vajutate "Disconnect" ning ühendate uuesti serveriga end. Seejärel töötab liides nagu ette nähtud. | Teisest veateatest saab lahti, kui vajutate "Disconnect" ning ühendate uuesti serveriga end. Seejärel töötab liides nagu ette nähtud. | ||
Line 78: | Line 77: | ||
</source> | </source> | ||
<br> | <br> | ||
==Paroolita usaldusväärne kaugelt sisse logimine== | |||
Kui on soov logida SFTP serverisse sisse, serveris defineeritud kasutajaga, ilma, et sisestaksite parooli, on võimalik luua võtmepaariga usaldatud logimine. Tegemist on SSH autentimisega, kuid kuna MSS SFTP töötab just SSH protokollil, siis töötab see moodus korrektselt.<br> | |||
Antud näites olen logitud sisse klient-masinasse kasutajaga kalle, küll aga soovin luua SFTP ühenduse serverisse kasutajaga root (juurkasutaja). Praktilises elus soovitan soojalt mitte kunagi teha võtmepaare juurkasutajale! See on küll mugav, kuid sisaldab endas turvariski, kui unustate arvuti lahti.<br> | |||
*Klient arvutis genereerin avaliku ning privaatse RSA võtmepaari: | |||
<source lang="bash"> | |||
ssh-keygen -t rsa | |||
</source> | |||
*Fedora SFTP serveris veendun, et kaust ning fail /root/.ssh/authorized_keys oleks loodud. | |||
*Saadan avaliku võtme klient arvutist (mille genereerisime eelnevalt ~/.ssh/id_rsa.pub) Fedora SFTP serverisse juurkasutaja usaldatud võtmete kausta: | |||
<source lang="bash"> | |||
cat /home/kalle/.ssh/id_rsa.pub | ssh root@192.168.56.101 'cat >> .ssh/authorized_keys' | |||
</source> | |||
*Järgnevalt võime kasutaja kalle alt (klient arvuti) logida SFTP'ga otse Fedora serverisse, kuna usaldus on võtmepaariga loodud: | |||
<source lang="bash"> | |||
sftp root@192.168.56.101 | |||
</source> | |||
==Testimine== | ==Testimine== | ||
Line 83: | Line 98: | ||
*Käsurealt | *Käsurealt | ||
<source lang="bash"> | <source lang="bash"> | ||
sftp kasutaja@192.168.56.101 | |||
</source> | |||
Väljund: | |||
<source lang="bash"> | |||
The authenticity of host '192.168.56.101 (192.168.56.101)' can't be established. | The authenticity of host '192.168.56.101 (192.168.56.101)' can't be established. | ||
ECDSA key fingerprint is 64:46:28:c1:9b:90:c6:3f:68:ed:cc:ca:81:60:35:a1. | ECDSA key fingerprint is 64:46:28:c1:9b:90:c6:3f:68:ed:cc:ca:81:60:35:a1. | ||
Line 92: | Line 110: | ||
sftp> | sftp> | ||
</source> | </source> | ||
*FileZilla FTP kliendiga | *FileZilla FTP kliendiga sisselogimine. (joonis 3. filezilla) | ||
[[File:Fzaccess.PNG | thumb | left | | [[File:Fzaccess.PNG | thumb | left | joonis 3. filezilla]] | ||
<br> | <br> | ||
<br> | <br> | ||
Line 111: | Line 129: | ||
</source> | </source> | ||
MySecureShell võimaldab väga paindlikku konfiguratsiooni. Järgnevalt toon välja mõningad võimalused, mida saate muuta modifitseerides faili /etc/ssh/sftp_config.<br> | MySecureShell võimaldab väga paindlikku konfiguratsiooni. Järgnevalt toon välja mõningad võimalused, mida saate muuta modifitseerides faili /etc/ssh/sftp_config.<br> | ||
Eelpool tõin välja, et on võimalik ühendada end SFTP serveriga kasutades FileZilla FTP programmi. Kui olete kaasa teinud siiani juhendit, võisite märgata, et kuigi ühendus on võimalik serveriga saavutada, ei ole aga hetkel võimalik midagi serverisse üles laadida. See tuleneb sellest, et konfiguratsiooni failis on määratletud maksimaalseks ühenduste arvuks 1. Kui olete serveriga ühenduses, on see maksimaalne väärtus täidetud ning rohkem ühendusi luua ei ole võimalik (faili laadimiseks on vajalik luua uus ühendus andme-liikluse jaoks). Selleks, et üheaegne ühendus ning andmete üleslaadimine oleks võimalik muudame konfiguratsioonis järgneva parameetri, mis kuulub <Default> teekide vahele: | Eelpool tõin välja, et on võimalik ühendada end SFTP serveriga kasutades FileZilla FTP programmi. Kui olete kaasa teinud siiani juhendit, võisite märgata, et kuigi ühendus on võimalik serveriga saavutada, ei ole aga hetkel võimalik midagi serverisse üles laadida. See tuleneb sellest, et konfiguratsiooni failis on määratletud maksimaalseks ühenduste arvuks 1. Kui olete serveriga ühenduses, on see maksimaalne väärtus täidetud ning rohkem ühendusi luua ei ole võimalik (faili laadimiseks on vajalik luua uus ühendus andme-liikluse jaoks). Selleks, et üheaegne ühendus ning andmete üleslaadimine oleks võimalik, muudame konfiguratsioonis järgneva parameetri, mis kuulub <Default> teekide vahele: | ||
<source lang="bash"> | <source lang="bash"> | ||
LimitConnectionByUser 2 | LimitConnectionByUser 2 | ||
Line 141: | Line 159: | ||
Include [asukoht] #võimaldab lugeda sisse lisa-konfiguratsiooni faili. Kasulik, kui hoiate kasutajate ning gruppide konfiguratsiooni faile eraldi. | Include [asukoht] #võimaldab lugeda sisse lisa-konfiguratsiooni faili. Kasulik, kui hoiate kasutajate ning gruppide konfiguratsiooni faile eraldi. | ||
</source> | </source> | ||
==Lisakäsklused== | |||
Järgnevad käsklused paigaldatakse koos MySecureShell paketiga ning on võimalik käivitada otse terminalist. Eesmärgiks hõlpsustada serverihaldust. | |||
<source lang="bash"> | |||
sftp-kill [kasutajanimi] #termineerib SFTP kasutaja sessiooni | |||
sftp-state #väljund serveri hetkelise seisundi kohta | |||
sftp-user [parameeter] [kasutajanimi] #võimaldab luua/kustutada/väljastada nimekirja SFTP kasutajatest. Võimalikud parameetrid: <b>create</b>, <b>delete</b>, <b>list</b> (viimase puhul ei määrata kasutajanime). | |||
sftp-verif #kontrollib SFTP failide olemasolu, õigusi ning õigsust. | |||
sftp-who #väljastab nimekirja hetkel serveriga ühenduses olevatest kasutajatest ning info nende sessioonidest. | |||
</source> | |||
==Kokkuvõte== | |||
MySecureShell võimaldab vähese vaevaga üles seada SFTP serveri, mis baseerub OPEN-SSH protokollil ning on suuresti kohandatav vastavalt vajadustele. Käesolevas töös käsitlesime MSS'i paigaldamist, kasutajate loomist, seadistamist ning mõningaid lisavõimalusi.<br> | |||
Kirjatöö on tehtud ITK õppeaine Linuxi Administreerimine Labor 2 raames. | |||
==Allikad== | |||
[http://www.unixmen.com/setup-secure-ftp-server-mysecureshell/ Unixmen MSS]<br> | |||
[http://mysecureshell.sourceforge.net/ MySecureShell] |
Latest revision as of 15:39, 2 January 2014
Sissejuhatus - mis on MySecureShell ning milleks seda kasutada?
MySecureShell on SFTP serveri konsool, mis põhineb OpenSSH baasil, millele on lisatud lisa-võimalusi. Mõningad võimalused ning positiivsed küljed:
- Kontroll sisse tuleva ning välja mineva liikluse maksimaalse hetkelise läbilaske üle.
- Serveri haldus läbi graafilise liidese.
- Integreeritud ning konfigureeritav logi.
- Ligipääsukontroll vastavalt kasutajatele, IP aadressidele või gruppidele.
- Kogu liiklus krüpteeritakse kasutades SSH protokolli.
- Tarvis lubada vaid üks port (vaikimisi port 22), et ühendus toimiks.
Märkus/Eeldus
Antud labori ülesehitusel installeerin MySecureShell serveri Fedora 19 32bit Linux distributsiooni peale ning kliendina kasutan Ubuntu 12.04LTS 32bit distributsiooni.
Labor eeldab OpenSSH serveri olemasolu serveril ning selle töötamist.
Kõik käsud on käivitatud juurkasutaja õigustes!!!
MySecureShell versioon 1-31-1.
Paigaldamine
Automaatne paigaldus kasutades andmehoidlat
Soovitatud variant, ehk lisame MySecureShell andmehoidla Fedorale teadaolevate andmehoidlate nimistusse ning paigaldame programmi läbi paketihaldaja Yum.
- Kõigepealt lisame MySecureShell andmehoidla Fedora serveri teadaolevasse nimistusse. Selleks lisame järgnevad read faili "/etc/yum.conf"
[mysecureshell]
name=MySecureShell
baseurl=http://mysecureshell.free.fr/repository/index.php/fedora/$basearch/
enabled=1
gpgcheck=0
- Seejärel värskendame kohaliku informatsiooni andmehoidlates leiduvatest tarkvaradest ning paigaldame vastavad uuendused:
yum update
- Ning paigaldame tarkvara MySecureShell
yum install mysecureshell.i386
Alternatiivne käsitsi paigaldamine
- Laeme alla MySecureShell rpm paketi (näites x86 arhitektuurile)
cd ~
wget http://mysecureshell.free.fr/repository/index.php/fedora/i686/mysecureshell-1.32-1.i686.rpm
- Paigaldame paketi
rpm -ivh mysecureshell_xxx.rpm
Graafilise liidese paigaldamine
Kuigi graafilist liidest võib paigaldada ka klient-arvutisse ning ühendada kaugühendusega serveri külge halduseks, on mõistlik siiski paigaldada see liides otse serveri arvuti külge, kuna sellisel juhul säilib programmi terviklik funktsionaalsus (vastasel juhul ei ole mõningad funktsioonid kättesaadavad). Graafilise liidese paigaldamiseks server arvutisse toimigem järgnevalt:
- Veendume, et Java on paigaldatud
yum install java-1.8.0-openjdk.i686
- Laeme alla MySecureShell graafilise liidese ning käivitame kasutades javat
wget http://sourceforge.net/projects/mysecureshell/files/MySecureShell%20Graphical%20Tools/v1.90/MSS_Frontend_v1.9.zip
unzip MSS_Frontend_v1.9.zip
java -jar sftp-mss.jar
Kuna labori näites kasutame OpenJava't ning mitte SUN'i enda ametlikku Java't, siis käivitusele järgneb teavitus selle kohta: (joonis 1. java)
Ning proovides ühendada kasutajat serveriga, saame teise veateate: (joonis 2. nullpointer)
Teisest veateatest saab lahti, kui vajutate "Disconnect" ning ühendate uuesti serveriga end. Seejärel töötab liides nagu ette nähtud.
Teenuse kasutaja loomine
Teenusele kasutaja loomine, määrates ära vaikimisi shell (konsool)
useradd -m -s /bin/MySecureShell kasutaja
passwd kasutaja
Kui teil on kasutaja juba eelnevalt loodud, siis vaikimisi konsooli kasutajale saab määrata järgneva käsuga:
usermod -s /bin/MySecureShell kasutaja
Paroolita usaldusväärne kaugelt sisse logimine
Kui on soov logida SFTP serverisse sisse, serveris defineeritud kasutajaga, ilma, et sisestaksite parooli, on võimalik luua võtmepaariga usaldatud logimine. Tegemist on SSH autentimisega, kuid kuna MSS SFTP töötab just SSH protokollil, siis töötab see moodus korrektselt.
Antud näites olen logitud sisse klient-masinasse kasutajaga kalle, küll aga soovin luua SFTP ühenduse serverisse kasutajaga root (juurkasutaja). Praktilises elus soovitan soojalt mitte kunagi teha võtmepaare juurkasutajale! See on küll mugav, kuid sisaldab endas turvariski, kui unustate arvuti lahti.
- Klient arvutis genereerin avaliku ning privaatse RSA võtmepaari:
ssh-keygen -t rsa
- Fedora SFTP serveris veendun, et kaust ning fail /root/.ssh/authorized_keys oleks loodud.
- Saadan avaliku võtme klient arvutist (mille genereerisime eelnevalt ~/.ssh/id_rsa.pub) Fedora SFTP serverisse juurkasutaja usaldatud võtmete kausta:
cat /home/kalle/.ssh/id_rsa.pub | ssh root@192.168.56.101 'cat >> .ssh/authorized_keys'
- Järgnevalt võime kasutaja kalle alt (klient arvuti) logida SFTP'ga otse Fedora serverisse, kuna usaldus on võtmepaariga loodud:
sftp root@192.168.56.101
Testimine
Peale kasutaja loomist võite proovida ligipääsu kliendi arvutist SFTP serveri poole:
- Käsurealt
sftp kasutaja@192.168.56.101
Väljund:
The authenticity of host '192.168.56.101 (192.168.56.101)' can't be established.
ECDSA key fingerprint is 64:46:28:c1:9b:90:c6:3f:68:ed:cc:ca:81:60:35:a1.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.101' (ECDSA) to the list of known hosts.
kasutaja@192.168.56.101's password:
Connected to 192.168.56.101.
sftp>
- FileZilla FTP kliendiga sisselogimine. (joonis 3. filezilla)
Konfigureerimine
Ennem kui hakkate konfiguratsiooni muutma (eriti läbi graafilise liidese), on äärmiselt tähtis luua algsest konfiguratsiooni failist varukoopia.
cp /etc/ssh/sftp_config /root/copyof_sftp_config
MySecureShell võimaldab väga paindlikku konfiguratsiooni. Järgnevalt toon välja mõningad võimalused, mida saate muuta modifitseerides faili /etc/ssh/sftp_config.
Eelpool tõin välja, et on võimalik ühendada end SFTP serveriga kasutades FileZilla FTP programmi. Kui olete kaasa teinud siiani juhendit, võisite märgata, et kuigi ühendus on võimalik serveriga saavutada, ei ole aga hetkel võimalik midagi serverisse üles laadida. See tuleneb sellest, et konfiguratsiooni failis on määratletud maksimaalseks ühenduste arvuks 1. Kui olete serveriga ühenduses, on see maksimaalne väärtus täidetud ning rohkem ühendusi luua ei ole võimalik (faili laadimiseks on vajalik luua uus ühendus andme-liikluse jaoks). Selleks, et üheaegne ühendus ning andmete üleslaadimine oleks võimalik, muudame konfiguratsioonis järgneva parameetri, mis kuulub <Default> teekide vahele:
LimitConnectionByUser 2
Selle abil määrame ära kõikidele kasutajatele vaikimisi lubatud ühenduste arvuks 2. Tasub meeles pidada, et <Default> teekide vahel tehtud muudatused kehtivad kõigile vaikimisi, kui ei ole parameetrit välja toodud eraldi kasutaja või grupi teekide vahel. Siinkohal toon näite, kuidas olen määranud kasutaja "kasutaja" administraatoriks:
<user kasutaja>
IsAdmin true
</user>
Samuti saab kõiki ülejäänud parameetreid (Üles/allalaadimise kiirus jne) määrata kasutaja kohta või grupi kohta. Järgnevalt toongi välja mõningad parameetrid, mida võiks modifitseerida vastavalt vajadusele ning mida pean tähtsaks.
GlobalDownload 50k #määratleb serverist allalaadimise kiiruse piirangu kõikidele klientidele kokku. Võimalik kasutada vormingut 50 (50 bitti), 50k (50 kilobaiti), 50m (50 megabaiti). Number 50 on vaid näide.
GlobalUpload 0 #määratleb serverist üleslaadimise kiiruse piirangu kõikidele klientidele kokku. 0 - piirangut ei eksisteeri.
Download 5k #määratleb allalaadimise kiiruse piirangu ühe kliendi kohta.
Upload 0 #määratleb üleslaadimise kiiruse piirangu ühe kliendi kohta.
StayAtHome true/false #määratleb, kas kasutaja on piiratud vaid enda kodukataloogis olema.
LimitConnection 10 #määratleb maksimaalse ühenduste arvu serveri jaoks.
LimitConnectionByUser 2 #määratleb maksimaalse ühenduste arvu kasutaja kohta.
LimitConnectionByIP 2 #määratleb maksimaalse ühenduste arvu lähte-IP-aadressi kohta.
Home /home/$USER #sisse logiva kasutaja kodukataloogi asukoht ($USER muutuja muudab ligipääsu erinevatele kasutajatele dünaamiliseks).
IdleTimeOut 5m #aeg, mille järel ühendus termineeritakse, kui kasutaja ei ole aktiivne.
ResolveIP true/false #serveri IP lahendamine DNS kirjete abil. Keelates selle, saab serverile ligi vaid serveri vastava liidese IP abil.
HideNoAccess true/false #peidab ühendatud kasutaja eest kataloogipuu/kataloogid, kuhu kasutajal õigusi ei ole.
DefaultRights 0640 0750 #määrab uutele/serverisse laetavatele failidele ning kataloogidele vaikimisi õigused.
ShowLinksAsLinks true/false #võimaldab näidata kasutajale seoseid, kui seose sihtpunkti.
LogFile [asukoht] #määrab kuhu logifail kirjutatakse SFTP liiklusega seoses, vaikimisi /var/log/sftp-server_ftp.log
DisableAccount true/false #võimaldab termineerida ajutiselt kasutaja konto.
Include [asukoht] #võimaldab lugeda sisse lisa-konfiguratsiooni faili. Kasulik, kui hoiate kasutajate ning gruppide konfiguratsiooni faile eraldi.
Lisakäsklused
Järgnevad käsklused paigaldatakse koos MySecureShell paketiga ning on võimalik käivitada otse terminalist. Eesmärgiks hõlpsustada serverihaldust.
sftp-kill [kasutajanimi] #termineerib SFTP kasutaja sessiooni
sftp-state #väljund serveri hetkelise seisundi kohta
sftp-user [parameeter] [kasutajanimi] #võimaldab luua/kustutada/väljastada nimekirja SFTP kasutajatest. Võimalikud parameetrid: <b>create</b>, <b>delete</b>, <b>list</b> (viimase puhul ei määrata kasutajanime).
sftp-verif #kontrollib SFTP failide olemasolu, õigusi ning õigsust.
sftp-who #väljastab nimekirja hetkel serveriga ühenduses olevatest kasutajatest ning info nende sessioonidest.
Kokkuvõte
MySecureShell võimaldab vähese vaevaga üles seada SFTP serveri, mis baseerub OPEN-SSH protokollil ning on suuresti kohandatav vastavalt vajadustele. Käesolevas töös käsitlesime MSS'i paigaldamist, kasutajate loomist, seadistamist ning mõningaid lisavõimalusi.
Kirjatöö on tehtud ITK õppeaine Linuxi Administreerimine Labor 2 raames.