korzystania z crontaba i at, do drukowania na konkretnych drukarkach, i inne. powerdown:x:0:1:power Down User:/:/usr/local/sbin/powerdown

Podobne dokumenty
Konta użytkowników w systemie Unix

Konta użytkowników w systemie Unix

Konta użytkowników w systemie Unix

Podstawowe zasady bezpieczeństwa

SSH - Secure Shell Omówienie protokołu na przykładzie OpenSSH

SSH. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Bezpieczeństwo systemów informatycznych

Szyfrowanie. Tradycyjnie szyfrowanie, stosowane od starożytności, wykorzystywa lo technologie

Usługi sieciowe systemu Linux

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

us lugi katalogowe? Czym różni si e serwer katalogowy od serwera bazy danych:

System operacyjny UNIX - użytkownicy. mgr Michał Popławski, WFAiIS

4. Podstawowa konfiguracja

11. Autoryzacja użytkowników

Użytkownicy I. Użytkownik. Głównym celem istnienia użytkowników i grup w systemie jest utrzymanie porządku i separacja uprawnień.

Instrukcja dla instalatora systemu SMDP Enterprise/Professional

Sieciowa instalacja Sekafi 3 SQL

Organizacja systemu plików

1. Konwencje przyjęte w instrukcji

System operacyjny Linux

Bezpieczeństwo sieci komputerowych. dr inż. Andrzej Chmielewski Wydział Informatyki Politechniki Białostockiej

1 Tworzenie własnego zaproszenia dla powłoki bash

NIS/YP co to takiego?

Inżynier na miarę XXI wieku

Serwer SSH. Rozdział Podstawowakonfiguracja

Uruchamianie SNNS. Po uruchomieniu. xgui & lub snns & pojawia si e okno. programu. Symulator sztucznych sieci neuronowych SNNS 1

Instrukcja konfiguracji funkcji skanowania

12. Wirtualne sieci prywatne (VPN)

Wirtualne sieci prywatne

Zdalne logowanie do serwerów

System Kancelaris. Zdalny dostęp do danych

DESlock+ szybki start

Bezpieczeństwo systemów informatycznych

Windows W celu dostępu do i konfiguracji firewall idź do Panelu sterowania -> System i zabezpieczenia -> Zapora systemu Windows.

ABA-X3 PXES v Podręczna instrukcja administratora. FUNKCJE SIECIOWE Licencja FDL (bez prawa wprowadzania zmian)

PGP - Pretty Good Privacy. Użycie certyfikatów niekwalifikowanych w programie PGP

Linux Ubuntu - zarządzanie użytkownikami

Organizacja systemu plików

Instalacja i konfiguracja serwera SSH.

INSTALACJA LICENCJI SIECIOWEJ NET HASP Wersja 8.32

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

Podręcznik administratora systemu

Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->.

PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl

Instalacja Active Directory w Windows Server 2003

Windows Server Active Directory

MONITOROWANIE WINDOWS Z NETCRUNCHEM 7 P A G E 1

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

Protokoły zdalnego logowania Telnet i SSH

Biuletyn techniczny. CDN OPT!MA 12.0 Drukarki fiskalne w usługach terminalowych. Copyright 2007 COMARCH SA

Instrukcja instalacji oprogramowania TSG wer. 5.0 z dost pem do danych poprzez sie Internet.

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja autoryzowanego użytkownika)

Krótka instrukcja instalacji

SERWER AKTUALIZACJI UpServ

Win Admin Replikator Instrukcja Obsługi

Zdalna obsługa transcievera. H A M R A D I O D E L U X E R e m o t e S e r v e r C o n f i g u r a t i o n

DHL CAS ORACLE Wymagania oraz instalacja

1 Tworzenie własnego zaproszenia dla powłoki bash

Instrukcja konfiguracji programu Fakt z modułem lanfakt

Telnet. Telnet jest najstarszą i najbardziej elementarną usługą internetową.

SZYBKI START. Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2. Szyfrowanie/odszyfrowanie danych 4

Konfiguracja IPSec Brama IPSec w Windows 2003 Server

Konfiguracja klientów SSH - PuTTY i WinSCP

T: Zabezpieczenie dostępu do komputera.

Test. Administrowanie sieciowymi systemami operacyjnymi

Instrukcja do programu Roger Licensing Server v1.0.0 Rev. A

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

Praca w programie dodawanie pisma.

Bezpieczeństwo systemów informatycznych

Tomasz Greszata - Koszalin

Jak używać funkcji prostego udostępniania plików do udostępniania plików w systemie Windows XP

Zarządzanie użytkownikami w

Instrukcja instalacji Control Expert 3.0

Działanie komputera i sieci komputerowej.

Pracownia internetowa w każdej szkole. Opiekun pracowni internetowej SBS 2003 PING

- udostępnić anonimowym użytkownikowi Internetu pliki przez serwer FTP,

MBUM #2. Zarządzanie kopiami konfiguracji RouterOS. Jacek Rokicki

Przydziały (limity) pojemności dyskowej

Funkcje systemu Unix

Laboratorium nr 5 Podpis elektroniczny i certyfikaty

Dokument zawiera instrukcję samodzielnej Instalacji Microsoft SQL Server 2008 R2 RTM - Express na potrzeby systemu Sz@rk.

Kontrola dostępu w ASP.NET

Laboratorium Ericsson HIS NAE SR-16

BlackHole. Bezpieczne Repozytorium Ważnych Zasobów.

Opis komunikacji na potrzeby integracji z systemem klienta (12 kwiecień, 2007)

