Oldalak: [1]
  Nyomtatás  
Szerző Téma: Távoli bejelentkezés (OpenSSH)  (Megtekintve 1737 alkalommal)
0 Felhasználó és 1 vendég van a témában
masterminds
Adminisztrátor
*****
Nem elérhető Nem elérhető

Hozzászólások: 430


L1NuX PR0J3CT


« Dátum: 2006. október 12. 16:05:18 »

OpenSSH (Secure SHell)

Az SSH-ról általánosan


Az SSH egy hálózati protokoll, távoli gépkre való bejelentkezéshez. Van egy remek funkciója, amivel képes TCP protokollokon alapuló szolgáltatásokat kezelni (forwardolni). Például ftp kapcsolatok felépítésénél, a szerverre való bejelentkezéskor kért jelszavakat SSH protokollon keresztül küldjük el, így azok titkosítva jutnak el a szerverig (sftp).

Az SSH kapcsolat RSA kulcsokon alapul. Minden SSH-t használó gépnek van egy host-azonósító RSA kulcsa. SSH szervert futtató gépeken az SSH démonja generál egy szerver-azonósító RSA kulcsot is, amit szabályos időközönként frissít. Amikor egy kliens csatlakozni kíván a szerverhez, a szerver elküldi a saját host- és szerver-azonósító RSA kulcsának publikus részét. A kliens ekkor összehasonlítja a host-azonósító kulcsot az adatbázisában lévővel, és ha egyezik, generál egy számot, amit visszaküld a szervernek, a szerver publikus kulcsainak titkosításával. Ezt a számot tehát csak a szerver tudja visszafejteni a saját RSA kulcsainak privát felével. Ha a szerver visszafejtette a számot, akkor azt forgalom titkosító kulcsként (session key) felhasználja, és felépíti a titkosított kapcsolat. Ezután történik a kliens azonósítása (rhosts). A kliens, sikeres azonósítása után különféle szolgáltatásokat kérhet a szervertől: X11-es; TCP/IP; authentication agent kapcsolat átirányítását a biztonságos csatornára. Végül a kliens vagy egy shell indítását (slogin, ssh) vagy egy parancs végrehajtását (ssh, scp) kérheti a szervertõl.


------------------------------------------------------------------------------------------------------------------

OpenSSH

Az OpenSSH magábafoglalja az SSH hálózati eszközöket. A készletben találunk egy SSH szervert (sshd), egy ssh klienst (telnet helyett), egy scp és egy sftp klienst (rcp illetve ftp helyett), valamint segédeszközöket az SSH használatához (ssh-add, ssh-agent, ssh-keygen). Ezek a kliensek az SSH protokollon keresztül társalognak, tehát az adatfolyamok titkosítottak.


SSHD

Az SSHD, egy démonként futó szolgáltatás, ezért indítani az /etc/init.d/ssh vagy sshd start paranccsal tudjuk a legtöbb disztribúción. Konfigurációs fájlja az /etc/ssh könyvtár alatt található, sshd.config néven. Nézzünk át pár biztonsági beállítást hozzá:


Idézet
Port 22
Port, amelyen az SSH szerver figyeli a kéréseket (alapértelmezetten 22, de átrakhatjuk másik portra, ezzel is nehezítve a betörők dolgát)

Idézet
PermitRootLogin no
   Root bejelentkezésének tíltása (hasznos opció!)

Idézet
LoginGraceTime 60
  Maximális tétlenségi idő (alapértelmezetten 120mp) ami után bontja a kapcsolatot, ha nem történt bejelentkezés


A felhasználók bejelentkezésének opciói:

Idézet
AllowUsers user1,user2,user3
  Akiknek engedélyezett a belépés (a többieknek tiltott lesz)

Idézet
AllowGroups group
  Amely csoport(ok) tagjainak engedélyezett a belépés (a többieknek tiltott lesz)

vagy

Idézet
DenyUsers user4,user5,user6
Akiknek tiltott az SSH-n keresztüli bejelentkezés (a többieknek engedélyezett)

Idézet
DenyGroups group2
Amely csoport(ok) tagjainak tiltott az SSH-n keresztüli bejelentkezés (a többieknek engedélyezett)



További beállításokhoz információk: man sshd.conf


------------------------------------------------------------------------------------------------------------------

