You are on page 1of 6

Informatika a Felsoktatsban96 - Networkshop 96

Debrecen, 1996. augusztus 27-30.

SSH - A BIZTONSGOS ALTERNATVAZ RSH HELYETT


Kadlecsik Jzsef, kadlec@sunserv.kfki.hu
KFKI RMKI Szmtgp Hlzati Kzpont

Abstract

More security on Internet usually means greater inconvenience - but ssh is an exception. The features and usage of
this excellent tool are detailed with examples from real systems.

1. Mirt hasznljunk ssh-t az rsh helyett?


A (vilg) hlzaton dolgozva nap-mint-nap kell bejelentkeznnk egyik szmtgprl egy msikra.
Ehhez leggyakrabban a telnet s rsh/rlogin parancsok valamelyikt hasznljuk, noha azok biztonsgi
szempontbl mg csak nem is kielgtek. Pldul kzbls gpek lehallgathatjk az adatforgalmat, belertve a
password-ket is - a telnet, rsh nem titkost - de sok ms mdszer is ltezik jogosulatlan hozzfrs
megszerzshez.
A finn Tatu Ylnnen ltal rt ssh programcsomag (ssh, slogin, scp) funkcionlisan az rsh (rsh, rlogin,
rcp) helyettestje gy, hogy biztonsgos, ers autentikcival ellenrztt titkostott kapcsolatot hoz ltre kt,
egymsban nem bz gp kztt, amelyeket a nem-biztonsgosnak tekintett hlzat kt ssze. Az ssh a
kvetkez tpus tmadsok ellen vdett:

- IP cm hamists, amikor egy tvoli gp olyan IP csomagokat kld, mintha azok egy msik gp csomagjai
-

lennnek.
IP source routing, amikor egy gp gy tesz, mintha egy tvoli gp IP csomagja rajta keresztl rkezne.
DNS hamists, amikor name server bejegyzseket hamistanak
az adatforgalom kzbls gpek ltali lehallgatsa ellen
az IP csomagok kzbls gpek ltali megvltoztatsa ellen
X autentikcis adat lehallgatsa s meghamistsa ellen

Az ssh rhosts-RSA autentikcis mdszert hasznlva semmiben sem klnbzik a felhasznlk


szmra az rsh-tl - akr rsh/rlogin/rcp-knt is installlhat. Hasznlhat ssh-t nem ismer gpekhez
kapcsoldva is, mivel az ssh, amennyiben nem tallja az ssh szervert a msik gpen, elindtja az rsh-t nmaga
helyett.
Az ssh termszetesen semmifajta vdelmet nem tud nyjtani akkor, ha valaki hozzfr az adatainkhoz a
szmtgpnkn, vagy ha valaki mr betrt a gpre s azon root jogokkal rendelkezik - a hlzaton
keresztli tmadsok kivdsre kszlt.
Az ssh szerver s kliens Unix rendszereken mkdik s ingyenesen hasznlhat; kliens ltezik OS/2 s
MS-Windows-ra is, az utbbira a hivatalos vltozat azonban kereskedelmi termk.

2. Hogyan mkdik?

1120

Informatika a Felsoktatsban96 - Networkshop 96

Debrecen, 1996. augusztus 27-30.

Az ssh RSA kulcsokon alapul. Minden ssh-t hasznl gpnek van egy host-azonost RSA kulcsa
(default 1024 bit). A szerver gpen az sshd daemon ezen kvl generl egy szerver RSA kulcsot is (default 768
bit), amelyet rnknt frisst s amit soha nem trol a merevlemezen .
Amikor egy kliens (ssh) hozzkapcsoldik a szerverhez (sshd), elszr a szerver azonostsa trtnik
meg. A szerver elkldi a host- s szerver-kulcsok publikus rszt a kliensnek. A kliens sszehasonltja a hostazonost publikus kulcsot az adatbzisban lvvel s ellenrzi, hogy az vltozatlan-e. Ezutn a kliens generl
egy 256 bites vletlenszmot, amit a szerver host- s szerver-kulcsval egyarnt titkost, majd ezt visszakldi a
szervernek. A szerver az RSA kulcsai ismeretben vissza tudja fejteni a titkostott vletlenszmot, amit a
tovbbiakban a kt oldal a forgalom titkost kulcsul (session key) fog hasznlni - ettl a ponttl kezdve
minden titkostott, IDEA, DES, 3DES, ARCFOUR (RC4) vagy TSS algoritmust hasznlva.
A kvetkez lps a kliens-azonostsa (autentikci). Tbb mdszer ll ehhez a rendelkezsnkre:

- rhosts autentikci: Ha a kliens gp szerepel az /etc/hosts.equiv file-ban s a felhasznli azonostk


megegyeznek a kt gpen, vagy a kliens gp s a felhasznl azonostja szerepel a ~/.rhosts vagy ~/.shosts
file-ok valamelyikben, akkor a bejelentkezs engedlyezett. (Ez az autentikcis mdszer nem
hasznlatos, mert az ssh ekkor az rsh-nl nem nyjtana nagyobb biztonsgot.)
- rhosts s host-RSA autentikci (az elsdlegesen hasznlt autentikcis mechanizmus): Amennyiben a
bejelentkezs engedlyezett lenne rhosts autentikcival, a szerver mg ellenrzi a kliens host-azonost
RSA kulcst, gy, ahogy a kliens ellenrizte a szervert. Ez a mechanizmus kivdi az IP hamists, DNS
hamists s source routing tmadsi mdszereket.
- user-RSA autentikci: az ssh tmogatja azt, hogy a felhasznlk definiljanak sajt RSA kulcsokat,
amelyeket azutn tvoli gpekre ssh-val val bejelentkezskor nmaguk azonostsra hasznlhatnak.
- password alap autentikci: ha az elz mdszerek egyikvel sem sikerlt azonostani a felhasznlt, az
ssh kri a felhasznl password-jt. A password titkostottan kerl t a szerverre, gy lehallgatni nem lehet.
Ha a kliens sikeresen azonostotta magt, akkor a kapcsolat elksztseknt klnbz szolgltatsokat
krhet a szervertl: pszeudo-terminl alloklst, az X11-es kapcsolatok tirnytst a biztonsgos csatornra,
tetszleges TCP/IP kapcsolatok tirnytst a biztonsgos csatornra vagy az u.n. authentication agent
kapcsolat tirnytst a biztonsgos csatornra.
Vgl a kliens vagy egy shell indtst (slogin, ssh) vagy egy parancs vgrehajtst (ssh, scp) krheti a
szervertl.

A fzisokat jl illusztrlja az ssh verbose mdban val indtsa:


kadlec@blackhole:~$ ssh -v sunserv
SSH Version 1.2.13 (i486-unknown-linux), protocol version 1.3.
Standard version. Does not use RSAREF.
Reading configuration data /home/kadlec/.ssh/config
Applying options for *
Reading configuration data /usr/local/etc/ssh_config
ssh_connect: getuid 648 geteuid 0 anon 0
Connecting to sunserv [148.6.0.5] port 22.
Allocated local port 1022.
Connection established.
Remote protocol version 1.3, remote software version 1.2.13
Waiting for server public key.
Received server public key (768 bits) and host key (1024 bits).

1121

Informatika a Felsoktatsban96 - Networkshop 96

Host `sunserv` is known and matches the host key.


Initializing random; seed file /home/kadlec/.ssh/random_seed
Encryption type: idea
Sent encrypted session key.
Received encrypted confirmation.
Trying rhosts or /etc/hosts.equiv with RSA host authentication.
Remote: Accepted by .shosts.
Received RSA challenge for host key from server.
Sending response to host key RSA challenge.
Remote: Rhosts with RSA host authentication accepted.
Rhosts or /etc/hosts.equiv with RSA host authentication
accepted by server.
Requesting pty.
Requesting X11 forwarding with authentication spoofing.
Requesting authentication agent forwarding.
Requesting shell.
Entering interactive session.
Last login: ....
No news.
You have mail.
kadlec@sunserv:~$ exit
Connection to sunserv closed.
Transferred: stdin 14, stdout 1109, stderr 31 bytes
in 40.4 seconds
Bytes per seconds: stdin 0.3, stdout 27.5, stderr 0.8
Exit status 0

1122

Debrecen, 1996. augusztus 27-30.

Informatika a Felsoktatsban96 - Networkshop 96

Debrecen, 1996. augusztus 27-30.

3. Mit tud mg az ssh?


3.1 X11 tirnyts
Az egyik legknyelmesebb tulajdonsga az ssh-nak, hogy X Windows grafikus fellet hasznlata esetn
(a loklis gpen a DISPLAY vltoz be van lltva) a tvoli X11-es kapcsolatokat automatikusan tirnytja a
biztonsgos titkostott csatornra. Tovbb, hogy az X11 szerver autentikcis adatai ne hagyjk el a szervert,
az ssh vletlenszer cookie-t generl, s azt kldi t a hlzaton, termszetesen titkostottan:

X11 kliens, amely az


ssh szerveren fut

ssh szerver

A valdi, fizikai X
display

Titkostott csatorna

ssh kliens

Nem kell bajldnunk sem a DISPLAY vltoz belltsval, sem xhost vagy MAGIC-COOKIE X
Windows autentikcikkal, mert az ssh mindent elvgez helyettnk. Egyszeren vgrehajthatjuk a kvetkez
parancsot,
kadlec@blackhole:~$ ssh sunserv xterm
s az X terminl a kpernynkn minden tovbbi nlkl megjelenik.

3.2 TCP/IP port tirnyts


Az X11-es kapcsolatok automatikus tirnytsa a TCP/IP portok tirnytsnak egy specilis esete.
Pldul az ftp parancsot hasznlhatjuk gy, hogy a password-nk ne titkostatlanul haladjon t a hlzaton a
gpnk s a tvoli gp kztt, hanem az ssh ltal titkostottan. Ehhez grafikus felleten csak a kvetkezt kell
tennnk:
1. Egy ablakban vgrehajtjuk a kvetkez parancsot (a loklis port szma tetszleges):
kadlec@blackhole:~$ ssh -L 1234:sunserv:21 sunserv
Ezzel a paranccsal bejelentkeztnk a sunserv gpre s ugyanakkor a sunserv 21-es portjt, amely az ftp
parancs-portja, tirnytottuk a loklis gp 1234-es portjra a titkostott csatorna fltt.

2. Egy msik ablakban pedig a kvetkezt:


kadlec@blackhole:~$ ftp localhost 1234
Connected to localhost.
220 sunserv FTP server (Version wu-2.4(6) Fri Jun 16 11:25:25

1123

Informatika a Felsoktatsban96 - Networkshop 96

Debrecen, 1996. augusztus 27-30.

MET DST 1995) ready.


Name (localhost:kadlec):

Ksz! Az ftp parancs-portja gy titkostott, password-nk nem-lehallgathatan fog thaladni a hlzaton.


Mail-szervert hasznlva levelez programjaink minden egyes kapcsolatnl titkostatlanul kldik t
password-nket a szervernek. Az ssh port-tirnytst hasznlva a titkosts ezeknl is megoldhat. Stephane
Bortzmeyer Perl-scripje POP, mg Holger Trapp program-csomagja pine s IMAP esetn oldja meg a
problmt ssh segtsgvel; sem a mail-szerver, sem a kliens nem ignyel semmilyen mdostst egyik esetben
sem:
ftp://ftp.pasteur.fr/pub/Network/gwpop/
ftp://ftp.kfki.hu/pub/packages/security/
ssh/contrib/imap_sec.tgz
3.3 Tmrts
Lass vonalak fltt igen hasznos lehet az ssh azon kpessge, hogy kpes tmrteni a teljes forgalmat,
belertve az tirnytott X11 s TCP/IP portok forgalmt is.
3.4 Felhasznli RSA kulcsok
Az ssh esetben felhasznli RSA kulcsok az ssh-keygen paranccsal hozhatk ltre. Egy RSA kulcshoz
password helyett tetszleges hosszsg passphrase rendelhet. Az rhost s RSA autentikcihoz kpest
az RSA autentikci a felhasznltl tbb (de egyszeri) konfigurcis munkt ignyel:

rhost s RSA autentikci


a) A tvoli gpen az /.rhosts vagy /.shosts file-hoz megfelel
host

user

ejegyzseket kell adni

RSA autentikci
a) A loklis gpen:
i) Az ssh-keygen paranccsal RSA kulcso(ka)t kell ltrehozni
ii) Mdostani kell a bejelentkezsi folyamatot gy, hogy az az ssh-agent programmal
kezddjn s minden ms program (shell) abbl induljon:
Pldul X session (xdm) esetn:
/.xsession file:
#!/bin/sh
exec ssh-agent $HOME/.xsession.real
iii)

b)

Vagy a prompt-nl, vagy az /.xsession.real-bl, vagy menbl stb. vgrehatjuk az


ssh-add parancsot, amellyel a loklis gpen fut ssh-agent-hez hozzadjuk az ltalunk
hasznlt RSA kulcsot a megfelel passphrase megadsval.
A tvoli gp(ek)en az /.ssh/authorized_keys file-(ok)hoz hozzadjuk az RSA kulcsunk
publikus rszt, amely a loklis gpen az /.ssh/identity.pub file-ban van.

Az elkpzels az RSA autentikci mgtt a kvetkez: az ssh-agent a felhasznl loklis gpn fut, s
kezdetben semmilyen RSA kulcsot nem ismer - azokat az ssh-add programmal kell hozzadni. (Tetszleges
szm kulcs hasznlhat.) Mivel az RSA kulcsokhoz a kulcsmondatokat a loklis gpen kell megadni, azok

1124

Informatika a Felsoktatsban96 - Networkshop 96

Debrecen, 1996. augusztus 27-30.

soha nem haladnak t a hlzaton. A tvoli gpek az RSA kulcsunk publikus rszvel azonostjk magukat s a
kapcsolatok az ssh-agent-hez automatikusan a titkostott csatornra irnytdnak.
Az RSA autentikci klnsen akkor hasznos, amikor az ssh-t olyan gpen szeretnnk hasznlni,
amelyen nincs ssh s a gp adminisztrtora valamirt nem hajland azt installlni. Az ssh ekkor kznsges
felhasznlknt lefordthat, installlhat s RSA valamint password autentikcival hasznlhat. (Ahhoz,
hogy az rhost-RSA autentikci mkdjn, az ssh-t root-knt kell telepteni.)
4. Honnan tlthet le Magyarorszgon?
ftp://ftp.kfki.hu/pub/packages/security/ssh
5. Hol tallhat a tmrl tovbbi informci az Interneten?
Ssh Home Page
Ssh FAQ
RSA FAQ

http://www.cs.hut.fi/ssh/
http://www.uni-karlshruhe.de/~ig25/ssh-faq/
http://www.rsa.com/rsalabs/fa q/

1125

You might also like