Oprogramowanie OpenVPN jest oprogramowaniem darmowym, które można pobrać ze strony:

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Interfejs GSM/GPRS LB-431

Kalipso wywiady środowiskowe

Biuletyn techniczny. Drukarki fiskalne w usługach terminalowych. Comarch OPT!MA Copyright 2007 COMARCH SA

Windows Serwer 2008 R2. Moduł 5. Zarządzanie plikami

Serwer druku w Windows Server

Instrukcja do programu Roger Licensing Server v1.0.0 Rev. A

Windows Serwer 2008 R2. Moduł 8. Mechanizmy kopii zapasowych

Administracja serwerami

Uwierzytelnianie użytkowników sieci bezprzewodowej z wykorzystaniem serwera Radius (Windows 2008)

Instrukcja konfiguracji programu Fakt z modułem lanfakt

oprogramowania F-Secure

PuTTY. Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Inne interesujące programy pakietu PuTTY. Kryptografia symetryczna

MikroTik Serwer OpenVPN

Transkrypt:

Konta użytkowników w systemie Unix Witold Paluszyński Katedra Cybernetyki i Robotyki Politechnika Wroc lawska http://www.kcir.pwr.edu.pl/~witold/ 2000 2013 Ten utwór jest dost epny na licencji Creative Commons Uznanie autorstwa- Na tych samych warunkach 3.0 Unported Utwór udost epniany na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach. Udziela si e zezwolenia do kopiowania, rozpowszechniania i/lub modyfikacji treści utworu zgodnie z zasadami w/w licencji opublikowanej przez Creative Commons. Licencja wymaga podania oryginalnego autora utworu, a dystrybucja materia lów pochodnych może odbywać si e tylko na tych samych warunkach (nie można zastrzec, w jakikolwiek sposób ograniczyć, ani rozszerzyć praw do nich). Konta użytkowników lokalne Konta użytkowników zapewniaj a możliwość pracy w systemie, i jednocześnie izolacj e użytkowników od systemu i od siebie nawzajem. Konta g lównie reprezentuj a ludzkichużytkowników, ale można tworzyć też konta anonimowe, oraz konta techniczne, z możliwości a logowania lub bez. Podstawowe atrybuty /etc/passwd: nazwa (login), numer (uid), grupa (gid), has lo, katalog dyskowy, interpreter poleceń, nazwa w lasna. Inne rozproszoneatrybuty: grupy dodatkowe, quota, uprawnienia do korzystania z crontaba i at, do drukowania na konkretnych drukarkach, i inne. /etc/passwd: root:x:0:1:super-user:/:/sbin/sh powerdown:x:0:1:power Down User:/:/usr/local/sbin/powerdown reboot:x:0:1:reboot User:/:/usr/sbin/reboot daemon:x:1:1::/: bin:x:2:2::/usr/bin: sys:x:3:3::/: adm:x:4:4:admin:/var/adm: lp:x:71:8:line Printer Admin:/usr/spool/lp: witold:x:1001:1000:witold Paluszynski,p.307/C-3:/home/witold:/usr/bin/tcsh Konta użytkowników atrybuty 3 Konta użytkowników sieciowe Środowisko systemów uniksowych sprzyja tworzeniu kont i katalogów sieciowych. Istnieje w zasadzie jedna koncepcja i standard sieciowego systemu plików NFS, stworzony przez firm e Sun Microsystems w latach 1980-tych, i pozwalaj acy wspó ldzielić katalogi użytkowników (i inne, patrz np. katalog /usr/share) mi edzy uprawnionymi komputerami. Jednak teoretycznie prostszy system, jakim powinna być sieciowa lista / katalog / baza danych użytkowników, rodzi l si e d lugo i w bólach. Sun Microsystems stworzy l najpierw system NIS (pierwotnie zwany Yellow Pages), który by l prosty, ale wadliwie pomyślany i tworz acy zagrożenia bezpieczeństwa (kompletn a baz e hase l można w nim ści agać z dowolnego miejsca w Internecie). Jego poprawion a wersj a mia l być system NIS+. Jednak okaza l si e pomy lk a nie tylko nie rozwi aza l problemu zabezpieczeń, ale wprowadzi l imponuj acy poziom z lożoności. Mimo to, systemy NIS i NIS+ nadal s a aktywnie używane. Dopiero standard LDAP, wprowadzony w po lowie lat 1990-tych, dostarczy l mechanizm pozwalaj acy bez ograniczeń usieciowićkonta użytkowników systemów uniksowych. Konta użytkowników atrybuty 4