SSH kliens

Az SSH kliens beállítófájlja az /etc/ssh/ssh.conf alatt található. Ahhoz hogy csatlakozzunk egy SSH szerverhez a következő parancsot írjuk be:

Kód:
gabor@localhost:~# ssh 192.168.5.5
Idézet
The authenticity of host '192.168.5.5' can't be established.
RSA key fingerprint is b8:e5:c0:0d:3c:12:c1:c3:74:22:ce:81:19:25:e1:c4.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.5.5' (RSA) to the list of known hosts.
Password:

Ha még nem szerepelt az ~/.ssh/known_hosts állományunkban a távoligép host-azonósító RSA kulcsának publikus fele, eltárolja azt.


Idézet
Password:
Linux szgep 2.6.8-2-386 #1 Tue Aug 16 12:46:35 UTC 2005 i686 GNU/Linux

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Last login: Tue Oct 10 18:52:26 2006
gabor@szgep:~$

Az előbb említett módon a 192.168.5.5-s IP-jű távoligépre jelentkeztünk be gabor néven. Most lépjünk ki, és tegyük meg úgyanezt, zsolt felhasználóként.

Idézet
gabor@szgep:~$ exit
logout
Connection to szgep closed.



Kód:
ssh -l zsolt@192.168.5.5
Idézet
Password:
Linux szgep 2.6.8-2-386 #1 Tue Aug 16 12:46:35 UTC 2005 i686 GNU/Linux

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Last login: Tue Oct 10 18:52:26 2006
zsolt@szgep:~$

Az SSH parancs után felhasználó@host -ként hivatkoztunk a távoligépre, ezzel meghatározva, hogy milyen felhasználónévvel szeretnénk bejelentkezni. Ha csak hostnevet adunk meg, akkor alapértelmezettként a lokális felhasználónevünket helyettesíti be.
Naplózva

Fedora 11 (x86) @ KDE 4.3.1
Kernel 2.6.30.8 @ Core2Duo E7500 2,9Ghz
nVidia Driver 185.18.36 @ GeForce 9400 GT
masterminds
Adminisztrátor
*****
Nem elérhető Nem elérhető

Hozzászólások: 430


L1NuX PR0J3CT


« Válasz #1 Dátum: 2006. október 12. 16:05:49 »

SCP


Az scp paranccsal SSH kapcsolaton keresztül tudunk állományokat mozgatni számítógépek között. Távoligépekről tudunk állományokat másolni a helyi gépünkre, avagy a helyi gépünkről fájlokat, könyvtárakat feltölteni a távoligépre. Az scp az sshd beállításait használja, így akinek joga van bejelentkezni a távoligépre SSH-n keresztül, az képes használni az scp-t is.


A távoligépen lévő monster.mp3 állományt szeretném letölteni az itthoni gépemre (mindkét gépen a felhasználónevem karcsika). A következő parancsot kell kiadnom ehhez:

Kód:
scp karcsika@szerver:/home/karcsika/zene/monster.mp3 /home/karcsika/

Idézet
karcsika@otthon ~ $ scp karcsika@szerver:/home/karcsika/zene/monster.mp3 /home/karcsika/
Password:
monster.mp3


------------------------------------------------------------------------------------------------------------------


Az itthoni gépemen lévő backup könyvtár teljes tartalmát feltöltöm a szerveren lévő backup könyvtáramba:

Kód:
scp -r backup/ karcsika@szerver:/home/karcsika/backup/

Idézet
karcsika@otthon ~ $ scp -r backup/ karcsika@szerver:/home/karcsika/backup/
Password:
mysql.backup                                                                                                             100%  574KB 574.0KB/s   00:00
apache.backup                                                                                                           100%  307KB 306.7KB/s   00:01
ssh.backup                                                                                                                 100%  186KB 150.2KB/s   00:00
dhcp.backup                                                                                                               100%  102KB 102.0KB/s   00:00
Naplózva

Fedora 11 (x86) @ KDE 4.3.1
Kernel 2.6.30.8 @ Core2Duo E7500 2,9Ghz
nVidia Driver 185.18.36 @ GeForce 9400 GT
masterminds
Adminisztrátor
*****
Nem elérhető Nem elérhető

Hozzászólások: 430


L1NuX PR0J3CT


