Bevezetés A Secure Shell (SSH, „biztonságos héj”) egy segédprogram, amelyet számos módon leírhatunk. Mondhatjuk, hogy protokoll, hogy titkosító eszköz, hogy ügyfél–kiszolgáló alkalmazás, vagy hogy parancsfelület – nem véletlenül, hiszen az SSH egyetlen csomagon belül különbözõ szolgáltatásokat biztosít. Az SSH változatos eszközei, valamint az a képessége, hogy szolgáltatásait biztonságosan képes nyújtani, azt eredményezték, hogy az SSH-t számos céges hálózatban kapocsként használják. A legtöbb biztonsági szakember valószínûleg már pályája elején felfedezte magának az SSH-t, és azóta is szerelmes bele. Az SSH azt jelenti a biztonsággal foglalkozónak, mint a fánk Homer Simpsonnak: mennyei mannát. A szakember hajlamos újra és újra feltenni magában a kérdést, hogy létezik-e olyasmi, amire az SSH nem képes? Ha a biztonság a szakterületünk, az SSH minden vágyunkat teljesíti, akár ingyen lemossa az autónkat hétvégén (legalábbis néha már-már olyan benyomást kelt, mintha képes lenne erre is). Az SSH-ban az is nagyszerû, hogy nem csak a biztonsági szakemberek használják és imádják, hanem más területek technikai és nem technikai szakemberei is. Ha az SSH-t összevetjük az iparban használatos más biztonsági segédprogramokkal, például az RSA SecureID jegyekkel, megfigyelhetjük, hogy azok végfelhasználói elsõsorban a biztonsági szakemberek. A SecureID-t a nem technikai személyzet nem igazán használja, és nem alkalmazzák széles körben olyan környezetekben, amelyek nem állnak szoros kapcsolatban a vállalati biztonsággal. Ezzel szemben az SSH számos Unix munkaállomáson és kiszolgálón, Windows munkaállomáson, és különféle hálózati eszközökön, például Cisco útválasztókon és kapcsolókon mûködik. A piacon jelenleg több könyv is kapható, amelyek az SSH-val foglalkoznak. Velük ellentétben ez a kötet nem vesézi ki az SSH-T mint protokollt, az SSH1-ben és SSH2-ben használt titkosító modulokat, vagy a támogatott algoritmusokat; helyette az SSH használatát és optimális beállítását tárgyalja. Úgy kell néznünk e könyvet, mint egy taktikai út-
xviii
SSH a gyakorlatban
mutatót, ami a következõ kérdésre adja meg a választ: Most, hogy értem, hogyan mûködik az SSH, hogyan használjam? E kötetben a kérdés végén, tehát az SSH használatán van a hangsúly; részletesen megismerkedünk az SSH telepítésével, üzembe helyezésével, leghatékonyabb beállításával és támogatásával Unix, illetve Windows rendszereken, valamint különbözõ felépítésû hálózati környezetekben.
Mi a Secure Shell? Mi a Secure Shell? A könyv megközelítése szempontjából a Secure Shell megoldás, és pont. Feltételezzük, hogy az Olvasó rendelkezik némi ismerettel a Secure Shellt illetõen, valamennyit használta már, olvasott róla, vagy akár mûködtette is. Elméleti alapjait nem tárgyaljuk, inkább egyszerû, gyakorlati meghatározását próbáljuk megadni, valahogy így: Secure Shell: Kiegyensúlyozott, rugalmas megoldás különféle biztonsági és szolgáltatási kérdésekre, amelyek egy vállalat hálózatán belül felmerülhetnek. A fenti meghatározást kiegészítendõ, a könyv során az alábbiakat boncolgatjuk, amelyek mindegyike egy-egy, az SSH által biztosított megoldás: • • • • • • • • • •
Biztonságos mûködtetés Biztonságos közvetítõ réteg Biztonságos Telnet-megoldás Biztonságos távoli elérés Biztonságos „R” szolgáltatások Biztonságos fájlátvitel Biztonságos VPN-megoldás Biztonságos drót nélküli (802.11) megoldás Biztonságos másolatkészítés Biztonságos webböngészés
Az SSH használata és optimális beállítása A könyv fejezetei a Secure Shell használatának és leghatékonyabb beállításának módszereire összpontosítanak. Mint már tudjuk, a kötet elsõdleges célja az SSH használatának bemutatása, nem pedig az, hogy javaslatokat tegyünk arra, miért és mikor használjuk az SSH-t. A használat módjához viszont adunk tanácsokat: nem célunk, hogy az Olvasót félrevezetve azt állítsuk, az SSH-t minden olyan helyzetben célszerû használni, ahol X és Y tényezõk fennállnak (ha X és Y kifejezetten egy adott vállalat problémái) – ez nem csupán kockázatos lenne, hanem felelõtlenül úgy állítanánk be az SSH-t, mint csodatevõ varázsszert, márpedig a biztonság világában ilyen nem létezik.
SSH a gyakorlatban
A könyv azon cégek számára ad lépésrõl lépésre vezetõ útmutatót az SSH biztonságos és megbízható használatára, amelyek eldöntötték, hogy az SSH-t fogják használni, vagy szeretnének többet megtudni optimális beállításáról. Emellett – ha a vállalat úgy véli, az adott problémára létezõ néhány megoldás közül az SSH megfelelõ lehet – a kötet a hatékonyságnövelõ módszerek leírásával segíthet megállapítani, hogy valóban az SSH a legjobb megoldás-e. Az SSH üzembe helyezésének konkrét lépésein kívül a már létezõ SSH-rendszerek optimális beállítását is tárgyaljuk, így a kötet azon cégek számára is hasznos lehet, akik már használják az SSH-t, de szeretnék megtudni, hogyan javíthatnák a segédprogram hatékonyságát. A használatra való összpontosítást szolgálja az is (emellett eloszlat minden félreértést arról, hogy a könyv bevezetõ lenne az SSH világába), hogy több fejezetben különbözõ felépítésû példarendszereket mutatunk be, amelyeken keresztül az optimális beállítási lehetõségeket vizsgáljuk. A kapuátirányítással (port forwarding) foglalkozó fejezetben például két-három valós hálózati kiépítésen mutatjuk be, milyen biztonsági és szolgáltatási gondok merülhetnek fel; az egyes példáknál pedig részletesen ismertetjük az SSH nyújtotta megoldásokat, illetve az adott helyzetnek megfelelõ optimális beállítás módját, hogy kielégíthessük a technikai és üzleti követelményeket.
Miért tudjunk többet a Secure Shellrõl? Számos célom egyike, amiért meg szerettem volna írni ezt a könyvet, az volt, hogy elmagyarázzam az SSH használatát. Rugalmassága, elõnyei, szolgáltatásai és – legfõképpen – biztonsága ellenére kevesen használják ki az SSH minden képességét. Még a legtapasztaltabb Unix-rendszergazdák, akik sokkal régebben ismerik, mint a Windowsvagy Macintosh-felhasználók, sem biztos, hogy tudják, hogy a titkosított Telneten kívül mennyi mindenre képes az SSH. Amikor valaki használata mellett dönt, az olyan szolgáltatások, mint a kapuátirányítás, a biztonságos elektronikus levelezés, a köztes kiszolgálók használata, a dinamikus kapuátirányítás vagy a VPN mellékesnek tûnnek, pedig jelentõsen emelhetik a vállalat értékét. Egy másik ok az volt, hogy szerettem volna reklámozni, milyen könnyen használható az SSH. Sok rendszergazda tisztában van vele, milyen egyszerûen helyettesítheti a Telnetet, mégis azt feltételezik, hogy biztonságos fájlátviteli protokollként, kapuátirányítóként vagy VPN-megoldásként való használata már meglehetõsen bonyolult, ráadásul azt hiszik, a teljes szolgáltatáskört kiaknázó SSH kiszolgáló beállítása mindenféle egyéb tevékenységgel jár. Amint a könyvben megmutatom, az SSH kiszolgálóként való használata nem csak hogy könnyû, de a szükséges beállítások legnagyobb részét nem is a kiszolgálón, hanem az ügyfeleken kell elvégezni.
xix
xx
SSH a gyakorlatban
Továbbá, számos környezet, amelyben SSH-t mûködtetnek, még mindig használja a Telnetet, az RSH-t, az Rlogint vagy az FTP-t. Sok cég az SSH mellett fájlátvitelre meghagyja az FTP-t (vagy ami még rosszabb, SFTP-vel végzi a fájlátvitelt, de a parancssori végrehajtáshoz továbbra is engedélyezi a Telnetet), annak ellenére, hogy párhuzamos használatuk, egyes felületek és alkalmazások gondot okozhatnak. Az SSH mindkét feladatot képes egyedül ellátni, sõt, egyetlen démonnal vagy szolgáltatással, így nem kell ugyanazon a gépen két különálló szolgáltatást futtatni. Ebben a könyvben részletesen bemutatjuk az SSH különféle használati módjait, képernyõképekkel és lépésrõl lépésre vezetõ leírásokkal. Célunk, hogy közérthetõ útmutatót adjunk az adatközpontok üzemeltetõinek kezébe, melynek segítségével számos szolgáltatást mûködtethetnek, a biztonságos FTP-tõl a Microsoft Exchange kiszolgálón keresztüli biztonságos levelezésig.
A helyes biztonsági gyakorlat kialakításának elõnyei Mik az SSH használatának elõnyei a különbözõ környezetekben, és egyáltalán miért van szükség olyan segédprogramokra, mint az SSH? Nos, azért, mert az SSH kialakítja azt a helyes gyakorlatot, ami elõfeltétele annak, hogy egy adott rendszert elfogadhatóan biztonságossá tegyünk. Ebbe a körbe többek között az alábbi négy eljárás tartozik: • Hitelesítés: kéttényezõs hitelesítés • Titkosítás: Biztonságos (titkosított) kommunikáció kialakítása a 3DES vagy egy azzal egyenértékû módszer segítségével • Az adatépség biztosítása: MD5 és SHA1 kivonatolás • Ellenõrzés: IP- és DNS-szûrés Az SSH a kiszolgálók kéttényezõs hitelesítését nyilvános és saját kulcsok, illetve felhasználói nevek és jelszavak segítségével biztosítja. A kéttényezõs hitelesítés mellett biztonságos és titkosított kapcsolattartást tesz lehetõvé olyan titkosítási szabványok révén, mint a triple-DES (3DES), a Blowfish, a Two-fish és így tovább. A SSH csomagszintû adatépség-biztosítást is nyújt, a munkamenetek MD5 vagy SHA1 típusú kivonatolásával. Végül, az IP cím vagy a gépnév alapján képes engedélyezni vagy letiltani a csomópontokat. Ez a négy megoldás számos támadás ellen védelmet nyújt a létfontosságú adatokat tároló érzékeny hálózatokban.
SSH a gyakorlatban
Védelem Az SSH használatának elsõdleges célja a biztonság elérése. Az SSH számos támadás ellen védelmet nyújt, amelyek gyakoriak az IP (Internet Protocol) 4-es változatát használó hálózatokban, ahol az IPv4 mellett olyan gyenge protokollokat alkalmaznak, mint az ARP (Address Resolution Protocol, címfeloldó protokoll), az ISN (Initial Sequence Numbers) és a különbözõ tisztán szöveges protokollok (Telnet, RSH, Rlogin, FTP, POP3, IMAP, LDAP, HTTP). Mivel a rendelkezésre álló hely korlátozott, könyvünk nem tárgyal részletesen minden támadásfajtát, ami ellen az SSH védelmet nyújt, de tisztában kell lennünk három típussal, amelyek ellen hatékonyan fel tud lépni. (Ne feledjük, az SSH nem képes az összes ilyen támadást megakadályozni, de biztonsági õrei rendkívül megnehezítik, illetve közel lehetetlenné teszik végrehajtásukat.) Tehát a biztonság elleni támadások három fõ típusa a következõ: • Köztes lehallgatási (Man-in-the-Middle, MITM) támadások. Ilyen támadás az ARP-t érheti az IPv4-es hálózatokban. Segítségével egy jogosulatlan fél kapcsolt környezetben is képes kémkedni a hálózaton, úgy, hogy elfogja két megbízható fél kommunikációját. Az SSH 2-es változata ezt a hozzáférést úgy akadályozza meg, hogy a kommunikációt teljes egészében titkosítja. Így annak az esélye, hogy a támadó elfogja a két fél között áramló adatokat, minimálisra csökken, hiszen a kommunikáció a támadó számára olvashatatlan módon zajlik. • Munkamenet-eltérítés. Ennél a támadási típusnál a célpont a TCP/IP csomagok TCP fejlécének ISN része. A támadó az ISN-ben használt sorozatszámokat használja ki, és ezek segítségével eltéríti a két megbízható fél közötti munkamenetet. Az SSH lényegében lehetetlenné teszi, hogy a támadó megtekinthesse, elfoghassa vagy eltéríthesse az ISN-t, bár nem mindig tudja azt a TCP fejlécben kevésbé kitalálhatóvá tenni. • Kémkedés. A kémkedés (lehallgatás) egyszerûen a kommunikáció (a csomagok) figyelését jelenti egy hálózatban. Az SSH erõs titkosítással biztosít védelmet a gyenge protokollok (Telnet, RSH, Rlogin, FTP, POP3, IMAP, LDAP, HTTP) számára, vagy úgy, hogy teljes egészüket helyettesíti (például a Telnet, az RSH, vagy az Rlogin esetében), vagy úgy, hogy biztonságos alagútba bújtatja azokat (a POP3-nál). Ez a titkosítás a legtöbb (ha nem az összes) jogosulatlan felhasználót megakadályozza abban, hogy a hálózatot lehallgassa.
xxi
xxii
SSH a gyakorlatban
A könyv felépítése A kötet három fõ részre oszlik: Az SSH alapjai, Távoli elérési megoldások és Protokollhelyettesítés. Az elsõ rész az SSH alapjait tárgyalja. Az elsõ fejezet általános áttekintést nyújt az SSH-ról, amellyel a segédprogramot ismerõ szakemberek felfrissíthetik tudásukat, emellett azt is megvizsgálja, miért célszerû az SSH használata, és mely fõbb szolgáltatásai teszik hasznossá egy hálózati környezetben. A második és harmadik fejezet a piacon ma elérhetõ különbözõ SSH kiszolgálókat és ügyfeleket mutatja be, mind a kereskedelmieket, mind az ingyenesen letölthetõket. A használt ügyféltõl és kiszolgálótól függõen az SSH-változatok szolgáltatásai és képességei idõnként igen jelentõsen eltérhetnek egymástól, ezért szántunk rá két fejezetet, hogy megvizsgáljuk a fõbb SSH-gyártók termékei közti különbségeket és hasonlóságokat, elõnyöket és hátrányokat. A negyedik fejezet a hitelesítés témájában merül el, amely egy olyan eljárás, ami a felhasználónév és jelszó ellenõrzésétõl a kulcs alapú, digitális tanúsítványok segítségével történõ hitelesítésig mindent magába foglal. Az elsõ részben leírtakat az ötödik fejezet teszi kerekké, ahol azt vizsgáljuk, hogyan használható az SSH olyan hálózati eszközökön, mint az útválasztók, kapcsolók, tûzfalak és más, hagyományosan a Telnet segítségével felügyelt eszközök. Ezenkívül itt az SSHval kapcsolatos felügyeleti módszerekre is kitérünk. A második rész az SSH által nyújtott távoli elérési megoldások témájára tér át. A hatodik fejezet a kapuátirányítás alapjait taglalja, az elméleti ismeretektõl kezdve a telepítésig és beállításig, a hetedik fejezet pedig részletesebben kifejti a témát, és elmagyarázza, pontosan hogyan is mûködik a kapuátirányítás, mint vállalati szintû távoli hozzáférési megoldás. A harmadik rész az egyes protokollok SSH-val való helyettesítését részletezi. A nyolcadik fejezet bemutatja, milyen sokoldalú az SSH; itt nem csak azt vizsgáljuk, hogyan helyettesíthetjük az SSH-val az olyan megbízhatatlan protokollokat, mint az RSH, az Rlogin vagy az FTP, hanem azt is, hogyan használhatjuk az SSH-t biztonságos fájlátvitelre, csevegõ kiszolgálóként vagy biztonsági másolatok készítésére. A kilencedik fejezet az SSH SOCKS köztes kiszolgálókkal és dinamikus kapuátirányítással való használatát tárgyalja, illetve módszereket mutat arra, hogyan használhatjuk az SSH-t biztonságos webes és drót nélküli megoldásként. A tizedik fejezetben három esettanulmány szerepel, amelyek a távoli elérés, a biztonságos drót nélküli kapcsolat és a biztonságos fájlátvitel témakörét illusztrálják, vegyes mûködési környezetben. Mindegyik esettanulmánynál leírjuk a problémát, illetve az üzleti követelményeket, és megoldást adunk rá az SSH-val.
SSH a gyakorlatban
Kinek szánjuk a könyvet? Az SSH a gyakorlatban az adatközpontokban dolgozó szakembereknek íródott. A fejezetekben bemutatott anyag szükséges és lényeges ismereteket közöl arról, hogyan használhatjuk az SSH-t, a kisebb hálózatoktól a nagy, vállalati hálózatokig. Lépésrõl lépésre bemutatjuk mindazon szolgáltatások használatát, amelyeket az SSH az ilyen környezeteknek nyújt, így a kötet jól használható referenciaként; a polcról leemelve gyorsan megnézhetjük, hogyan kell bizonyos feladatokat végrehajtani. A könyvet nem feltétlenül szükséges az elejétõl a végéig elolvasni, az egyes fejezetek önmagukban is megállnak, és nem igénylik a megelõzõ fejezetek ismeretét. Ha az SSH-t például közvetítõ szolgáltatásként szeretnénk használni, és errõl a témáról szeretnénk többet megtudni, elég, ha fellapozzuk a kilencedik fejezetet; az ott szereplõ fogalmak anélkül is érthetõk lesznek, hogy az 1–8. fejezeteket olvastuk volna. Általában véve, a kötetet a következõ típusú embereknek szántuk: • azoknak, akiket érdekel, hogyan kell használni az SSH-t, kihasználva annak minden képességét és erõsségét; • azoknak, akik bõvíteni szeretnék az SSH-ról korábban szerzett ismereteiket; és • azoknak, akik javítani szeretnének jelenlegi SSH-használati szokásaikon, hogy a lehetõ legnagyobb hatékonyságot érjék el.
Rendszerek A könyvben leírtak – amennyiben nem jelezzük külön – az OpenBSD 3.1, a RedHat Linux 8.0 és a Windows 2000 (Server és Professional) rendszerekre érvényesek, de biztonságosan feltételezhetõ, hogy a Windows legtöbb változata (az NT 4.0-tól a Windows 2003 Serverig), illetve a különbözõ Unixok (Linux, Solaris, HP-UX stb.) hasonló (ha nem azonos) eredményt adnak.
xxiii
xxiv
SSH a gyakorlatban
A könyv webhelyérõl A könyvhöz kapcsolódó webhelyet a www.wiley.com/compbooks/dwivedi címen érhetjük el. Itt hivatkozást találunk a könyvben említett három fõ SSH-gyártó – OpenSSH, SSH Communications és VanDyke Software – webhelyére, ahonnan letölthetõ az SSH valamelyik szabadon felhasználható vagy engedélyhez kötött, kereskedelmi változata. A könyv webhelyérõl olyan oldalakra is ugorhatunk, ahol tájékozódhatunk a kötetben tárgyalt kiszolgálók és ügyfelek nyílt forrású és kereskedelmi megvalósításairól. A jelen kiadás webhelye: http://kiado.kiskapu.hu/92. Itt megtaláljuk – sok más hasznos információ mellett – a könyvben szereplõ valamennyi forráskódot, amelyeket különbözõ feladatok végrehajtása céljából gépünkre másolhatunk.
Termékek Az SSH ipari szabvány, amelyet az IETF Secure Shell munkacsoportja dolgozott ki (www.ietf.org/html.charters/secsh-charter.html). Emellett az SSH-nak (az ügyfélnek és a kiszolgálónak egyaránt) számos nyílt forrású és kereskedelmi megvalósítása létezik. A könyvben az alábbi változatokra hivatkozunk: • • • • • • • •
OpenSSH (www.openssh.org) OpenSSH-Win32 (http://lexa.mckenna.edu/sshwindows/) SSH Communications Commercial (www.ssh.com) VShell és SecureCRT (www.vandyke.com) Putty (www.putty.com) F-Secure (www.fsecure.com) Mindterm – SSH Java felett webböngészõkkel (www.appgate.com/mindterm) WinSCP (http://winscp.vse.cz/eng)