Konta użytkowników LDAP LDAP (Lightweight Directory Access Protocol) oryginalnie by l uproszczonym protoko lem dost epu do baz danych telekomunikacyjnych us lug katalogowych X.500. Może być jednak używany jako samodzielny, z w lasn a baz a danych. LDAP sta l si e standardem serwisu nazw na systemach uniksowych, ale jest wieloplatformowy, i bywa używany w środowiskach heterogenicznych. LDAP (podobnie jak systemy NIS i NIS+) pozwala przechowywać atrybuty konta użytkownika w sieciowej bazie danych, i udost epniać je uprawnionym systemom. Istotn a cech a serwerów katalogowych, która różni je od zwyk lych baz danych, jest szybkość odpowiedzi. Serwer katalogowy przechowuje niewielkie dane, o niezbyt rozbudowanej strukturze, ale musi odpowiadać szybko. diablo-522> ldaplist -l passwd witold dn: uid=witold,ou=people,ou=lab07,o=zpcir uid: witold cn: Witold Paluszynski,C3 p307,320-2741, objectclass: account objectclass: posixaccount objectclass: top objectclass: shadowaccount shadowmax: 7000 shadowlastchange: 13000 loginshell: /usr/bin/tcsh uidnumber: 1001 gidnumber: 1000 homedirectory: /home/witold gecos: Witold Paluszynski,C3 p307,320-2741, userpassword: {crypt}s0t5vdcndmk1. Konta użytkowników atrybuty 5 Sieciowe katalogi użytkowników automounter W sieciowym systemie, w którym informacje o kontach użytkowników mog a znajdować si e w serwerach NIS lub LDAP, katalogi użytkowników mog a być lokalne, lub montowane z sieciowego serwera plików W systemie, w którym konta różnych użytkowników zlokalizowane sa w różnych miejscach (niektóre na lokalnym dysku, a inne na jednym lub wi ecej sieciowych serwerach plików), cz esto używanym mechanizmem jest automounter. Jest on mechanizmem montowania na ż adanie systemów plików, albo katalogów. Próba otwarcia pliku w katalogu, który jest pod kontrol a automountera, powoduje chwilowe zawieszenie tej operacji, i zamontowanie (mount) odpowiedniego katalogu, czyli uzyskanie do niego dost epu i w l aczenie go do struktury katalogów we w laściwym miejscu, w przypadku katalogów użytkowników typowo w katalogu /home. Automounter monitoruje użycie katalogów użytkowników, i od l acza (umount) je po wylogowaniu użytkownika. Zatem w systemach korzystaj acych z automountera do montowania katalogów użytkowników, informacja o lokalizacji katalogu użytkownika jest jednym z dodatkowych atrybutów konta. Konta użytkowników atrybuty 6 Name service switch Ponieważ szereg mechanizmów może być źród lem informacji o atrybutach konta użytkownika, narz edzia systemowe musz a być dostosowane do komunikowania si e z serwisami: NIS, NIS+, i LDAP. Należ a do nich, mi edzy innymi: program login tworz acy terminalow a sesj e użytkownika (przy w l aczaniu si e przez sieć), program passwd pozwalaj acy użytkownikom zmieniać swoje has lo, i inne. Wspó lczesne systemy uniksowe posiadaj a plik konfiguracji serwisów nazw /etc/nsswitch.conf. Obejmuje różne serwisy, i jest rodzajem pojemnika na różne różności. W zakresie kont użytkownika, obejmuje: baz e hase l (passwd), drug a baz e hase l (shadow), baz e grup, i baz e katalogów użytkowników (automount). hera-500> cat /etc/nsswitch.conf... passwd: compat ldap group: compat ldap shadow: compat ldap automount: files ldap Istnieje polecenie getent pozwalaj ace odczytywać wpisy w poszczególnych bazach, zgodnie ze specyfikacj a /etc/nsswitch.conf. Niestety, nie jest napisane ca lkiem ogólnie i nie obejmuje wszystkich baz, w tym np. automount. Konta użytkowników atrybuty 7 Grupy użytkowników Mechanizm grup pozwala nadawać użytkownikom uprawnienia do plików dyskowych nie b ed acych ich w lasności a. Na przyk lad, wyk ladowca może udost epniać pliki tylko studentom danego kursu, jeśli należ a do grupy tego kursu. (Oryginalnie by lo to wykorzystywane do tworzenia projektów.) Mechanizm ten jest niewystarczaj acy, ponieważ każdy użytkownik należy tylko do jednej grupy. Student nie móg lby w ten sposób korzystać z dost epu do plików innych kursów. Istnieje wi ec mechanizm grup dodatkowych. /etc/group root::0:root other::1: bin::2:root,bin,daemon sys::3:root,bin,sys,adm adm::4:root,adm,daemon /etc/group... floppy:x:19:witold,tyciu,maciek,pludwiko,kosiu dialout:x:20:uucp,witold,tyciu,psadowsk cdrom:x:24:hallor,psadowsk,pludwiko,tyciu Koncepcja grup dodatkowych oryginalnie przewiduje dost ep do nich przez has lo. Jednak ten mechanizm jest ma lo wygodny, i we wspó lczesnych systemach sam wpis do grupy dodatkowej w pliku /etc/group wystarcza do uzyskiwania dost epu. Jednak wygoda tworzenia praw dost epu ta metod a nadal jest niska, zw laszcza dla wielu użytkowników i dynamicznie powstaj acych grup. Konta użytkowników atrybuty 8