« Válasz #2 Dátum: 2006. október 12. 16:07:50 »

Távoli bejelentkezés RSA kulccsal

A jelszavas bejelentkezésen kivül, lehetőség van kulcsos azonósításra is. Generálunk egy saját RSA beléptetési kulcsot, aminek tulajdonában nem kér tőlünk a szerver jelszót (ha csak nem állítunk be hozzá). Első lépésként készítsük el kulcspárosunkat. Kérni fog egy jelszót, amit a kulcs használata során kell mindig megadnunk. Ha üresen hagyjuk ezt a mezőt, nem lesz jelszóval védve a kulcs.


FIGYELEM! Mindig kellően vigyázzunk a belépéshez készített privát kulcsunkra!


Kód:
ssh-keygen -b 2048 -t rsa -f ~/.ssh/távoligép_neve

Idézet
gabor@localhost:~$ ssh-keygen -b 2048 -t rsa -f ~/.ssh/szgep
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/gabor/.ssh/szgep.
Your public key has been saved in /home/gabor/.ssh/szgep.pub.
The key fingerprint is:
f2:77:5d:9a:fb:f3:b2:dd:ec:10:b7:7e:82:54:74:aa gabor@localhost

Legenerálodott a kulcspárosunk. Létrejött egy szgep és egy szgep.pub nevű kulcs. Az szgep.pub nevű állományt (kulcspárosunk publikus része) másoljuk fel a távoligépen lévő ~/.ssh/ könyvtárunkba.

Kód:
scp ~/.ssh/szgep.pub gabor@szgep:/home/gabor/.ssh/

Idézet
gabor@localhost:~$ scp ~/.ssh/szgep.pub gabor@szgep:/home/gabor/.ssh/
Password:
szgep.pub                                     100%  394     0.4KB/s   00:00

Következő lépésként jelentkezzünk be, majd másoljuk a feltöltött publikus kulcsot az ssh kulcstárolójába (sshd.conf-ban beállítva, alapértelmezetten: ~/.ssh/authorized_keys).

Kód:
ssh -l gabor@szgep
Kód:
cat ~/.ssh/szgep.pub >> ~/.ssh/authorized_keys


Ha mindezzel készen vagyunk, ellenőrizzük az sshd.conf-ban a következő beállításokat (root jogosultság szükséges, és az esetleges változtatások érvényesítéséhez sshd újraindítása).:

Idézet
RSAAuthentication yes


Majd végezetül nyissunk egy másik konzolt (az előző kapcsolatot tartsuk életben az esetleges hibák javításához), és teszteljük le a kulcsos beléptetést:

Kód:
ssh -i ~/.ssh/szgep gabor@szgep

(Ha állítottunk be jelszavas védelmet a privát kulcshoz itt fogja kérni)

Idézet
ssh -i ~/.ssh/szgep gabor@szgep
Linux szgep 2.6.8-2-386 #1 Tue Aug 16 12:46:35 UTC 2005 i686 GNU/Linux

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Last login: Thu Oct 12 15:13:23 2006
gabor@szgep:~$


Ezennel kijelenthetjük, hogy működik az RSA kulccsal való azonósítás.  Smiley


(szerk.: az sshd.conf-ban a PasswordAuthentication no opció beállításával biztonságosabbá varázsolhatjuk az ssh szerverünket, ugyanis ekkor csak rsa kulcs használatával lehetséges csatlakozni a szerverre.)
Naplózva

Fedora 11 (x86) @ KDE 4.3.1
Kernel 2.6.30.8 @ Core2Duo E7500 2,9Ghz
nVidia Driver 185.18.36 @ GeForce 9400 GT
masterminds
Adminisztrátor
*****
Nem elérhető Nem elérhető

Hozzászólások: 430


L1NuX PR0J3CT


« Válasz #3 Dátum: 2007. március 29. 20:41:24 »

A Fail2ban az ssh szerver biztonságát hivatott növelni (az iptables használatával). További információ itt.
Naplózva

Fedora 11 (x86) @ KDE 4.3.1
Kernel 2.6.30.8 @ Core2Duo E7500 2,9Ghz
nVidia Driver 185.18.36 @ GeForce 9400 GT
Oldalak: [1]
  Nyomtatás  

 
Ugrás: