MySecureShell - SecureFTP: Difference between revisions

From ICO wiki
Jump to navigationJump to search
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
Under immense construction, ETA unavailable.
==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><br>
<b>Kõik käsud on käivitatud juurkasutaja õigustes!!!</b><br>
Line 51: Line 49:
===Graafilise liidese paigaldamine===
===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).
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 installeerimiseks server arvutisse toimigem järgnevalt:
Graafilise liidese paigaldamiseks server arvutisse toimigem järgnevalt:
*Veendume, et Java on paigaldatud
*Veendume, et Java on paigaldatud
<source lang="bash">
<source lang="bash">
Line 62: 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 | Java error]]<br><br><br><br><br><br><br><br><br><br>
[[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 | NullPointer java error]]<br><br><br><br><br><br><br><br><br><br>
[[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 79: 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 84: Line 98:
*Käsurealt
*Käsurealt
<source lang="bash">
<source lang="bash">
kalle@ubuntuklient:~$ sftp kasutaja@192.168.56.101
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 93: Line 110:
sftp>  
sftp>  
</source>
</source>
*FileZilla FTP kliendiga
*FileZilla FTP kliendiga sisselogimine. (joonis 3. filezilla)
[[File:Fzaccess.PNG | thumb | left | FileZilla]]
[[File:Fzaccess.PNG | thumb | left | joonis 3. filezilla]]
<br>
<br>
<br>
<br>
Line 112: 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 142: 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==
==Lisakäsklused==
Järgnevad käsklused paigaldatakse koos MySecureShell paketiga ning on võimalik käivitada otse terminalist. Eesmärgiks hõlpsustada serverihaldust.
Järgnevad käsklused paigaldatakse koos MySecureShell paketiga ning on võimalik käivitada otse terminalist. Eesmärgiks hõlpsustada serverihaldust.
Line 152: Line 170:
</source>
</source>
==Kokkuvõte==
==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 installeerimist, kasutajate loomist, seadistamist ning mõningaid lisavõimalusi.<br>
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.
Kirjatöö on tehtud ITK õppeaine Linuxi Administreerimine Labor 2 raames.



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)

joonis 1. java











Ning proovides ühendada kasutajat serveriga, saame teise veateate: (joonis 2. nullpointer)

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)
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.

Allikad

Unixmen MSS
MySecureShell