Nabywanie uprawnień innych użytkowników Przypomnijmy: każdy proces ma identyfikator użytkownika, który go uruchomi l. Może również mieć zdefiniowany drugi identyfikator użytkownika (lub grupy), i uzyskiwać uprawnienia tego drugiego użytkownika (grupy). Odbywa si e to przez ustawienie specjalnych bitów praw dost epu dla pliku z programem. W ten sposób dzia la w systemach uniksowych wiele programów systemowych, które potrzebuj a praw specjalnych dost epu. Na przyk lad, użytkownik może zmienić swoje has lo programem passwd. Program ten modyfikuje plik /etc/passwd dzi eki mechanizmowi set-uid. Zwyk ly użytkownik również może w ten sposób nadać swoje uprawnienia jakiemuś programowi, i w ten sposób przekazać je każdemu użytkownikowi, który uruchomi ten program. (Pozostaje jednak problem: jak ograniczyć prawo uruchamiania programu do określonej grupy użytkowników?) Uwaga: mechanizm set-uid nie dzia la dla skryptów, ponieważ uruchamianie skryptów w rzeczywistości uruchamia interpreter poleceń, który interpretuje dany skrypt. Gdyby jednak nadać uprawnienia set-uid samemu interpreterowi, to możnaby nast epnie wykonywać nim dowolny inny skrypt lub polecenie, i korzystać z uprawnień set-uid. Konta użytkowników atrybuty 9 System quota System quota jest mechanizmem ograniczania użytkownikom wielkości dysku, jaki mog a zajmować, jak również liczby plików, jakie mog a utworzyć. Limity określane sa dwustopniowo: mi ekkie limity mog a być przez użytkownika przekroczone, i powoduj a jedynie wyświetlanie ostrzeżeń, oraz mog a spowodować blokad e konta po ustalonym czasie. Przekroczenie twardego limitu jest niemożliwe, i może mieć nieprzyjemne skutki, np. niemożność zapisania pliku w edytorze. Oczywiście, użytkownik zwykle może latwo unikn ać tych skutków przez skasowanie cz eści swoich plików. Limity określane sa oddzielnie dla każdego systemu plików, i mog a być również sprawdzane i wymuszane dla systemów plików zaimportowanych przez sieć. Jednak uwaga na zjawisko oddawaniaswoich plików innym użytkownikom. Polecenia systemu quota: quota [-v] - sprawdza ustawienia limitów uzytkownika i aktualne wykorzystanie repquota - sprawdza limity dla katalogów w systemie plików quotaon - polecenie administracyjne: wl acza system quota quotaoff - polecenie administracyjne: wyl acza system quota edquota - polecenie administracyjne: pozwala modyfikować limity uzytkowników Konta użytkowników atrybuty 10 Has la W systemach unixowych wprowadzono oryginalny system ochrony kont użytkowników has lami. Has la s a szyfrowane jawnym, znanym algorytmem, który nie ma operacji odwrotnej, i przechowywane w postaci zaszyfrowanej w ogólnie dost epnym pliku hase l /etc/passwd. W tej koncepcji dowolny, nieuprzywilejowany program może zweryfikować has lo podane przez użytkownika, ale nie może oryginalnego has la odtworzyć. Niestety, ta prosta i zdawa loby si e pi ekna w swej prostocie koncepcja okaza la si e na wiele sposobów wadliwa. Na przyk lad, każdy móg l latwo znaleźć użytkowników, którzy has la w ogóle nie posiadali. Pocz atkowo można by lo też stwierdzić, że użytkownik posiada to samo has lo na różnych komputerach. Na koniec, pojawienie si e tanich komputerów o dużej mocy obliczeniowej pozwoli lo has la zwyczajnie lamać. Dlatego wprowadzono modyfikacj e tej koncepcji polegaj ac a na usuni eciu hase l z pliku hase l i umieszczeniu ich w chronionym /etc/shadow. Powsta l również mechanizm starzenia hase l konfigurowany w tym pliku. Pozwala on wymusić zmian e has la w określonych odst epach czasu, albo zabronić zmiany has la, jeśli w danym systemie has la generuje administrator. Konta użytkowników zabezpieczenie kont i hase l 11 Zasady bezpieczeństwa dla hase l plik shadow zapewnienie hase l niepustych, nietrywialnych zakaz przechowywania hase l przez użytkowników go lym tekstem, nieprzesy lanie ich przez sieć, itp. niedopuszczenie do wspó lużywania jednego konta/has la przez różne osoby używanie różnych hase l na różnych komputerach (zw laszcza root) blokada logowania si e przez sieć na konto root zakaz logowania si e bez podania has la (.rhosts, klucze) okresowe zmienianie hase l starzeniehase l (ang. password aging) wymuszanie mocnychhase l inne, mocniejsze zabezpieczenia w razie potrzeby Konta użytkowników zabezpieczenie kont i hase l 12

Podstawowe zasady bezpieczeństwa Niezależnie od istniej acych w danym systemie zabezpieczeń, trzeba pami etać, że ostatecznie bezpieczeństwo konta zależy od istniej acych praktyk i post epowania użytkowników. Warto mieć na uwadze poniższe zasady. Bezpieczeństwo jest odwrotności a wygody. Z jednej strony, trzeba liczyć si e z konieczności a pewnych niewygód, jeśli chcemy uzyskać podwyższone bezpieczeństwo konta lub systemu. Z drugiej strony, ustawianie zbyt wysokich wymagań bezpieczeństwa tworzy niewygody, i cz esto zdarza si e, że aby pokonać te niewygody, zasady bezpieczeństwa sa lamane!! System jest bezpieczny tylko w takim stopniu, jak jego najmniej bezpieczny element. Tworzenie zabezpieczeń niekoniecznie podnosi bezpieczeństwo systemu. Aby podnieść ogólny poziom bezpieczeństwa, trzeba szukać luk w zabezpieczeniach, i je zamykać. Zamiast tego, czasami wprowadza si e pewne standardy zabezpieczeń, które komuś pasuj a, ale w rzeczywistości nic nie wnosz a. Konta użytkowników zabezpieczenie kont i hase l 13 Konta użytkowników zabezpieczenie kont i hase l 14 System szyfrowania kluczem publicznym PGP i GnuPG System PGP (Pretty Good Privacy) zosta l stworzony przez Philipa Zimmermanna w celu udost epnienia zwyk lym użytkownikom systemów komputerowych dobrodziejstw wynikaj acych z zastosowania nowoczesnych algorytmów szyfrowania z wykorzystaniem kluczy publicznych. Zaproponowana przez niego koncepcja okaza la si e na tyle dobra, że program natychmiast zosta l zaakceptowany i powsta la spo leczność jego użytkowników, jak również serwery kluczy publicznych tego systemu. Jednak wkrótce pojawi ly si e problemy, wynikaj ace z szybkiego post epu w tworzeniu nowych algorytmów szyfrowania, i ch eci ich użycia w systemie PGP, a z drugiej strony wprowadzanej ich ochrony prawnej przez różne firmy (patenty), a także blokowania przez rz ad amerykański możliwości eksportowania z U.S.A. oprogramowania zawieraj acego nowe algorytmy szyfrowania. Powstawa ly nowe wersje oprogramowania PGP, lecz niektóre z nich narusza ly istniej ace patenty, a inne nie mog ly być rozpowszechniane z terenu U.S.A., i z konieczności nie wszystkie by ly ze sob a kompatybilne. Dobrym rozwi azaniem tych problemów jest system GnuPG, kompatybilny z systemem szyfrowania PGP, i należ acy do niego program gpg, z interfejsem użytkownika zgodnym z oryginalnym programem pgp. Konta użytkowników szyfrowanie PGP/GPG 15 System PGP i GPG tworzenie i przesy lanie kluczy 1. Wybranie kartoteki na pliki konfiguracyjne (musi być zabezpieczona): PGPPATH=~/.pgp # domyslna dla PGP GNUPGHOME=~/.gnupg # domyslna dla GnuPG export PGPPATH GNUPGHOME 2. Wygenerowanie sobie kompletu kluczy: prywatnego i publicznego. pgp -kg gpg --gen-key 3. Wprowadzenie czyjegoś klucza publicznego do bazy danych. pgp -ka plik_z_czyims_kluczem gpg --import plik_z_czyims_kluczem 4. Utworzenie pliku tekstowego z w lasnym kluczem publicznym. pgp -kxa user_id plik_z_kluczem gpg --export --armor --output plik_z_kluczem user_id Konta użytkowników szyfrowanie PGP/GPG 16

