Podstawy administracji systemu Linux Sieci komputerowe/ Instytut Fizyki Teoretycznej UWr 22 stycznia 2006
Plan kursu Zdalna praca w sieci 1 Instalacja Linuksa 2 Tryb tekstowy 3 Linux od podszewki 4 Pierwsze kroki w administracji 5 Sieci lokalne 6
Sieci komputerowe/ 1 Zdalna praca w sieci Logowanie Kopiowanie plików 2 DHCP 3
Zdalna praca w sieci Logowanie Kopiowanie plików http://www.flexibility.co.uk/ Logowanie na komputer w sieci (SSH) Kopiowanie plików między komputerami (SFTP/SCP) VNC
Logowanie na odległy komputer Logowanie Kopiowanie plików praca tylko w trybie tekstowym s s h użytkownik@adres_komputera s s h l użytkownik adres_komputera jeśli planujemy uruchamiać programy w trybie graficznym s s h X użytkownik@adres_komputera szybkie uruchamianie poleceń ssh użytkownik@adres_komputera " p o lecen ie "
Logowanie Kopiowanie plików pierwsze logowanie [ szwabin@voyager ~ ] $ ssh szwabin@panoramix. i f t. uni. wroc. pl The a u t h e n t i c i t y o f h o s t panoramix. i f t. u n i. wroc. p l ( 1 5 6. 1 7. 8 8. 9 1 ) can t be e s t a b l i s h e d. RSA key f i n g e r p r i n t i s f c : 5 6 : b1 : 9 7 : 0 a : 4 4 : f 2 : 2 3 : ee : 6 a : 9 8 : cc : 1 4 : e3 : b5 : 2 4. Are you sure you want to continue connecting ( yes /no )? szwabin@panoramix. i f t. u n i. wroc. pl s password : L a s t l o g i n : Sep 20 2 0 : 4 4 : 5 3 2005 from v o y a g e r. i f t. u n i. wroc. p l szwabin@panoramix :~> koniec pracy szwabin@panoramix :~> e x i t l o g o u t Connection to panoramix closed. [ szwabin@voyag er ~ ] $ szybkie uruchamianie poleceń raz jeszcze [ szwabin@voyag er ~ ] $ s s h panoramix "uname a " szwabin@panoramix s password : Linux panoramix 2. 4. 30 #1 F r i Apr 15 13: 12: 16 CEST 2005 i686 unknown unknown GNU/ Linux [ szwabin@voyag er ~ ] $
Logowanie Kopiowanie plików Konfiguracja serwera SSH (/etc/sshd_conf) pozwalamy na wysyłanie okien aplikacji pracujących w GUI X11Forwarding y e s uruchamiamy ponownie serwer [ r o o t @ v o y a g e r ~]# s e r v i c e sshd r e s t a r t [ r o o t @ v o y a g e r ~]# / e t c / r c. d/ i n i t. d/ sshd r e s t a r t
Kopiowanie plików (SFTP) Logowanie Kopiowanie plików łączenie z odległym komputerem [ szwabin@voyager ~ ] $ s f t p szwabin@panoramix Connecting to panoramix... szwabin@panoramix s password : s f t p > pomoc s f t p > h e l p A v a i l a b l e commands : cd path Change remote d i r e c t o r y to path l c d path Change l o c a l d i r e c t o r y to path chgrp grp path Change group of f i l e path to grp chmod mode path Change p e r m i s s i o n s o f f i l e path to mode chown own path Change owner o f f i l e path to own help Display t h i s help text get remote path [ lo cal path ] Download f i l e l l s [ l s o p t i o n s [ path ] ] D i s p l a y l o c a l d i r e c t o r y l i s t i n g l n o l d p a t h newpath Symlink remote f i l e l m k d i r path C r e a t e l o c a l d i r e c t o r y lpwd P r i n t l o c a l working d i r e c t o r y l s [ path ] D i s p l a y remote d i r e c t o r y l i s t i n g...
Logowanie Kopiowanie plików nawigacja w zdalnym systemie plików pwd, cd, ls nawigacja w lokalnym systemie plików lpwd, lcd, lls kopiowanie plików na komputer lokalny... s f t p > g e t t a l k. t a r F e t c h i n g /home/ s / szwabin / t a l k. t a r to t a l k. t a r /home/ s / szwabin / t a l k. tar 100% 150KB 150.0KB/ s 00:00... i w odwrotnym kierunku sftp > put beamer. pdf Uploading beamer. pdf to /home/ s / szwabin / beamer. pdf beamer. pdf 100% 1621KB 1. 6MB/ s 00:00 s f t p >
Kopiowanie plików (SCP) Logowanie Kopiowanie plików z odległego komputera scp użytkownik@komputer : / ścieżka_ do_ pliku / p l i k / lokalna_ ścieżka _ do_ pliku / [ szwabin@voyag er ~ ] $ scp szwabin@panoramix : beamer. pdf. szwabin@panoramix s password : beamer. pdf 100% 1621KB 1. 6MB/ s 00:00 [ szwabin@voyag er ~ ] $ jeśli konta użytkowników są te same [ szwabin@voyag er ~ ] $ scp panoramix : beamer. pdf. katalogi [ szwabin@voyager ~ ] $ scp r Kursy / d ef ia n t : UniWroclaw /
Zdalna praca w sieci DHCP DHCP WWW FTP Samba... i wiele innych http://cocktails.about.com/
DHCP Zdalna praca w sieci DHCP Kategoria Serwery sieciowe http://www.iodata.jp/ automatyczna konfiguracja komputerów podłączanych do sieci oszczędza dużo czasu administratorowi wygodne dla nowych użytkowników
Konfiguracja serwera Zdalna praca w sieci DHCP edytujemy (lub tworzymy) plik /etc/dhcpd.conf d e f a u l t l e a s e time 3600; max l e a s e time 14400; ddns update s t y l e none ; s u b n e t 1 9 2. 1 6 8. 0. 0 netmask 2 5 5. 2 5 5. 2 5 5. 0 { range 1 9 2. 1 6 8. 0. 2 1 9 2. 1 6 8. 0. 1 0 ; o p t i o n domain name s e r v e r s 1 9 4. 2 0 4. 1 5 2. 3 4, 2 1 7. 9 8. 6 3. 1 6 4 ; o p t i o n b r o a d c a s t a d d r e s s 1 9 2. 1 6 8. 0. 2 5 5 ; o p t i o n r o u t e r s 1 9 2. 1 6 8. 0. 1 ; } ponowne uruchomienie serwera [ r o o t @ v o y a g e r ~]# s e r v i c e dhcpd r e s t a r t [ r o o t @ v o y a g e r ~]# / e t c / r c. d/ i n i t. d/ dhcpd r e s t a r t
Konfiguracja klienta Zdalna praca w sieci DHCP podczas instalacji systemu
DHCP podczas konfiguracji karty sieciowej
Zdalna praca w sieci fizyczne lokalne sieciowe Do poczytania Kevin Fenzi, Dave Wreski, Linux Security HOWTO www.happyhacker.org http://www.bbc.co.uk/schools/
fizyczne kontrola dostępu do komputera hasła w BIOSie hasła w programie rozruchowym Uwaga! Osoba mająca fizyczny dostęp do komputera może obejść oba hasła, jednak zajmie to trochę czasu.
lokalne usuwanie nieaktywnych kont ograniczony dostęp do zasobów dla zwykłych użytkowników (SUID/GUID, restrykcyjne prawa dostępu, ograniczenia na liczbę uruchamianych procesów itp.) sprawdzanie integralności systemu (Tripwire) szyfrowanie haseł (shadow) testowanie jakości haseł użytkowników (Crack, John The Ripper ) kopie zapasowe
sieciowe uruchamianie tylko niezbędnych usług SSH zamiast Telnetu SCP/SFTP zamiast FTP systemy detekcji włamań (Snort) łaty bezpieczeństwa
Zdalna praca w sieci przydatne polecenia netstat nmap ważne pliki /etc/services /etc/inetd.conf lub /etc/xinetd.conf
netstat Zdalna praca w sieci [ szwabin@voyag er ~ ] $ n e t s t a t a A c t i v e I n t e r n e t c o n n e c t i o n s ( s e r v e r s and e s t a b l i s h e d ) Proto Recv Q Send Q L o c a l Address F o r e i g n Address S t a t e tcp 0 0 l o c a l h o s t : 9 6 6 : LISTEN tcp 0 0 :1550 : LISTEN tcp 0 0 :19150 : LISTEN tcp 0 0 : s u n r p c : LISTEN tcp 0 0 :www : LISTEN tcp 0 0 : s s h : LISTEN tcp 0 0 : i p p : LISTEN tcp 0 0 l o c a l h o s t : smtp : LISTEN tcp 0 0 v o y a g e r. i f t. u n i.w:32784 j a b b e r p l. org :5223 ESTABLISHED tcp 1 0 v o y a g e r. i f t. u n i.w:32866 b i o f i z y k a. agro. a r. s :www CLOSE_WAIT tcp 0 0 voyager. i f t. uni.w:32865 dns1. ibh. pl :www CLOSE_WAIT udp 0 0 :32768 : udp 0 0 : xdmcp : udp 0 0 : s u n r p c : udp 0 0 : i p p : A c t i v e UNIX domain s o c k e t s ( s e r v e r s and e s t a b l i s h e d )...
nmap Zdalna praca w sieci e n t e r p r i s e : / home/ szwabin# nmap v o y a g e r S t a r t i n g nmap 3. 8 1 ( h t t p : / /www. i n s e c u r e. org /nmap/ ) at 2005 09 21 16:58 CEST I n t e r e s t i n g p o r t s on v o y a g e r. i f t. u n i. wroc. p l ( 1 5 6. 1 7. 8 8. 1 9 0 ) : ( The 1662 p o r t s scanned but not shown below a r e i n s t a t e : f i l t e r e d ) PORT STATE SERVICE 22/ tcp open s s h Nmap f i n i s h e d : 1 IP address (1 host up ) scanned in 22.330 seconds Uwaga! Skanujemy tylko te komputery, które rzeczywiście musimy. Użycie nmap może być odebrane jako wstęp do ataku.
/etc/services/ Zdalna praca w sieci tcpmux 1/ tcp # TCP p o r t s e r v i c e m u l t i p l e x e r echo 7/ tcp echo 7/ udp d i s c a r d 9/ tcp s i n k n u l l d i s c a r d 9/ udp s i n k n u l l s y s t a t 11/ tcp u s e r s daytime 13/ tcp daytime 13/ udp n e t s t a t 15/ tcp qotd 17/ tcp quote msp 18/ tcp # message send p r o t o c o l msp 18/ udp chargen 19/ tcp t t y t s t s o u r c e chargen 19/ udp t t y t s t s o u r c e f t p data 20/ tcp f t p 21/ tcp f s p 21/ udp f s p d s s h 22/ tcp # SSH Remote Login P r o t o c o l s s h 22/ udp t e l n e t 23/ tcp smtp 25/ tcp m a i l time 37/ tcp t i m s e r v e r time 37/ udp t i m s e r v e r r l p 39/ udp r e s o u r c e # r e s o u r c e l o c a t i o n nameserver 42/ tcp name # IEN 116 whois 43/ tcp nicname...
Zdalna praca w sieci sprzęt komputerowy ze specjalnym oprogramowaniem lub samo oprogramowanie blokujące niepowołany dostęp do komputera, sieci komputerowej itp. http://scramlings.de/johannes/lip/vortrag/ Do poczytania http://mr0vka.eu.org/docs/tlumaczenia.html Paweł Krawczyk, Filtrowanie stateful-inspection w Linuksie i BSD
Budujemy własną zaporę (wersja dla początkujących) ściągamy z Internetu program Firestarter (w przypadku Auroksa 10.2 pobieramy wersję dla Fedory Core 2) http://www.fs-security.com/ instalujemy pakiet (jako administrator) [ r o o t @ v o y a g e r downloads ]# rpm Uvh f i r e s t a r t e r 1.0.3 1. i 3 8 6. rpm Przygotowywanie... ######################### [100%] 1 : f i r e s t a r t e r ######################### [100%] uruchamiamy program z menu KDE lub w powłoce administratora [ r o o t @ v o y a g e r downloads ]# f i r e s t a r t e r &
Budujemy własną zaporę (wersja dla zaawansowanych) Netfilter/iptables wbudowane w jądro Linuksa (2.4.x i 2.6.x) funkcje do filtrowania pakietów i NAT-u oraz program do zarządzania nimi reguła - zasada postępowania z pakietami łańcuch - zbiór reguł ułożonych w określonej kolejności tablica - zbiór łańcuchów Łańcuchy INPUT, OUTPUT, FORWARD PREROUTING, POSTROUTING użytkownika Tablice filter nat mangle
PREROUTING mangle nat Decyzja rutingu FORWARD filter POSTROUTING nat filter INPUT Procesy lokalne OUTPUT mangle nat filter
otwieramy w edytorze nowy plik tekstowy, np. myfirewall #!/ b i n / sh # przykładowa k o n f i g u r a c j a i p t a b l e s d l a bramki ( i n t e r f e j s y ppp0 i eth0 ) # na p o d s t a w i e " F i l t r o w a n i e s t a t e f u l i n s p e c t i o n w L i n u k s i e i BSD" # Pawła Krawczyka # Opcje wywołania : # s t o p " z a t r z y m u j e " f i r e w a l l, u s t a w i a o t w a r t ą p o l i t y k ę # t es t tymczasowe reguły # bez o p c j i k o n f i g u r u j e i p t a b l e s wyłączamy zaporę i f [ " $1 " = " s t o p " ] ; then / s b i n / i p t a b l e s P INPUT ACCEPT / s b i n / i p t a b l e s P OUTPUT ACCEPT / s b i n / i p t a b l e s P FORWARD ACCEPT / s b i n / i p t a b l e s F e x i t 0 f i
testujemy zaporę (włączenie na 60s) i f [ " $1 " = " t e s t " ] ; then ( s l e e p 6 0 ; / s b i n / i p t a b l e s P INPUT ACCEPT ; \ / s b i n / i p t a b l e s P OUTPUT ACCEPT ; \ / s b i n / i p t a b l e s P FORWARD ACCEPT ; \ / s b i n / i p t a b l e s F) & f i ukłon w stronę użytkownika echo n " I n s t a l o w a n i e z a p o r y o g n i o w e j... " ładujemy niezbędne moduły jądra / sbin / modprobe ip_ tables / sbin / modprobe ip_ conntrack
czyścimy stare ustawienia / s b i n / i p t a b l e s F / s b i n / i p t a b l e s F t nat domyślna polityka (wszystko odrzucane) / s b i n / i p t a b l e s P INPUT DROP / s b i n / i p t a b l e s P FORWARD DROP / s b i n / i p t a b l e s P OUTPUT DROP interfejs lokalny jest uprzywilejowany / s b i n / i p t a b l e s A INPUT i l o j ACCEPT / s b i n / i p t a b l e s A OUTPUT o l o j ACCEPT / s b i n / i p t a b l e s A FORWARD o l o j ACCEPT
sieć lokalna również ma specjalne prawa / s b i n / i p t a b l e s A INPUT i eth0 j ACCEPT / s b i n / i p t a b l e s A OUTPUT o eth0 j ACCEPT akceptujemy pakiety ICMP Echo (ping) / sbin / i p t a b l e s A INPUT p icmp icmp type echo request j ACCEPT / sbin / i p t a b l e s A FORWARD p icmp icmp type echo request j ACCEPT / sbin / i p t a b l e s A OUTPUT p icmp icmp type echo request j ACCEPT
wpuszczamy połączenia SSH z całej sieci / s b i n / i p t a b l e s A INPUT p tcp d 0/0 d p o r t 22 j ACCEPT zezwalamy na wszystko w ramach istniejących połączeń / s b i n / i p t a b l e s A INPUT p tcp j ACCEPT m s t a t e s t a t e ESTABLISHED / s b i n / i p t a b l e s A INPUT p udp j ACCEPT m s t a t e s t a t e ESTABLISHED / s b i n / i p t a b l e s A INPUT p icmp j ACCEPT m s t a t e s t a t e ESTABLISHED / s b i n / i p t a b l e s A INPUT p icmp j ACCEPT m s t a t e s t a t e RELATED / s b i n / i p t a b l e s A FORWARD p tcp j ACCEPT m s t a t e s t a t e ESTABLISHED / s b i n / i p t a b l e s A FORWARD p tcp j ACCEPT m s t a t e s t a t e RELATED / s b i n / i p t a b l e s A FORWARD p udp j ACCEPT m s t a t e s t a t e ESTABLISHED / s b i n / i p t a b l e s A FORWARD p icmp j ACCEPT m s t a t e s t a t e ESTABLISHED / s b i n / i p t a b l e s A FORWARD p icmp j ACCEPT m s t a t e s t a t e RELATED / s b i n / i p t a b l e s A OUTPUT p tcp j ACCEPT m s t a t e s t a t e ESTABLISHED / s b i n / i p t a b l e s A OUTPUT p tcp j ACCEPT m s t a t e s t a t e RELATED / s b i n / i p t a b l e s A OUTPUT p udp j ACCEPT m s t a t e s t a t e ESTABLISHED / s b i n / i p t a b l e s A OUTPUT p icmp j ACCEPT m s t a t e s t a t e ESTABLISHED / s b i n / i p t a b l e s A OUTPUT p icmp j ACCEPT m s t a t e s t a t e RELATED
usługi TCP i UDP, które wypuszczamy z sieci: WWW (80,8080), SSH (22), SMTP (25), POP3/POP3s (110, 995), News (119), DNS (53), Gadu-Gadu (443), Jabber (5223,8010), Skype (28025) TCP_OUT_ALLOW=80,8080,22,25,110,995,119,53,443,5223,8010,9100,28025 UDP_OUT_ALLOW=53 / s b i n / i p t a b l e s A OUTPUT o ppp0 p tcp j ACCEPT m s t a t e s t a t e NEW \ m multiport des tin a tio n port $TCP_OUT_ALLOW / s b i n / i p t a b l e s A OUTPUT o ppp0 p udp j ACCEPT m s t a t e s t a t e NEW \ m multiport des tin a tio n port $UDP_OUT_ALLOW / s b i n / i p t a b l e s A FORWARD o ppp0 p tcp j ACCEPT m s t a t e s t a t e NEW \ m multiport des tin a tio n port $TCP_OUT_ALLOW / s b i n / i p t a b l e s A FORWARD o ppp0 p udp j ACCEPT m s t a t e s t a t e NEW \ m multiport des tin a tio n port $UDP_OUT_ALLOW
maskarada / s b i n / i p t a b l e s t nat A POSTROUTING p a l l s 1 9 2. 1 6 8. 0. 0 / 2 4 j MASQUERADE echo "1" > / proc / s y s / net / i p v 4 / i p _ f o r w a r d logowanie odrzuconych pakietów / s b i n / i p t a b l e s A INPUT j LOG m l i m i t l i m i t 10/ hour / s b i n / i p t a b l e s A OUTPUT j LOG m l i m i t l i m i t 10/ hour / s b i n / i p t a b l e s A FORWARD j LOG m l i m i t l i m i t 10/ hour kolejny ukłon w stronę użytkownika echo " z r o b i o n e! " Kopiujemy plik myfirewall do katalogu /etc/rc.d/init.d/. Nadajemy mu atrybut wykonywalności (tylko dla właściciela). Dodajemy go do poziomów pracy poleceniem chkconfig.