SSH és SSH port forwarding használata

Ez a lap csak egy rövid bevezetõ, részletesebb doksi a TTSSH documentation oldalon található.

A Telnet protokoll nem biztonságos: a belépéshez használt jelszót és az átvitt adatokat nem titkosítja, ezért könnyen lehallgatható. Az FTP protokoll sem titkosít, az FTP-s belépések jelszavai is könnyen lehallgathatók. Unix-Unix között ezek már megoldott problémák (ssh, scp), ezért ezen a lapon csak a Windows-Unix együttmûködésrõl írok.

Az egyik megoldás az SSH (Secure SHell) protokoll használata. Az SSH hasonló aTelnet-hez, a legfontosabb különbség az, hogy titkosítva viszi át az egész adatforgalmat, így a jelszót is. Egy fontos plusz szolgáltatása a port forwarding, amivel a TCP felett futó egyszerû protokollokat (POP3, IMAP) titkosítva vihetjük át a kliensgép és a Unix szerver között. Ha szerencsénk van, akkor az FTP parancs-csatornáját - ahol a jelszó megy - is titkosítani tudjuk vele. (az FTP adatcsatornáját ez nem titkosítja!)

Az egyik legjobb ingyenesen hozzáférhetõ Windows-os SSH kliens a TTSSH. Ez a Tera Term nevû Windows-os Telnet-kliensre épül. Win95, WinNT 4.0, Win98-on fut. Az installálásához szükséges fájlok:

 Tera Term 2.3 (921 kB)
 TTSSH 1.5.1 (267 kB)

Az installálás lépései:

  1. tterm23.zip kitömörítése
  2. az így keletkezett SETUP.EXE elindítása, válaszolás a kérdéseire
  3. a ttssh151.zip kitömörítése abban a könyvtárban, ahová a Tera Term-et installáltuk (default: C:\Program Files\ttermpro\)
  4. shortcut elhelyezése a desktopon a ttssh.exe-re (vigyázat: nem a ttermpro.exe-re, mert az a Telnet kliens)
 
Ha elindítjuk, egy ilyen ablak jön fel, töltsük ki:
 
New connection
 
 
A belépéshez megadott usernév és a jelszó:
 
SSH Authentication
 
 
Ha a szerver publikus kulcsát még nem ismeri a gepünk, akkor fel kell vennünk az adatbázisba:
 
security warning
 
 
Sikerült belépni a szerverre, beállítjuk a port forwarding-ot:
 
Menu: Setup/SSH Forwarding
 
Forwarding Setup
 
 
A port forwarding lényege: Forward local port esetén: az SSH kliens és a szerveren futó SSH szerver megbeszélik, hogy az SSH kliens felül a kliens gép FTP portjára, mintha õ egy FTP szerver lenne. Ha valaki (egy FTP kliensprogram) kapcsolódik hozzá, akkor a kapott adatokat titkosítja, és átküldi az SSH szervernek. Az SSH szerver a kapott adatokat visszakódolja, rákapcsolódik a szerver (azaz a sajat maga) FTP portjára, és a visszakódolt adatokat beküldi az FTP portra. Visszafelé az adatok hasonlóan utaznak:
 
(FTPszerver)->(SSHszerver)--- - - - - - - - --->(SSHkliens)->(FTPkliens)
 
Ennek a beállítása:
 
SSH Port Forwarding
 
 
A dolog tesztelése, hogy lássuk, mûködik-e:
(egy DOS paranccsorból kiadott  telnet localhost 21 után kb. ezt kellene látni - a saját gépünk 21-es portján a balu 21-es portja látszik: a 21-es az FTP port)
 
telnet localhost 21
 

Az FTP protokoll úgy mûködik, hogy a parancs-csatornán egyeztet egymással a kliens és a szerver, és minden átvitt fájlnak (pl. egy dir eredményének is) kûlön TCP kapcsolatot nyitnak. Aszerint, hogy az adatátviteli csatornát melyik oldal nyitja, 2-féle módban mûködhetnek: aktív (szerver nyitja) és passzív (kliens nyitja). Igazából ez így egy eléggé nyakatekert megoldás: a kliens és a szerver is azt hiszi hogy saját magával beszél (a parancs-csatornán), de az adatcsatornát mégis egymáshoz kell majd nyitniuk. Biztonsági okok miatt sok Unixos FTP szerverprogramba az eredeti FTP protokollhoz képest olyan korlátozásokat építettek, ami miatt nem mindegyik módban tudja az SSH port forwarding feletti FTP-t:
 

FTP szerver
aktív módban
passzív módban
SunOS 5.7 (a balu-n ilyen van) 
OK
OK
wu-ftpd 2.6.0 (Linuxon elterjedt)
-
OK
OpenBSD-féle in.ftpd 6.2/Linux-0.10 (Debian Linuxon ez a default)
-
-

Ez azért fontos, mert a Windows-os FTP kliensprogramok nem mindig ismerik mindkét módot:
 

FTP kliens
aktív mód
passzív mód
Windows Commander
?
OK
Netscape 4.x
-
OK
Internet Explorer 4.x
-
OK
Win98 parancssori ftp kliens
OK
-
FAR
?
?

Az FTP kliensprogramnak a kliensgépen futó SSH-hoz kell beszélnie, ezért FTP szerverként a saját gépünk nevét kell megadni neki. Passzív módban a localhost, vagy 127.0.0.1-et, aktív módban a gépünk rendes nevét, pl. win98.sch.bme.hu-t kell használni.

Ezekhez az infókhoz további success/bug reportokat ide küldhettek: bartoki+ssh@sch.bme.hu
 

FONTOS!

A port forwarding csak addig a szerverig titkosított, amelyikre beléptünk az SSH-val. Ha a kliensgéprõl a szerver1-re lépünk be, és utána a szerver2-re menõ forwardingot használunk, akkor az adatok a kliensgép->szerver1->szerver2 útvonalon mennek, a szerver1 és a szerver2 között titkosítatlanul! Ezért mindig csak azt a forwarding beállítást használjuk, amelyik gépre beléptünk az SSH-val, mert különben semmit sem ér az egész. :) 

A port forwarding feletti FTP-zés az átvitt adatokat nem titkosítja!

 

Utolsó módosítás: 2000. február 6.
Bartók István