System PGP i GPG szyfrowanie 1. Zaszyfrowanie danych w pliku czyimś kluczem publicznym pgp -eat plik_danych mw ekr bezpośrednie wysy lanie zaszyfrowanych danych programem mailx cat tresc_listu pgp -eatf ekr mailx -s "list ode mnie" ekr zaszyfrowanie w locie treści listu pisanego pod programem mailx ~ pgp -eatf ekr 2. Szyfrowanie symetryczne (jednym kluczem) pgp -c plik_danych Konta użytkowników szyfrowanie PGP/GPG 17 System PGP i GPG deszyfrowanie i podpisy cyfrowe pgp nazwa_pliku cat cos_tam pgp z poziomu programu mailx pipe pgp -m Podpisy cyfrowe: pgp -s nazwa_pliku pgp -sta nazwa_pliku # wygodne z flaga CLEARSIG pgp -esta nazwa_pliku witold Plik konfiguracyjny $PGPPATH/config.txt CLEARSIG = on TEXTMODE = on ARMOR = on Konta użytkowników szyfrowanie PGP/GPG 18 System PGP i GPG konfiguracja i manipulacje kluczami 1. wyświetlanie zapami etanych kluczy publicznych pgp -kv gpg --list-keys 2. wyświetlanie zapami etanych kluczy prywatnych (tylko sygnatur) gpg --list-secret-keys 3. Sprawdzanie przez telefon sygnatury klucza pgp -kvc witold gpg --list-sigs Konta użytkowników szyfrowanie PGP/GPG 19 Konta użytkowników szyfrowanie PGP/GPG 20

