RozwiÄ…zania Zabawa w SSHowanego Zabawa w SSHowanego Wojciech Terlikowski W czasach gdy niemal każdy komputer podÅ‚Ä…czony jest do sieci, czy to niewielkiej domowej lub osiedlowej, czy też do Internetu niesÅ‚ychanie ważnym zagadnieniem staje siÄ™ zapewnienie bezpieczeÅ„stwa komunikacji miÄ™dzy stacjami roboczymi. Protokół SSH, dziÄ™ki silnej ochronie kryptograficznej, znakomicie siÄ™ do tego nadaje. ArtykuÅ‚ ma na celu przybliżenie czytelnikowi szerokich możliwoÅ›ci oferowanych przez SSH również w mniej znanych zastosowaniach takich jak przekierowanie portów i tworzenie tuneli. SSH zetknÄ…Å‚ siÄ™ chyba każdy, kto pracowaÅ‚ z innymi przez SSH jest brak szyfrowania transmisji, szcze- systemami linuksowymi. Bezpieczna powÅ‚o- gólnie dotkliwy podczas procesu uwierzytelniania. ka (secure shell) towarzyszy wiÄ™kszoÅ›ci ad- Taka luka bezpieczeÅ„stwa pozwala na podsÅ‚uchanie se- Zministratorów w wykonywaniu codziennych sji i zdobycie informacji nie tylko o tym jakie polecenia wy- obowiÄ…zków, jest również niezastÄ…piona dla wielu użyt- konujemy na zdalnym systemie, ale również poznanie na- kowników wszÄ™dzie tam, gdzie szybko i sprawnie trzeba szego loginu i hasÅ‚a, co może w konsekwencji prowadzić do wykonać jakieÅ› czynnoÅ›ci na zdalnym systemie, a jedno- przejÄ™cia kontroli nad naszym kontem. Przeprowadzenie ta- czeÅ›nie mieć poczucie bezpieczeÅ„stwa jakie daje szyfro- kiego ataku nie wymaga gÅ‚Ä™bokiej wiedzy ani bardzo skom- wany protokół. plikowanych narzÄ™dzi. Wystarczy prosty program podsÅ‚u- chujÄ…cy ruch w sieci (sniffer) jakich wiele bezpÅ‚atnych moż- Szyfrowany telnet na znalezć w Internecie. Używanie telnetu byÅ‚o do zaakcep- Kiedy po raz pierwszy miaÅ‚em okazjÄ™ korzystać z zaso- towania w sieciach, których użytkownicy mieli do siebie du- bów Internetu, jeszcze w latach dziewięćdziesiÄ…tych ubie- żo zaufania i nie obawiali siÄ™, że ktoÅ› bÄ™dzie chciaÅ‚ siÄ™ wÅ‚a- gÅ‚ego stulecia, do zalogowania siÄ™ na zdalne serwery uży- mać do ich komputera. PamiÄ™tam, że jeszcze na poczÄ…tku waÅ‚em telnetu. studiów do niektórych serwerów wydziaÅ‚owych mieliÅ›my Jest to proste narzÄ™dzie, pozwalajÄ…ce na otwarcie sesji dostÄ™p przez telnet, ale z czasem byÅ‚ on zastÄ™powany przez na innym komputerze w sieci. PoÅ‚Ä…czenie do serwera tel- SSH. Wówczas byÅ‚a to jeszcze nowość, ale dajÄ…ca wiÄ™cej netu umożliwia wykonywanie poleceÅ„ na zdalnym syste- bezpieczeÅ„stwa, bo szyfrowana. mie. RozwiÄ…zanie to ma jednak wadÄ™, która zadecydowaÅ‚a o jego niemal caÅ‚kowitym zaniku, przynajmniej w Å›rodowi- TrochÄ™ historii skach uniksowych i uniksopodobnych, w tym w Linuksie. Protokół SSH zostaÅ‚ opracowany w poÅ‚owie lat dziewięć- SÅ‚aboÅ›ciÄ…, która zadecydowaÅ‚a o wyparciu telnetu miÄ™dzy dziesiÄ…tych na Politechnice w Helsinkach przez jednego z styczeÅ„ 2010 42 linux@software.com.pl RozwiÄ…zania Zabawa w SSHowanego pracowników naukowych Tatu Ylönena jako Podczas instalacji serwera warto zwrócić uwa- OpenSSH. BÄ™dziemy modyfikować prosty, odpowiedz na atak, polegajÄ…cy na podsÅ‚uchaniu gÄ™ na moment przedstawiony na Rysunku 2 tekstowy plik z konfiguracjÄ…: /etc/ssh/sshd_ i przechwyceniu haseÅ‚ przesyÅ‚anych przez pro- Metody generowania kluczy i kryptografia config. BezpieczeÅ„stwo wymaga, aby serwer tokoÅ‚y nieszyfrowane. Celem projektu byÅ‚o za- asymetryczna mogÄ… być temetem osobnego arty- używaÅ‚ protokoÅ‚u w wersji drugiej (SSH-2). stÄ…pienie narzÄ™dzi takich jak telent, rlogin i rsh kuÅ‚u, tu skupiÄ™ siÄ™ na kwestiach najistotniejszych Zapewnia to wpis Protocol 2. W pierwotnej przez rozwiÄ…zania podobne, ale zapewniajÄ…ce dla użytkownika. Przede wszystkim, klucz pry- specyfikacji wykryto poważne luki bezpie- wyższy stopieÅ„ bezpieczeÅ„stwa dziÄ™ki ochro- watny jest tajny i może być znany tylko wÅ‚aÅ›ci- czeÅ„stwa, dlatego zostaÅ‚a zastÄ…piona przez nie kryptograficznej. Po piÄ™tnastu latach może- cielowi, w tym wypadku serwerowi SSH. Klucz SSH-2. Wersja druga nie tylko jest bezpiecz- my powiedzieć, że niewielu linuksowym admi- publiczny jest jawny, ale stanowi parÄ™ do prywat- niejsza od SSH-1, ale dodaje do protoko- nistratorom zdarza siÄ™ wykorzystywać rlogin, nego i dlatego oba muszÄ… być wygenerowane ra- Å‚u nowe możliwoÅ›ci. WspierajÄ… jÄ… wszyst- czy rsh, sÄ… pewnie i tacy, którzy nie wiedzÄ…, zem. W zwiÄ…zku z tym klucze nie mogÄ… być do- kie współczesne klienty SSH. Obie wersje że coÅ› takiego istniaÅ‚o, natomiast niemal wszy- starczane z pakietem oprogramowania, jak na nie sÄ… ze sobÄ… kompatybilne i czasami trzeba scy znajÄ… SSH. przykÅ‚ad plik z domyÅ›lnÄ… konfiguracjÄ…, ale trze- w kliencie wymusić użycie SSH-1 jeÅ›li bÄ™- Kilka lat po opracowaniu pierwszej wer- ba je wygenerować każdorazowo podczas insta- dziemy chcieli poÅ‚Ä…czyć siÄ™ z serwerem, któ- sji protokoÅ‚u powstaÅ‚a, najpopularniejsza lacji programu. Ponowna instalacja OpenSSH, ry nie wspiera SSH-2. Na szczęście takich obecnie, implementacja zarówno serwera jak zwiÄ…zana np. ze zmianÄ… dystrybucji, spowoduje, serwerów jest coraz mniej. i klienta OpenSSH. Projekt ten jest rozwi- że powstanie nowa para kluczy. Spowoduje to, DrugÄ… opcjÄ… konfiguracyjnÄ…, którÄ… zmieni- jany przez zespół OpenBSD na licencji BSD. że odciski palca (fingerprints) serwera zapamiÄ™- myna serwerze jest wyÅ‚Ä…czenie możliwoÅ›ci lo- Wolna licencja jak również bogactwo możli- tane przez klientów stanÄ… siÄ™ niekatulane i bÄ™dzie gowania na konto roota. W tym celu wystarczy woÅ›ci jakie daje OpenSSH, pozostajÄ…c w peÅ‚- je trzeba zaktualizować. wpis PermitRootLogin no. W dalszym ciÄ…gu nej zgodnoÅ›ci ze specyfikacjÄ… protokoÅ‚u, za- Po pomyÅ›lnie zakoÅ„czonej instala- możemy wykonywać czynnoÅ›ci administra- pewniÅ‚y tej implementacji dużą popularność. cji przystÄ™pujemy do konfiguracji serwera cyjne logujÄ…c siÄ™ przez SSH na konto zwykÅ‚e- Obecnie OpenSSH jest wykorzystywane przez wiele systemów operacyjnych jak Sun Solaris, Mac OS X, BSD, Novell Netware, IBM AIX, HP UX, urzÄ…dzenia sieciowe Cisco, Juniper, HP, Dell, Alcatel oraz niemal wszystkie dys- trybucje Linuksa. Niedawno ukazaÅ‚a siÄ™ nowa wersja OpenSSH 5.3. Chociaż nie wnosi ona znacz- nych zmian do programu, to ma znaczenie hi- storyczne, ponieważ zostaÅ‚a wydana dziesięć lat po powstaniu projektu i publikacji pierw- szej wersji produktu. Zabawa siÄ™ rozpoczyna Jak wspomniaÅ‚em, OpenSSH jest dostÄ™pne Rysunek 1. Popularność różnych implementacji ssh od czasu pojawienia siÄ™ OpenSSH. Wyraznie widać, w repozytoriach niemal każdej dystrybucji Li- że OpenSSH z ponad 80% udziaÅ‚em jest zdecydowanie najczęściej używanÄ… implementacjÄ…. yródÅ‚o: [3] nuksa, wiÄ™c zainstalowanie go nie stanowi żad- nego problemu. SSH to program sieciowy dlate- go do przetestowania go potrzebować bÄ™dziemy sieci komputerowej, a w najprostszym przypad- ku dwóch komputerów. Jeden z nich posÅ‚uży za serwer SSH, nazwijmy go bolek, drugi to kom- puter biurkowy lolek, na którym zainstalujemy klienta SSH. Z tej maszyny bÄ™dziemy siÄ™ logo- wać do bolka. Oba komputery pracujÄ… pod kon- trolÄ… dystrybucji Debian GNU/Linux dlatego by zainstalować serwer OpenSSH należy wykonać na bolku: jas@bolek$ sudo aptitude install openssh-server natomiast na lolku instalujemy klienta pole- ceniem: jan@lolek$ sudo aptitude install openssh-client Rysunek 2. Instalacja serwera OpenSSH. Widoczny moment generowania kluczy kryptograficznych www.lpmagazine.org 43 RozwiÄ…zania Zabawa w SSHowanego go użytkownika, a nastÄ™pnie uzyskujÄ…c upraw- tej możliwoÅ›ci, przypuszczalnie musiaÅ‚bym Teraz możemy poÅ‚Ä…czyć siÄ™ przez lolka nienia roota poprzez skorzystanie z polecenia odÅ‚Ä…czyć komputer od Sieci i zacząć usuwać z serwerem SSH bolek. Robimy to wydajÄ…c su - lub odpowiednio skonfigurowanego pa- skutki wÅ‚amania. polecenie: kietu sudo. Takie ograniczenie wydaje siÄ™ nie- Po takich zmianach ustawieÅ„ należy zre- potrzebnym utrudnieniem dla użytkowników startować usÅ‚ugÄ™ ssh: jan@lolek$ ssh jas@bolek sieci lokalnych, ale jest bezwzglÄ™dnie zaleca- ne jeżeli serwer ma być dostÄ™pny z Interne- jas@bolek$ sudo /etc/init.d/ssh lub: tu. PotwierdzajÄ… to moje wÅ‚asne doÅ›wiadcze- restart nia. ZdarzyÅ‚o mi siÄ™, że w kilka minut po pod- jan@lolek$ ssh bolek -l jas Å‚Ä…czeniu nowego serwera do Internetu znala- DomyÅ›lna konfiguracja klienta jest wystarcza- zÅ‚em w dzienniku systemowym Å›lady dziesiÄ…- jÄ…ca, ale w razie potrzeby można jÄ… zmienić gdzie bolek jest serwerem, na który siÄ™ loguje- tek nieudanych prób zalogowania przez SSH modyfikujÄ…c plik /etc/ssh/ssh_config na kom- my, natomiast jas to identyfikator użytkowni- na konto roota podejmowanych przez kompu- puterze lolek. Podobnie jak na serwerze jest to ka na tym serwerze. Zamiast nazwy komputera tery z caÅ‚ego Å›wiata. Gdybym nie zablokowaÅ‚ prosty plik tekstowy. (hostname) można podać jego adres IP lub peÅ‚- nÄ… nazwÄ™ domenowÄ… np. bolek.example.com, co jest konieczne gdy komputer znajduje siÄ™ w Internecie w zupeÅ‚nie innej domenie niż na- sza. JeÅ›li na obu systemach używamy tego sa- mego loginu można go nie podawać przy na- wiÄ…zaniu poÅ‚Ä…czenia, wtedy SSH zaloguje nas na konto o takiej samej nazwie jak lokalne. JeÅ›li pierwszy raz Å‚Ä…czymy siÄ™ do serwe- ra, SSH wyÅ›wietli odcisk palca (patrz rys. 3) i zapyta czy na pewno na tej maszynie chce- my otworzyć sesjÄ™. Po potwierdzeniu tożsa- moÅ›ci serwera zostaniemy zapytani o hasÅ‚o na komputerze bolek, a jego odcisk palca zosta- nie zapisany w pliku ~/.ssh/known_hosts. Od tej pory, jeÅ›li serwer zmieni odcisk zostanie- my o tym poinformowani przy próbie logo- wania (patrz Rysunek 3). Sytuacja taka nastÄ™- puje gdy serwer zostaÅ‚ zastÄ…piony nowÄ… ma- szynÄ…, lub gdy nastÄ…piÅ‚a reinstalacja systemu, w tym pakietu OpenSSH. Zazwyczaj admi- nistratorzy powiadomiÄ… nas wczeÅ›niej o ta- kim zdarzeniu. JeÅ›li mamy pewność, że odcisk faktycznie siÄ™ zmieniÅ‚ i Å‚Ä…czymy siÄ™ z wÅ‚aÅ›ci- wym komputerem należy usunąć linijkÄ™ z pli- ku ~/.ssh/known_hosts o numerze podanym w komunikacie. W naszym przypadku jest to li- Rysunek 3. PoÅ‚Ä…czenie do SSH po zmianie odcisku palca. Po usuniÄ™ciu wpisu z ~/.ssh/known_hosts znów nia numer 7. Przy kolejnej próbie logowania jesteÅ›my proszeni o potwierdzenie tożsamoÅ›ci serwera zostaniemy poproszeni o akceptacjÄ™ odcisku palca nowego klucza. Po poprawnym zalogowaniu możemy pracować na serwerze bolek, wydajÄ…c pole- cenia jakbyÅ›my mieli otwartÄ… lokalnÄ… konso- lÄ™. SesjÄ™ koÅ„czymy komendÄ… exit lub skró- tem klawiszowym [Ctrl+D] tak samo jak w przypadku pracy lokalnej. Czy używanie ssh jest równie wygodne jak praca lokalna? A co z aplikacjami graficz- nymi? Spróbujmy uruchomić grÄ™ Kmahjongg. Niestety, próba zakoÅ„czy siÄ™ wyÅ›wietle- niem komunikatu bÅ‚Ä™du cannot connect to X se- rver, co oznacza , że serwer X nie znalazÅ‚ odpo- wiedniego miejsca do wyÅ›wietlenia graficznego okienka gry. Nie wyÅ›wietli go w tekstowej kon- Rysunek 4. PrzykÅ‚ad zastosowania ssh do tunelowania X11. Gra Kmahjongg uruchomiona na zdalnym soli, w której dziaÅ‚a ssh, może jednak wykorzy- serwerze stać do tego graficzny pulpit komputera lolek. styczeÅ„ 2010 44 RozwiÄ…zania Zabawa w SSHowanego Taki efekt można osiÄ…gnąć przez odpowiedniÄ… kÅ‚adanych przez protokół X, czasem użycie Polecenia scp używamy podobnie jak zwy- konfiguracjÄ™ X11, tak by programy uruchamia- tej opcji może okazać siÄ™ konieczne. JeÅ›li za- kÅ‚ego cp: ne na bolku byÅ‚y wyÅ›wietlane na ekranie lolka. chodzi potrzeba uruchomienia wielu progra- Można również wykorzystać do tego SSH. Pro- mów graficznych na zdalnym komputerze, to jan@lolek$ scp jas.jpeg jas@bolek: tokół ten, daje możliwość przekierowania X11 wartym rozważenia rozwiÄ…zaniem jest VLC. /tmp/ (X11 forwarding), z której skorzystamy. Wy- Za jego pomocÄ… można udostÄ™pnić caÅ‚y gra- starczy rozpocząć nowÄ… sesjÄ™ SSH dodajÄ…c ficzny pulpit klientowi usÅ‚ugi. W wielu przy- Jak widać na przykÅ‚adzie różnicÄ… jest czÅ‚on ja- przy uruchamianiu przeÅ‚Ä…cznik -X: padkach może to okazać siÄ™ wygodniejsze s@bolek: wskazujÄ…cy, że kopiowanie ma odby- i bardziej efektywne od zastosowania prze- wać siÄ™ do katalogu na serwerze bolek z upraw- jan@lolek$ ssh -X bolek -l jas kierowania X. SSH jest wciąż bardzo popu- nieniami użytkownika jas. Należy zwrócić larnÄ… i czÄ™sto jedynÄ… tego typu usÅ‚ugÄ… dostÄ™p- uwagÄ™ na dwukropek (:) rozdzielajÄ…cy część Operacja taka ustawia przekierowanie X11 nÄ… na serwerze. sieciowÄ… od Å›cieżki w systemie plików. Je- na klienta SSH i sprawia, że programy gra- Å›li chcemy skopiować plik w przeciwnÄ… stronÄ™ ficzne dziaÅ‚ajÄ…ce na bolku bÄ™dÄ… wyÅ›wietla- Nie tylko zdalna sesja z serwera bolek na komputer lolek, robimy to Å‚y swe okna na lolku. Starujemy ponownie PoznaliÅ›my już możliwoÅ›ci protokoÅ‚u SSH poleceniem: kmahjongg: zwiÄ…zane z pracÄ… na zdalnym systemie, ale co zrobić gdy chcemy przenieść pliki z jedne- jan@lolek$ scp jas@bolek:/tmp/ jas@bolek$ kmahjongg & go komputera na drugi? W przypadku plików obraz.png ./obrazek.png tekstowych można je skopiować do schow- Dodanie znaku &, powoduje uruchomienie ka i wkleić do edytora otwartego na zdal- Spowoduje to skopiowanie pliku /tmp/ gry w tle, tak by nie blokować dostÄ™pu do nym komputerze. Może to być nawet wy- obraz.png do bieżącego katalogu i nadanie mu konsoli na bolku. Po chwili na ekranie kom- godne dopóki nie pojawi siÄ™ konieczność nazwy obraz.png. JednÄ… z bardziej użytecz- putera lolek pojawi siÄ™ siÄ™ okienko Kmah- kopiowania dużych plików, lub zbiorów bi- nych opcji używanych z scp jest -r. Pozwala jongg. InnÄ… opcjÄ…, pozwalajÄ…cÄ… na przekiero- narnych. Rodzina protokołów RSH miaÅ‚a w ona na rekurencyjne skopiowanie caÅ‚ego kata- wanie X11 jest -Y, tak zwane zaufane prze- tym celu RCP, którego używaÅ‚o siÄ™ podob- logu wraz z zawartoÅ›ciÄ…. Polecenie: kierowanie X (trusted X forwarding). Jest nie jak zwykÅ‚ego kopiowania plików polece- ono mniej bezpieczne, ponieważ nie speÅ‚nia niem cp. Ponadto istnieje protokół FTP, sÅ‚u- jan@lolek$ scp -r jas@bolek:/etc/ ./ wszystkich standardów bezpieczeÅ„stwa na- żący do transferowania plików miÄ™dzy kom- puterami w sieci, jednak żaden z nich nie szy- skopiuje caÅ‚Ä… zawartość katalogu /etc na ser- Listing 1. PrzykÅ‚adowy skrypt zmieniajÄ…cy konfi- fruje transmisji. Na szczęście w rodzinie pro- werze bolek do bieżącego katalogu. SkÅ‚adnia guracjÄ™ wielu serwerów za pomocÄ… SSH tokołów SSH znalazÅ‚y siÄ™ ich odpowiedniki: scp dopuszcza również użycie znaków spe- for SERVER in bolek reksio uszatek SCP bezpieczne kopiowanie (secure copy) cjalnych powÅ‚oki np.: koralgol i SFTP bezpieczny protokół transferu pli- do ków (secure file transfer protocol). Tego dru- jan@lolek$ scp jas@bolek:~/zdjecia/ ssh jas@$SERVER 'echo giego nie należy mylić z FTPS rozszerze- *.jpeg ~/ nameserver 10.12.15.254 > /etc/ niem FTP. Zarówno SCP jak i SFTP sÄ… szy- resolv.conf' frowane i zapewniajÄ… takie samo bezpieczeÅ„- skopiuje wszystkie pliki o rozszerzeniu jpeg done stwo transmisji jak SSH. Oba sÄ… dostarcza- (*.jpeg) z katalogu zdjecia do katalogu domo- ne z OpenSSH, wiÄ™c żeby z nich korzystać wego lokalnego użytkownika. Symbole wystÄ™- Listing 2. Generowanie kluczy kryptograficz- nie musimy niczego instalować dodatkowo. pujÄ…ce w Å›cieżkach serwera sÄ… interpretowane nych wykorzystywanych do autoryzacji w SSH jan@lolek$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/jan/.ssh/id_rsa): Created directory '/home/jan/ .ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/jan/.ssh/id_rsa. Your public key has been saved in /home/jan/.ssh/id_rsa.pub. The key fingerprint is: 2d:4f:15:7b:60:51:66:ac:5b:90:32: 58:83:a1:b4:28 jas@lolek Rysunek 5. Okno programu gftp z otwartÄ… sesjÄ… SSH www.lpmagazine.org 45 RozwiÄ…zania Zabawa w SSHowanego przez jego powÅ‚okÄ™ nie przez scp. W wyniku Å›li uda siÄ™ napisać skrypt, który wykona za nas niu powraca do powÅ‚oki klienta, z której zosta- czego skrypt, korzystajÄ…cy z takich symboli bÄ™- chociaż część żmudnej pracy to zaoszczÄ™dzo- Å‚o wywoÅ‚ane. dzie dziaÅ‚aÅ‚ różnie z różnymi maszynami w za- ny czas możemy poÅ›wiÄ™cić na przyjemniejsze leżnoÅ›ci od tego jaki system pracuje po stronie zajÄ™cia, na przykÅ‚ad czytanie ostatniego nume- jan@lolek$ ssh jas@bolek 'echo serwera i jakiej powÅ‚oki używa. Takiego uza- ru Linux+. Przypuśćmy, że administrujemy nameserver 10.12.15.254 > /etc/ leżnienia od platformy nie ma drugi z wymie- sieciÄ…, w której wÅ‚aÅ›nie zmieniÅ‚ siÄ™ adres ser- resolv.conf' nionych protokołów sÅ‚użących do kopiowania wera DNS. Nowy adres to 10.12.15.254. Mu- plików. SFTP, bo o nim mowa, pozwala na in- simy teraz zmienić konfiguracjÄ™ wszystkich Takie polecenie powoduje wywoÅ‚anie komendy teraktywnÄ… pracÄ™ na zdalnym systemie plików serwerów w sieci, modyfikujÄ…c zawartość pli- echo na serwerze bolek z przekierowaniem wyj- podobnie jak FTP. Logujemy siÄ™ poleceniem: ku /etc/resolv.conf. JeÅ›li sÄ… to trzy serwery to Å›cia do pliku /etc/resolv.conf na tymże serwerze, można zalogować siÄ™ na każdy z nich osobno i a nastÄ™pnie powrót do powÅ‚oki na lolku. W re- jan@lolek$ sftp jas@bolek rÄ™cznie wykonać polecenie: zultacie zawartość pliku /etc/resolv.conf zostanie zmieniona na nameserver 10.12.15.254, czy- a nastÄ™pnie za pomocÄ… poleceÅ„ takich jak get i echo 'nameserver 10.12.15.254' > li to co chcieliÅ›my osiÄ…gnąć. Teraz wystarczy wy- put możemy kopiować pliki z i na serwer. JeÅ›li /etc/resolv.conf woÅ‚ać skrypt dla każdego z naszych serwerów i ktoÅ› preferuje pracÄ™ w Å›rodowisku graficznym rekonfiguracja gotowa. to może skorzystać z jednej z wielu graficznych Kiedy bÄ™dzie ich kilkadziesiÄ…t to zadanie takie Bardzo wygodne, prawda? Jednak skrypt nakÅ‚adek na SFTP takich jak gftp czy WinSCP. staje siÄ™ żmudne i czasochÅ‚onne. Ponadto nie nie dziaÅ‚a tak sprawnie jak byÅ›my sobie tego trudno tu o pomyÅ‚kÄ™. Z pomocÄ… w takiej sy- życzyli, ponieważ przy logowaniu do każde- Użycie SSH w skryptach tuacji przychodzi nam SSH. Pozwala ono na go z serwerów trzeba podawać hasÅ‚o. I na to W pracy administratora (i nie tylko) bardzo li- wykonanie polecenia w trybie wsadowym, bez jest rada. Uwierzytelnienie przez podanie ha- czy siÄ™ umiejÄ™tność automatyzacji zadaÅ„. Je- otwierania interaktywnej sesji, a po zakoÅ„cze- sÅ‚a nie jest jedynÄ… możliwoÅ›ciÄ… w SSH. Ist- nieje wariant logowania przez klucz publicz- ny (public key) oraz za pomocÄ… GSSAPI. To Internet Zapora Komputer Serwer ogniowa domowy ostatnie pozwala na zarzÄ…dzanie autoryzacjÄ… wydziaÅ‚owy Sesja SSH w SSH za poÅ›rednictwem zewnÄ™trznych me- chanizmów, takich jak Kerberos. Skupmy siÄ™ na metodzie klucza publicznego, ponieważ jest Odwrotny tunel SSH prosta i nie wymaga od nas używania dodatko- SSH wego oprogramowania. Najpierw musimy mieć Tunelowane poÅ‚ czenia HTTP parÄ™ kluczy, która bÄ™dzie identyfikować nasze- do SSH i HTTP go klienta, czyli użytkownika jan na kompute- rze lolek, logujÄ…cego siÄ™ na konto jaÅ› na kom- puter bolek. Do generowania kluczy użyjemy Rysunek 6. Zastosowanie odwrotnego tunelu SSH do poÅ‚Ä…czenia do serwera znajdujÄ…cego siÄ™ za zapo- programu ssh-keygen dostarczanego razem rÄ… ogniowÄ… z OpenSSH. HasÅ‚o (paraphrase) do klucza po- zostawiamy puste. NastÄ™pnie kopiujemy wygenerowany klucz publiczny do pliku .ssh/authorized_keys w katalogu domowym użytkownika, na które- go bÄ™dziemy siÄ™ logować na serwerze bolek. jan@lolek$ ssh jas@bolek 'mkdir ~/ .ssh/' jan@lolek$ scp ~/.ssh/id_rsa.pub jas@bolek:~/.ssh/authorized_keys Przy wykonywaniu polecenia scp po raz ostat- ni podajemy hasÅ‚o. NastÄ™pne logowanie do bolka bÄ™dzie możliwe już bez hasÅ‚a. DziÄ™- ki temu możemy wykonać skrypt sprawniej, gdyż nie bÄ™dzie wymagaÅ‚ od nas ingerencji i podawania haseÅ‚. Bardzo pomocne przy administrowaniu komputerem, sÄ… potoki (pipes). DziÄ™ki nim możemy Å‚Ä…czyć możliwoÅ›ci wielu niedużych programów jak na przykÅ‚ad cat, grep czy wc w skomplikowane narzÄ™dzia. W SSH również nie mogÅ‚o zabraknąć obsÅ‚ugi potoków. Załóż- Rysunek 7. Konfiguracja Firefoksa do użycia serwera poÅ›redniczÄ…cego styczeÅ„ 2010 46 RozwiÄ…zania Zabawa w SSHowanego my, że uruchamiamy program i chcemy, by den z zainstalowanym tam klientów konsolo- który siÄ™ logujemy, czyli w tym przypadku local- wszystkie jego krytyczne komunikaty (zaczy- wych. Na dÅ‚uższÄ… metÄ™ okaże siÄ™ to niezbyt wy- host oznacza poczta.naszauczelnia.edu.pl. najÄ…ce siÄ™ od ERROR:) byÅ‚y zapisywane na zdal- godne. Uciążliwa bÄ™dzie na przykÅ‚ad obsÅ‚uga za- W ten sposób zestawiliÅ›my szyfrowany tunel nym serwerze. Rejestrowanie zdarzeÅ„ z kry- Å‚Ä…czników, wymagajÄ…ca przesyÅ‚ania plików miÄ™- z lokalnego portu 8025 do portu 25 na wydzia- tycznych usÅ‚ug na innych komputerach jest do- dzy serwerem a komputerem domowym. Do za- Å‚owym serwerze poczty. Skoro nauczyliÅ›my siÄ™ brÄ… praktykÄ… bezpieczeÅ„stwa. Bardziej zaawan- stosowania wygodniejszego rozwiÄ…zania, wyko- już tunelowania możemy przekierować drugi sowane konfiguracje można osiÄ…gnąć za pomo- rzystujÄ…cego przekierowanie portów SSH, po- port ten do odbierania poczty. cÄ… demona syslog. W tym momencie wystarczy trzebna nam bÄ™dzie podstawowa wiedza na te- nam proste użycie SSH. mat konfiguracji protokołów pocztowych. Wy- jan@lolek$ jas@poczta.naszauczelnia. starczy wiedzieć, na którym porcie sÅ‚ucha tune- edu.pl -L 8025:localhost:25 -L 8100: jan@lolek$ ./skrypt.sh | grep lowana usÅ‚uga. Najprostszym zródÅ‚em informa- localhost:110 '^ERROR:' | ssh jas@bolek 'cat >> cji na ten temat jest plik /etc/services. Można do- /var/log/skrypt.log' wiedzieć siÄ™ z niego, że protokoÅ‚owi POP3 odpo- Teraz wystarczy skonfigurować ulubionego wiada port 110, zaÅ› SMTP 25. W przykÅ‚adach klienta poczty i wskazać mu localhost:8025 ja- Przy użyciu potoków Å‚Ä…czymy funkcjonalnoÅ›ci z tunelami poÅ‚Ä…czenia SSH bÄ™dÄ… nawiÄ…zywane w ko serwer SMTP do wysyÅ‚ania poczty, zaÅ› lo- programu grep, który wybiera tylko interesujÄ…- obie strony również do naszego komputera do- calhost:8110 do jej odbierania. DziÄ™ki temu mo- ce nas komunikaty ssh, zapewniajÄ…cego trans- mowego, wiÄ™c przyda siÄ™ zainstalowanie na nim żemy jednoczeÅ›nie cieszyć siÄ™ komfortowym fer logów na inny serwer i cat, zapisujÄ…cego je serwera OpenSSH. korzystaniem z poczty i bezpieczeÅ„stwem ja- do pliku logów. Polecenie pozwalajÄ…ce na zabezpiecze- kie daje ochrona kryptograficzna kanaÅ‚u. War- KopiÄ™ zapasowÄ… serwisu www można wy- nie transmisji SMTP bÄ™dzie wyglÄ…daÅ‚o na- to przy tym pamiÄ™tać, że tunel dziaÅ‚a tak dÅ‚u- konać poleceniem: stÄ™pujÄ…co: go jak dÅ‚ugo otwarta jest sesja SSH, po zakoÅ„- czeniu poÅ‚Ä…czenia do localhost:8025 i localhost: jan@lolek$ tar -czf - /var/www/* | jan@lolek$ ssh jas@poczta.naszauczeln 8110 przestanÄ… dziaÅ‚ać. ssh jas@bolek 'cat > ~/backup/backup_ ia.edu.pl -L 8025:localhost:25 Gdy już poznaliÅ›my podstawy tuneli za- www.tar.gz' łóżmy bardziej skomplikowanÄ… sytuacjÄ™. We- SkÅ‚adnia komendy jest trochÄ™ skomplikowana. wnÄ…trz sieci akademickiej znajduje siÄ™ ser- Alternatywnym rozwiÄ…zaniem jest spakowanie Pierwsza część ssh jas@poczta.naszauczel- wer, na którym wykonujemy projekt serwisu plików lokalnie, a nastÄ™pnie przesÅ‚anie paczki nia.edu.pl jest już znana. Opcja -L oznacza, że WWW. Mamy dostÄ™p do niego zarówno przez za pomocÄ… SCP. Wersja z użyciem potoku jest SSH bÄ™dzie nasÅ‚uchiwać na lokalnym porcie o SSH na standardowym porcie 22 jak i HTTP na jednak bardziej elegancka i oszczÄ™dza nam za- numerze 8025 i to jest jeden koniec tunelu. Dru- porcie 80, ale tylko z komputerów w sieci wy- mieszania z tymczasowym plikiem archiwum. gi podawany jest po dwukropku w postaci host: dziaÅ‚owej. Co zrobić gdy chcemy popracować Istnieje również opcja OpenSSH, pozwalajÄ…- port, w naszym przypadku localhost:25. Na- nad projektem siedzÄ…c w domu? Możemy za- ca na kompresjÄ™ przesyÅ‚anego strumienia da- leży zaznaczyć, że zamiast 8025 można wy- logować siÄ™ przez SSH na serwer pocztowy, nych. WÅ‚Ä…cza siÄ™ jÄ… za pomocÄ… przeÅ‚Ä…cznika brać którykolwiek z wolnych portów, jednak do z którego mamy bezpoÅ›redni dostÄ™p do kompu- -C. W czasach rozpowszechnienia sieci szero- użycia numerów 1024 i mniejszych trzeba mieć tera projektowego. Nie jest to jednak zbyt wy- kopasmowych nie jest to czÄ™sto używana opcja, uprawnienia roota. KolejnÄ… ważnÄ… i powodujÄ…- godne, ponieważ na obu tych serwerach mamy ale niekiedy może usprawnić pracÄ™. ZwÅ‚aszcza cÄ… prawdopodobnie najwiÄ™cej nieporozumieÅ„ do dyspozycji wyÅ‚Ä…cznie przeglÄ…darki tekstowe, wtedy, gdy trzeba bÄ™dzie przesyÅ‚ać dobrze kom- rzeczÄ… jest nazwa hosta na drugim koÅ„cu tune- które nie wspierajÄ… nowoczesnych technologii presujÄ…ce siÄ™ dane, np. pliki tekstowe, przez sieć lu. Jest ona podawana wzglÄ™dem komputera, na WWW takich jak Java Script czy CSS. Najwy- o niedużej przepustowoÅ›ci. Listing 3. Plik konfiguracyjny tsocks.conf Wchodzimy w tunel local = 192.168.0.0/255.255.255.0 Tunele sieciowe sÄ… potężnym i bardzo wygod- local = 10.0.0.0/255.0.0.0 nym narzÄ™dziem, dziÄ™ki któremu można zabez- pieczyć transmisjÄ™ protokołów nieszyfrowanych server = 127.0.0.1 oraz ominąć niektóre ograniczenia wprowadzo- ne przez zapory ogniowe. W SSH tunele realizo- server_type = 5 wane sÄ… za pomocÄ… przekierowania portów (port forwarding). Rozważmy prostÄ… sytuacjÄ™, w której server_port = 8080 dziÄ™ki tunelowaniu, uzyskamy bezpieczny dostÄ™p do nieszyfrowanej usÅ‚ugi pocztowej. Na serwe- Listing 4. Instalacja pakietu tsocks na serwerze w DMZ rze wydziaÅ‚owym mamy konto pocztowe i kon- jan@firmowy$ wget http://ftp.icm.edu.pl/pub/Linux/debian/pool/main/t/ to powÅ‚oki dostÄ™pne przez SSH. Niestety admi- tsocks/tsocks_1.8beta5-9.1_amd64.deb nistrator udostÄ™pniÅ‚ pocztÄ™ tylko przez nieszyfro- jan@firmowy$ scp tsocks_1.8beta5-9.1_amd64.deb jan@serwerfirmowy:~/ wane protokoÅ‚y POP3 i SMTP. JeÅ›li nie chcemy, jan@firmowy$ ssh jan@serwerfirmowy aby nasze dane byÅ‚y przesyÅ‚ane niezabezpieczo- jan@serwerfirmowy$ su - nym kanaÅ‚em możemy posÅ‚użyć siÄ™ SSH. Naj- jan@serwerfirmowy# cd ~jan prostszym rozwiÄ…zaniem jest zalogowanie siÄ™ jan@serwerfirmowy#dpkg -i tsocks_1.8beta5-9.1_amd64.deb do powÅ‚oki serwera i obsÅ‚uga poczty przez je- www.lpmagazine.org 47 RozwiÄ…zania Zabawa w SSHowanego godniej byÅ‚oby użyć lokalnego Firefoksa z Fi- oraz zestawienia drugiego tunelu po por- mocÄ… przekierowania portów SSH warto roz- rebugiem i innymi dodatkami, ale bezpoÅ›rednio tu HTTP. ważyć kilka przypadków jak z podobnie za- na adres serwera projektowego siÄ™ nie poÅ‚Ä…czy- bezpieczonej sieci siÄ™ wydostać. my. W takiej sytuacji możemy zestawić tunel jan@lolek$ ssh localhost -l janek -p Wiele sieci firmowych blokuje dostÄ™p do SSH za pomocÄ… polecenia: 9022 -L 9080:localhost:80 niektórych usÅ‚ug, np. wybranych serwerów WWW, pozostawiajÄ…c tylko te uznane za nie- jan@lolek$ ssh jas@poczta.naszaucze Znów skÅ‚adnia polecenia staje siÄ™ nieco skom- zbÄ™dne. Niestety, może to skutecznie utrudnić lnia.edu.pl -L 9080:projekty:80 -L plikowana. Czytelnika może zaniepokoić uży- pracÄ™ i warto poznać sposób na obejÅ›cie takiego 9022:projekty:22 cie localhost. Część ssh localhost -l ja- ograniczenia. Z pomocÄ… przyjdzie serwer SSH nek -P 9022 jest już znana i wbrew pozo- dostÄ™pny w Internecie. Najlepiej gdyby byÅ‚a to Teraz, po wpisaniu adresu http://localhost: rom powoduje zalogowanie na serwer projek- maszyna, na której mamy uprawnienia roota, 9080/janek/ przeglÄ…darka wyÅ›wietli projekt towy mimo, iż używamy adresu localhost, aby w razie potrzeby móc skonfigurować SSH. strony, nad którym można dalej bez przeszkód co sugerowaÅ‚oby raczej lokalny komputer. Tu- Załóżmy, że administrator sieci firmowej zablo- popracować. DostÄ™p do powÅ‚oki serwera pro- nel odwrotny Å‚Ä…czy port 9022 hosta lokalnego kowaÅ‚ nasze ulubione serwisy WWW, ale po- jektowego uzyskujemy przez SSH: i port SSH maszyny projektowej, dlatego te- zostawiÅ‚ możliwość logowania siÄ™ na serwery raz poÅ‚Ä…czenie do localhost:9022 otwiera se- SSH. Możemy użyć jednego z takich serwerów jan@lolek$ ssh localhost -l janek -p sjÄ™ na zdalnym komputerze. Druga część po- jako poÅ›rednika sieciowego (proxy) i przy je- 9022 lecenia również jest nam znana: otwiera tunel go pomocy uzyskać dostÄ™p do zablokowanych z portu 9080 lokalnego komputera na port 80 usÅ‚ug. Polecenie: gdzie janek to nazwa naszego użytkownika komputera z którym siÄ™ Å‚Ä…czymy. Tu local- na serwerze projektowym, a opcja -p pozwala host oznacza serwer projektowy. Podobnego jan@firmowy$ jas@bolek.mojadomena.pl otworzyć poÅ‚Ä…czenie na porcie innym niż stan- polecenia użyliÅ›my przy zabezpieczaniu pro- -D 8080 dardowy 22, w tym wypadku na 9022. tokołów pocztowych. Czasem zabezpieczenia sieci wydziaÅ‚owej Bardzo czÄ™sto nasz komputer domowy otwiera sesjÄ™ na komputerze domowym, sÄ… bardziej rygorystyczne i nie pozwalajÄ… na nie ma staÅ‚ego adresu IP i nie można mu wte- a opcja -D sprawia, że bÄ™dzie on dziaÅ‚aÅ‚ jako logowanie siÄ™ na serwer projektowy z serwe- dy przypisać nazwy DNS. W takiej sytuacji na- serwer poÅ›redniczÄ…cy (proxy) typu SOCKS ra pocztowego. Wtedy, by móc pracować nad leży skorzystać z usÅ‚ugi dynamicznego DNS dynamicznie tworzÄ…c tunele do wybieranych projektem z domu, potrzebny bÄ™dzie komputer oferowanego np. przez serwis dyndns.org. Po- przez nas adresów. Jeszcze tylko musimy od- domowy z serwerem SSH osiÄ…galny z sieci In- lega ona na przypisaniu komputerowi o zmien- powiednio skonfigurować przeglÄ…darkÄ™ usta- ternet. W czasie pobytu na uczelni musimy do- nym adresie IP staÅ‚ej nazwy DNS. DziÄ™ki temu wiajÄ…c proxy typu SOCKS i podajÄ…c localhost stać siÄ™ do komputera projektowego i otworzyć można nawiÄ…zać z nim poÅ‚Ä…czenie SSH nawet jako adres serwera i port 8080 taki sam jaki z niego sesjÄ™ SSH na serwerze domowym za jeÅ›li nie wiemy jaki aktualnie ma adres. Sytu- zostaÅ‚ okreÅ›lony przy wywoÅ‚aniu SSH. Takie pomocÄ… polecenia. acja jest bardziej skomplikowana, gdy ani ser- ustawienia pozwalajÄ… na poÅ‚Ä…czenie siÄ™ z ser- wer projektowy ani nasz komputer domowy wisami, które zostaÅ‚y oficjalnie zablokowane janek@projekty$ ssh -R 9022: nie sÄ… osiÄ…galne z Internetu. Możliwe jest wte- przez administratora sieci, dziÄ™ki tunelowaniu localhost:22 jan@lolek.mojadomena.pl dy użycie publicznie dostÄ™pnego serwera SSH, komunikacji przez komputer domowy. np. jednego z serwisów oferujÄ…cych bezpÅ‚at- W wielu sieciach ograniczenia nakÅ‚adane na Opcja -R oznacza, że zestawiony zostanie tu- ne konta na maszynach uniksowych i linukso- ruch sieciowy sÄ… wiÄ™ksze. Administratorzy unie- nel odwrotny z lolka na serwer projektowy. wych [7]. Warto zwrócić uwagÄ™ na to czy regu- możliwiajÄ… poÅ‚Ä…czenia przez SSH blokujÄ…c port Po powrocie do domu można wykorzystać ten lamin serwera nie zabrania używania go w ce- 22 na zaporze ogniowej (firewall). Pozostaje je- tunel by zalogować siÄ™ bezpoÅ›rednio do kom- lu zestawiania tuneli i proxy. W wielu serwi- dynie możliwość używania portów 80 (HTTP), putera projektowego wywoÅ‚ujÄ…c komendÄ™: sach jest to zabronione, bo powoduje wzmożo- 443 (HTTPS) i 8080 (alternatywne HTTP). Na- ny ruch sieciowy. leży wtedy serwer SSH skonfigurować tak, aby jan@lolek$ ssh localhost -l janek -p Skoro wiemy już wiele na temat uzyski- pracowaÅ‚ na jednym z trzech dozwolonych por- 9022 wania dostÄ™pu do zabezpieczonej sieci za po- tów np. na 443. W tym celu dodajemy wpis Port 443 do pliku konfiguracyjnego demona OpenSSH /etc/ssh/sshd_config. Po zmianie trze- W Sieci ba pamiÄ™tać o restarcie usÅ‚ugi i można nawiÄ…zać poÅ‚Ä…czenie z komputera firmowego wpisujÄ…c: " http://jakilinux.org/aplikacje/sztuczki-z-ssh/ ArtykuÅ‚ o sztuczkach z SSH cz.1 " http://jakilinux.org/aplikacje/sztuczki-z-ssh-2-tunele/ Część druga artykuÅ‚u. jan@firmowy$ jas@bolek.mojadomena.pl " http://www.openssh.com/ strona projektu OpenSSH -D 8080 -p 443 " http://winscp.net/ WinSCP, klient SCP i SFTP dla systemów Windows " http://www.chiark.greenend.org.uk/~sgtatham/putty/ Putty, klient SSH dla Nie zmieniajÄ…c konfiguracji przeglÄ…darki znów systemów Windows mamy dostÄ™p do zablokowanych serwisów. " http://gftp.seul.org/ GFTP, graficzny klient m.in. SFTP. Nie jest to jednak rozwiÄ…zanie w peÅ‚ni sa- " http://www.red-pill.eu/freeunix.shtml lista darmowych kont SSH tysfakcjonujÄ…ce. Co prawda Firefox wspiera " http://fuse.sourceforge.net/sshfs.html SSHFS obsÅ‚ugÄ™ proxy typu SOCKS, ale wiele progra- " http://roumenpetrov.info/openssh/ Rozszerzenie X.509 dla OpenSSH. mów tego nie potrafi. W takiej sytuacji pomoc- styczeÅ„ 2010 48 RozwiÄ…zania Zabawa w SSHowanego nym może okazać siÄ™ program tsocks. Pozwa- Zabezpieczenia potrafiÄ… jednak być bardzo tywa dla RCP. ZastÄ™puje FTP przez bezpieczny la on korzystać z proxy SOCKS programom, uciążliwe nie tylko dla wÅ‚amywaczy, ale i dla protokół SFTP. DziÄ™ki SSH możemy przekiero- które nie wspierajÄ… konfiguracji z takim ty- użytkowników. Przyjmijmy, że na naszym ser- wać porty, tworzyć tunele i przekierowywać se- pem poÅ›rednika. Dla aplikacji taki sposób po- werze obok istniejÄ…cej już witryny w PHP trzeba sje X11 miÄ™dzy różnymi komputerami w sieci. Å‚Ä…czenia jest przezroczysty, tak jakby Å‚Ä…czyÅ‚ siÄ™ uruchomić drugÄ… stronÄ™ napisanÄ… w Perlu. Za- Zastosowanie autoryzacji przez klucze pozwa- z sieciÄ… bezpoÅ›rednio. Instalujemy tscocks na zwyczaj wymaga to zainstalowania wielu bi- la na proste stosowanie SSH w skryptach, nie komputerze firmowym poprzez bliotek Perla, a ich rÄ™czne instalacja zajęłaby pół wymagajÄ…cych interakcji użytkownika. Może- dnia. Kilka godzin pracy polegajÄ…cej na szuka- my również utworzyć poÅ›rednika sieciowego, jan@firmowy$ sudo aptitude install niu modułów w repozytoriach, lub CPAN, po- który zostanie wykorzystany przez przeglÄ…dar- tsocks bieraniu ich, a nastÄ™pnie kopiowaniu na serwer kÄ™ WWW lub inne programy. i instalowaniu jeden po drugim to perspektywa, a nastÄ™pnie konfigurujemy w pliku /etc/ która może zniechÄ™cić. Na szczęście SSH po- RozwiÄ…zania bazujÄ…ce na SSH tsocks.conf jak na Listingu 3. zwala nam zaoszczÄ™dzić tego wysiÅ‚ku. Na ser- W tym rozdziale przedstawionych zostanie kilka Parametr local okreÅ›la, jakie adresy ma- werze WWW jest już zainstalowane OpenSSH, rozszerzeÅ„ i rozwiÄ…zaÅ„ bazujÄ…cych na SSH. jÄ… być traktowane jako lokalne. Oznacza to, że ale braknie pakietu tsocks. Pobierzemy go rÄ™cz- Bardzo wygodnym narzÄ™dziem dla wielu proxy nie bÄ™dzie stosowane do poÅ‚Ä…czenia z ni- nie z jednego z serwerów lustrzanych Debiana, użytkowników może okazać siÄ™ SSHFS (SSH mi. Parametr server zawiera adres serwera po- skopiujemy i zainstalujemy. File System). Pozwala on na zamontowanie Å›redniczÄ…cego. W tym wypadku jest to lokalny Jak widać na powyższym przykÅ‚adzie du- fragmentu systemu plików zdalnego serwera komputer firmowy czyli localhost (127.0.0.1). żo pracy jest z instalacjÄ… rÄ™cznÄ… nawet jedne- na lokalnej maszynie i używanie go jako do- Parametr server-port wskazuje, na którym go pakietu. datkowy dysk. RozwiÄ…zanie to wykorzystuje porcie nasÅ‚uchuje poÅ›rednik, jest to ten sam Po instalacji konfiguracja tsocks bÄ™dzie poÅ‚Ä…czenie SSH i FUSE, czyli system plików port co przy opcji -D polecenia ssh. Ostatni wyglÄ…daÅ‚a tak samo jak na Listingu 3. Trze- w przestrzeni użytkownika. z parametrów server_type to typ proxy, wpi- ba jeszcze tylko zestawić tunel odwrotny i uru- Innym ciekawym rozwiÄ…zaniem wykorzy- sujemy tu 4 lub 5. Po zapisaniu konfiguracji chomić serwer poÅ›redniczÄ…cy. Zaczniemy od stujÄ…cym SSH jest protokół FISH. ZostaÅ‚ on możemy korzystać z dobrodziejstw jakie ofe- ponownego zalogowania siÄ™ na serwer WWW opracowany na potrzeby programu mc (Mid- ruje program. Polecenie: night Commander) do kopiowania plików za jan@firmowy$ ssh jan@serwerfirmowy -R pomocÄ… zdalnych wywoÅ‚aÅ„ powÅ‚oki. Wspie- jan@firmowy$ tsocks audacious 8022:localhost:22 ra nie tylko SSH, ale również RSH. W prak- tyce jednak wykorzystuje ten pierwszy. Proto- powoduje, że tscocks uruchamia odtwarzacz mu- Teraz poÅ‚Ä…czenia na port 8022 serwera bÄ™- kół, poza Midnight Commanderem, jest uży- zyki Audacious. Wszystkie żądania sieciowe, dÄ… przekierowywane do komputera firmowe- wany m.in. w popularnym menedżerze plików z wyjÄ…tkiem tych do adresów zdefiniowanych go. Polecenie: KDE Konquerorze. w parametrze local, tak uruchomionego odtwa- W artykule zostaÅ‚a przedstawiona moż- rzacza bÄ™dÄ… obsÅ‚ugiwane przez tsocks i przesyÅ‚a- jan@serwerfirmowy$ ssh jan@localhost liwość autoryzacji w SSH za pomocÄ… klucza ne przez proxy zbudowane w oparciu o SSH. -p 8022 -D 8080 kryptograficznego, ale warto również wiedzieć, że zostaÅ‚o opracowane rozwiÄ…zanie pozwalajÄ…- Ucieczka wydane z serwera WWW poÅ‚Ä…czy nas do kom- ce na logowanie za pomocÄ… certyfikatów X509. ze strefy zdemilitaryzowanej putera lokalnego. Dodatkowo ustawi proxy na Certyfikaty, czyli bardziej zaawansowana wer- Mamy już wystarczajÄ…co dużo doÅ›wiadcze- porcie 8080 za poÅ›rednictwem którego bÄ™dzie sja kluczy, oprócz samego materiaÅ‚u kryptogra- nia z SSH, aby przystÄ…pić do bardziej za- można Å‚Ä…czyć siÄ™ z Internetem, tunelujÄ…c ruch ficznego zawierajÄ… informacjÄ™ o wÅ‚aÅ›cicielu awansowanego zadania. Pozwoli ono wyko- przez komputer lokalny. Kolejnym krokiem certyfikatu i Å›cieżce certyfikacji organizacjach rzystać i utrwalić zdobytÄ… do tej pory wie- jest otwarcie drugiej sesji SSH i wykonanie ja- odpowiedzialnych za jego wystawienie. Roz- dzÄ™. Przypuśćmy, że administrujemy firmo- ko root polecenia: szerzenie jest rozwijane niezależnie od głównej wym serwerem WWW. Systemem operacyj- gaÅ‚Ä™zi projektu OpenSSH. nym komputera jest Debian i mamy do niego jan@serwerfirmowy# tsocks aptitude To jednak nie wszystko.Wachlarz pomy- dostÄ™p przez SSH. Nikt nie bÄ™dzie nam blo- słów na wykorzystanie SSH jest bardzo szeroki kowaÅ‚ dostÄ™pu do serwera, ale jak siÄ™ czÄ™sto a nastÄ™pnie wybranie i zainstalowanie nie- i zależy od inwencji i potrzeb użytkowników. zdarza maszyna zostaÅ‚a umieszczona w stre- zbÄ™dnych pakietów oprogramowania. Po za- fie zdemilitaryzowanej (DMZ). DMZ to pod- koÅ„czonej pracy zamykamy wszystkie sesje sieć, do której jest dostÄ™p z sieci firmowej jak SSH a tym samym tunele. Ponieważ tsocks zo- O autorze i z Internetu, ale komputery w niej siÄ™ znaj- staÅ‚o już zainstalowane i skonfigurowane, na- dujÄ…ce nie mogÄ… nawiÄ…zywać poÅ‚Ä…czeÅ„ na ze- stÄ™pnym razem w podobnej sytuacji bÄ™dzie Autor jest z wyksztaÅ‚cenia inżynierem wnÄ…trz strefy. Jest to powszechna praktyka można rozpocząć od zestawiania tuneli. elektroniki, Linuksem interesuje siÄ™ od bezpieczeÅ„stwa. JeÅ›li intruz przejÄ…Å‚by kon- Trudno jest przecenić wartość SSH. Jest oÅ›miu lat. Na co dzieÅ„ używa go tak w trolÄ™ nad serwerem znajdujÄ…cym siÄ™ w takiej ono czymÅ› wiÄ™cej niż tylko szyfrowanym na- pracy, jak i w domu a jego ulubione dystry- strefie to nie może siÄ™ z niego poÅ‚Ä…czyć do stÄ™pcÄ… telnetu i rlogin. Pozwala na zdalne wy- bucje to Gentoo i Debian. komputerów pracowników firmy ani do Inter- konywanie poleceÅ„ podobnie jak RSH, szy- Kontakt z autorem: netu, w celu np. rozsyÅ‚ania SPAMu lub atako- frujÄ…c kanaÅ‚ transmisji. Umożliwia kopiowa- w.terlikowski@terlikowski.eu.org wania innych maszyn. nie plików przez SCP jako bezpieczna alterna- www.lpmagazine.org 49