Szyfrowane po l aczenia: ssh i scp Programy ssh/scp umożliwiaj a po l aczenia terminalowe i kopiowanie plików, z wykorzystaniem szyfrowania kluczem publicznym. Wymaga to wygenerowania pary kluczy szyfrowania dla komputera, do wst epnego nawi azywania po l aczenia. Ponadto, każdy użytkownik musi mieć wygenerowan a w lasn a par e kluczy: > ssh-keygen... > ls -l ~/.ssh: total 36 -rw------- 1 witold gurus 826 2007-11-25 08:50 authorized_keys -rw-r--r-- 1 witold gurus 15 2007-11-25 10:47 config -rw------- 1 witold gurus 1675 2007-11-25 08:46 id_rsa -rw-r--r-- 1 witold gurus 630 2008-06-04 16:52 id_rsa.keystore -rw-r--r-- 1 witold gurus 396 2007-11-25 08:46 id_rsa.pub -rw------- 1 witold gurus 14160 2008-10-24 10:16 known_hosts Plik z kluczem prywatnym może być zabezpieczony has lem (passphrase). Has lo trzeba podawać każdorazowo przy korzystaniu z klucza prywatnego (pewne udogodnienie zapewnia program ssh-agent, o czym za chwil e). Można zrezygnować z has la, wtedy klucz jest chroniony tylko prawami dost epu do pliku. Konta użytkowników szyfrowane po l aczenia ssh 21 Nawi azywanie po l aczenia Normalnie przy nawi azywaniu po l aczeń ze zdalnymi systemami za pomoc a ssh lub scp, zdalny system wymaga autoryzacji przez podanie has la: shasta-3184> scp -p ~/mozilla.ps sierra:/tmp The authenticity of host sierra (172.16.0.1) can t be established. RSA key fingerprint is 1b:9d:e6:cd:df:fd:ac:2a:6c:40:bd:0b:40:2b:50:9d. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added sierra,172.16.0.1 (RSA) to the list of known hosts. witold@sierra s password: mozilla.ps 100% ***************************** 937 KB 00:01 W tym przypadku okaza lo si e, że program ssh na komputerze lokalnym (shasta) nie znalaz l zapami etanego klucza publicznego komputera zdalnego (sierra), i ostrzeg l użytkownika, że zapyta bezpośrednio zdalny komputer o jego klucz. Nast epnie zapisa l otrzymany zdalny klucz w pliku lokalnym. Normalnie jest bezpieczniej użyć od razu klucza publicznego zdalnego komputera nawet do nawi azania wst epnego po l aczenia, ze wzgl edu na możliwość podszywania si e. Przy kolejnych po l aczeniach system znajdzie i użyje zapami etany klucz publiczny zdalnego komputera. Warto zwrócić uwag e na ten szczegó l, ponieważ jest to pierwszy stopień zabezpieczenia programu ssh. Konta użytkowników szyfrowane po l aczenia ssh 22 Nawi azywanie po l aczenia (2) -bash-3.00$ ssh sierra.ict.pwr.wroc.pl @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. The fingerprint for the RSA key sent by the remote host is 1b:9d:e6:cd:df:fd:ac:2a:6c:40:bd:0b:40:2b:50:9d. Please contact your system administrator. Add correct host key in /home/witold/.ssh/known_hosts to get rid of this message. Offending key in /home/witold/.ssh/known_hosts:3 RSA host key for palnet.homeunix.net has changed and you have requested strict checki Host key verification failed. W tym przypadku klucz przys lany przez zdalny serwer nie zgadza si e z kluczem pami etanym dla serwera przez program ssh. Może to być wynikiem zmiany klucza na zdalnym serwerze (np. w wyniku reinstalacji), ale może sygnalizować fa lszerstwo. Konta użytkowników szyfrowane po l aczenia ssh 23 Odcisk palcaklucza Aby potwierdzić poprawność klucza zdalnego systemu, do którego nie mamy innego dost epu niż po l aczenie ssh na swoje konto, możemy sprawdzić jego odcisk palca(fingerprint), który jest rodzajem sumy kontrolnej, latwej do przeczytania. Użytkownik zdalnego systemu (np. administrator) może go uzyskać nast epuj acym poleceniem, i nast epnie np. podyktować przez telefon: ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key Do uzyskania odcisku palca klucza nie jest potrzebny dost ep do klucza prywatnego, do którego zwyk ly użytkownik nie ma dost epu, ponieważ jest to klucz ca lego systemu, a nie konkretnego użytkownika. Po weryfikacji poprawności uzyskiwanego klucza, należy wykasować edytorem tekstowym stary klucz z pliku pami etanych kluczy, co pozwoli nawi azać poprawne po l aczenie. Konta użytkowników szyfrowane po l aczenia ssh 24

Autoryzacja po l aczenia Program ssh obs luguje mechanizm równoważności maszyn zgodny z programami r*. Uwzgl edniany jest zarówno plik systemowy /etc/hosts.equiv (oraz dodatkowo /etc/ssh/shosts.equiv), jak również pliki użytkowników ~/.rhosts (i dodatkowo ~/.shosts). Ten mechanizm jest bardziej bezpieczny w przypadku ssh niż w przypadku r*, ze wzgl edu na weryfikacj e kluczy, oraz szyfrowanie po l aczeń. Jednak administrator systemu może wy l aczyć ten mechanizm autentykacji użytkownika, co nie blokuje obs lugi po l aczeń ssh, a tylko wyklucza t e możliwość autentykacji użytkownika. Inn a metod a autentykacji jest użycie kluczy szyfrowania. Użytkownik może wpisać klucze publiczne z systemów, z których chce mieć możliwość logowania si e, do pliku ~/.ssh/authorized_keys. Po l aczenie jest nawi azywane automatycznie, jednak program ssh potrzebuje w tym procesie dost epu do klucza prywatnego. Jeśli klucz prywatny jest chroniony has lem (passphrase), to użytkownik musi podać to has lo. Warto pami etać, że autentykacja przez klucze może również być zablokowana przez administratora zdalnego systemu. Ostatni a metod a autentykacji jest bezpośrednie podanie przez użytkownika has la do konta na zdalnym systemie. Ta metoda nie jest na ogó l blokowana. Has lo jest przesy lane bezpiecznym szyfrowanym kana lem. Konta użytkowników szyfrowane po l aczenia ssh 25 ssh-agent W przypadku gdy klucze prywatne użytkownika s a chronione has lem (passphrase) użytkownik musi podać to has lo przy każdorazowym nawi azywaniu po l aczenia, co jest równie niewygodne, jak podawanie has la do zdalnego konta, i wygoda wynikaj aca z logowania si e przez klucze znika. Istnieje sposób na usprawnienie tego procesu za pomoc a programu ssh-agent. Program ten s luży do przechowywania kluczy w pami eci, i dostarczanie ich przy każdorazowej próbie nawi azywania po l aczenia przez ssh. Program ssh-agent po uruchomieniu instaluje si e w pami eci, i tworzy zmienne środowiskowe umożliwiaj ace innym programom kontakt z ssh-agent w celu zapytania o klucze. Klucze dodaje si e programowi ssh-agent programem ssh-add. Jak z tego wynika, program ssh-agent b edzie najlepiej spe lnia l swoje funkcje, jeśli b edzie korzeniem ca lej sesji użytkownika, czyli przodkiem wszystkich jego procesów. W przypadku logowania terminalowego można to zorganizować poleceniem typu: "exec ssh-agent $SHELL" umieszczonym w pliku startowym interpretera poleceń (uwaga na p etle). W przypadku logowania do sesji okienkowej odpowiednie wywo lanie musia loby si e znaleźć w konfiguracji sesji. Konta użytkowników szyfrowane po l aczenia ssh 26 Tunelowanie po l aczeń przez ssh Dodatkow a, niezwykle przydatn a w lasności a programu ssh jest zdolność tunelowania po l aczeń, czyli tworzenia portów sieciowych TCP po dowolnej stronie po l aczenia ssh. W chwili próby otwarcia tego portu program ssh tworzy port po drugiej stronie po l aczenia ssh, i po l aczenie TCP mi edzy nimi. Nawi azywanie po l aczenia i komunikacja TCP przez l acze ssh s a szyfrowane. Mechanizm tworzenia tuneli TCP jest mocnyi daje wiele możliwości. Przeanalizujemy kilka przyk ladowych konfiguracji. Konta użytkowników szyfrowane po l aczenia ssh 27 ssh: przyk lady tuneli (1) Na przyk lad, chcemy komunikować si e ze zdalnym serwerem HTTP, który może wymagać od nas wprowadzenia danych (przez formularze), które niekoniecznie chcielibyśmy przesy lać przez sieć otwartym tekstem. Serwery HTTP cz esto chroni a takie dane udost epniaj ac po l aczenia szyfrowane HTTPS. Jeśli jednak dany serwer tego nie robi, możemy sami otworzyć swoje po l aczenie w szyfrowanym kanale. W tym celu należy zainstalować tunel ssh wed lug poniższego schematu: ssh -L 8080:localhost:80 remote.ssh.server Komunikacja ze zdalnym serwerem polega teraz na l aczeniu si e z portem 8080 na komputerze lokalnym. Konta użytkowników szyfrowane po l aczenia ssh 28

ssh: przyk lady tuneli (2) W powyższym przyk ladzie tworzone jest po l aczenie ze zdalnym serwerem ssh aby umożliwić otwieranie w jego ramach po l aczeń do innych serwisów na tej samej maszynie. Rozważmy teraz scenariusz, że serwer ssh znajduje si e w sieci, gdzie istniej a serwisy na innych komputerach, dost epne w sieci wewn etrznej, ale nie bezpośrednio, w Internecie. Może to wynikać z konfiguracji bramy do tej sieci, albo ze wzgl edów praktycznych. Typowo tak sa skonfigurowane serwisy, które wymagaj a autoryzacji otwartym tekstem, na przyk lad: POP3 (110), Microsoft Windows (139), albo serwisy prywatne, których nie chciano udost epnić w Internecie, tylko w sieci lokalnej, np.: CVS (port 2401), HTTP proxy (2138), i inne. Poniższe wywo lanie ssh otworzy po l aczenie, a w nim cztery tunele dla po l aczeń TCP do różnych serwisów, na różnych serwerach, widocznych i dost epnych ze zdalnego serwera ssh. Dodatkowy argument -N mówi, żeby program ssh w ogóle nie otwiera l po l aczenia terminalowego, i obs lugiwa l tylko tunele TCP. ssh -N -L 10110:pop3.server:110 -L 10139:windows.server:139 \ -L 12138:squid.server:2138 -L 12401:cvs.server:2401 remote.host Konta użytkowników szyfrowane po l aczenia ssh 29 ssh: przyk lady tuneli (3) Wcześniejsze przyk lady zak lada ly tworzenie portów dla nowych po l aczeń na maszynie lokalnej. Jest to schemat cz esto przydatny, gdy l aczymy si e ze zdalnym komputeram, np. za zapor a (firewall). Zdalny komputer pe lni wtedy rol e bramy do sieci wewn etrznej, i jeśli taka brama istnieje, możemy tworzyć wygodne kana ly dost epu do serwisów wewn etrznych. Rozważmy teraz inny scenariusz, kiedy ponownie chcemy uzyskać dost ep do sieci wewn etrznej za zapor a, lecz nie istnieje komputer dost epowy przyjmuj acy po l aczenia ssh z Internetu. Możemy jednak utworzyć tunele jeśli posiadamy komputer wewn atrz sieci lokalnej, z którego można wykonywać po l aczenia na zewn atrz. Wtedy po l aczenie ssh wykonane z zewn etrznym serwerem może zainstalować na tym serwerze port pozwalaj acy otwierać po l aczenie do naszej w lasnej maszyny, a za jej pośrednictwem do innych serwisów w sieci lokalnej. Poniższe wywo lanie utworzy tunele dla tych samych serwisów co w poprzednim przyk ladzie. W tym wypadku serwisy musz a być widoczne z naszego komputera, a porty o numerach > 10000 zostan a utworzone na zdalnej maszynie. ssh -N -R 10110:pop3.server:110 -R 10139:windows.server:139 \ -R 12138:squid.server:2138 -R 12401:cvs.server:2401 remote.host Konta użytkowników szyfrowane po l aczenia ssh 30 ssh: przyk lady tuneli (4) Rozważmy teraz sytuacj e, kiedy chcemy nawi azać po l aczenie ssh pomi edzy komputerami, pomi edzy którymi nie istnieje możliwość bezpośredniego po l aczenia. Możemy wtedy zbudować tunele przez kolejne po l aczenia (klient->brama1->brama2->serwer), które zapewni a otwieranie zagregowanego po l aczenia ssh: # polaczenie z "klient" przez "brama1" i "brama2" do "serwer" # na klient: ssh -L 12345:localhost:12345 brama1 # na brama1: ssh -L 12345:localhost:12345 brama2 # na brama2: ssh -L 12345:localhost:22 serwer Efekt jest taki, że wywo lanie: ssh -p 12345 localhost na komputerze "klient" otwiera po l aczenie ssh do komputera końcowego "serwer". W celu kopiowania plików pomi edzy tymi komputerami należy wywo lać polecenie scp -P 12345... (w tym przypadku niestandardowy port podajemy przez argument duże P). Konta użytkowników szyfrowane po l aczenia ssh 31 ssh: przyk lady tuneli (5) W poprzednim przyk ladzie zestaw tuneli ssh pozwoli l nawi azywać po l aczenia ssh pomi edzy docelowymi komputerami, gdzie bezpośrednie po l aczenie nie by lo możliwe. Rozważmy teraz troch e inny wariant tej sytuacji. Chcemy po l aczyć komputery klient1 i klient2, które znajduj a si e w sieciach lokalnych, niedost epnych z Internetu, za pomoc a komputera serwer dost epnego w Internecie. Musimy tworzyć tunele od strony izolowanych klientów: # polaczenie z "klient1" przez "serwer" do "klient2" # na klient1: ssh -L 12345:localhost:12345 serwer # na klient2: ssh -R 12345:localhost:22 serwer Powyższe tunele umożliwiaj a po l aczenia ssh i scp z klient1 na klient2, oczywiście tylko dopóty, dopóki oba po l aczenia istniej a. Aby umożliwić nawi azywanie po l aczeń mi edzy tymi klientami w odwrotnym kierunku, należy dodać odpowiedni komplet tuneli biegn acych w drug a stron e. Konta użytkowników szyfrowane po l aczenia ssh 32

ssh: przyk lady tuneli (6) Rozważmy ponownie dok ladnie ten sam scenariusz, co w porzednim przyk ladzie. Chcemy po l aczyć komputery klient1 i klient2, w niedost epnych sieciach lokalnych, za pomoc a komputera serwer dost epnego w Internecie. Jesteśmy na komputerze klient1, i jeszcze nie utworzyliśmy tunelu na tej maszynie. Wcześniej, na komputerze klient2 utworzyliśmy odpowiedni tunel: # na klient2: ssh -R 12345:localhost:22 serwer Na pozór, zamiast tworzyć tunel do portu 12345, i potem l aczyć si e z końcówk a tego tunelu na localhost, moglibyśmy bezpośrednio l aczyć si e z tym portem na serwer. Tak rzeczywiście jest, ale wymaga to dwóch dodatkowych operacji. Po pierwsze, domyślna konfiguracja serwera sshd nie pozwala udost epniać tworzonych przez tunele portów na zewn etrznych interfejsach sieciowych. Aby tak si e sta lo, należy ustawić flag e "GatewayPorts yes" w konfiguracji sshd. Po drugie, operacje tworzenia tuneli (-L, -R, i -D) domyślnie uaktywniaj a port (bind) tylko na interfejsie wewn etrznym (loopback), pomimo ustawionej powyższej flagi serwera. Aby uaktywnić port również na interfejsach zewn etrznych, należy dodatkowo użyć opcji -g w powyższym wywo laniu ssh. Konta użytkowników szyfrowane po l aczenia ssh 33 Tunele ssh uwagi W powyższych przyk ladach tworzone by ly tunele ssh z portem dost epowym na interfejsie sieciowym localhost. Powoduje to l aczenie si e protoko lem ssh z adresem i portem lokalnego komputera, w rzeczywistości nawi azuj ac po l aczenie z innym systemem. Niestety, zaburza to system zapami etywania w pami eci podr ecznej kluczy publicznych do zdalnych komputerów. Pierwsze takie po l aczenie powoduje przypisanie zdalnego klucza maszynie "localhost". Jeśli kolejne po l aczenie odbywa si e przez inny tunel do innego komputera, to klucze si e nie zgadzaj a, i ssh protestuje. Jednym sposobem, dość doraźnym i radykalnym, radzenia sobie z problemem polega na każdorazowym kasowaniu poprzednich kluczy, po czym ssh zapami etuje nowe. Innym sposobem, bardziej systematycznym ale uci ażliwym, jest utworzenie pliku pami eci podr ecznej zdalnych kluczy publicznych oddzielnie dla każdego po l aczenia, i podawania ścieżki do odpowiedniego pliku przy każdym po l aczeniu. Wywo lanie ssh nie ma argumentu dla bezpośredniego zadawania ścieżki tego pliku, jest tylko flaga konfiguracyjna (GlobalKnownHostsFile). Można ustawiać ja chwilowo w wywo laniu ssh za pomoc a opcji -o. Konta użytkowników szyfrowane po l aczenia ssh 34 Komunikacja z klientami X Window przez tunel ssh Cz esto przydatnym schematem, gdzie tunelowanie TCP jest przydatne jest l aczenie si e ze zdalnymi klientami X Window. Powody tworzenia takich konfiguracji sa podobne jak dla innych tuneli: ch eć zapewnienia bezpieczeństwa po l aczenia przez szyfrowanie, lub ch eć uzyskania dost epu dla określonych us lug w sieci, której po l aczenie nie przepuszcza takich us lug. Aby po po l aczeniu si e ze zdalnym komputerem uruchamiać na nim klienty X Window trzeba zapewnić możliwość l aczenia si e przez nie z portem X Window naszego lokalnego komputera (port 6000 dla serwera :0). Odpowiedni tunel ssh można stworzyć za pomoc a odpowiednio skonstruowanego argumentu -R. Program ssh posiada jednak specjalny argument -X, który znajduje nieużywany na zdalnej maszynie numer serwera X Window, tworzy tunel z portu tego serwera(serwer taki istnieje tylko wirtualnie, w postaci portu, obs lugiwanego przez ssh) do lokalnego serwera X Window, a w środowisku zdalnej sesji tworzy zmienn a środowiskow a DISPLAY określaj ac a wyświetlanie na takim wirtualnym serwerze X Window. Konta użytkowników szyfrowane po l aczenia ssh 35