plik


ÿþBezpBatne programy monitorujce Lekcja samoobrony Autor: Maciej KoziDski Uruchamiajc wBasny serwer w wydzier|awionym pomieszczeniu czy podBczajc notebooka w obcej sieci, mo|emy co prawda liczy na wspóBprac lokalnych guru od bezpieczeDstwa, ale z pewno[ci spokojniejsi bdziemy, mogc polega na wBasnych dziaBaniach... Do dyspozycji mamy kilka bezpBatnych narzdzi wspierajcych host security. Ich zalet jest prostota, niewielkie wymagania [rodowiska pracy, uniwersalno[ oraz Batwo[ zastosowania. Praktycznie w ka|dych warunkach mog by uzupeBnieniem bardziej wyrafinowanych narzdzi (nie musimy mie jakichkolwiek uprawnieD poza uprawnieniami roota na wBasnym komputerze). Klasyka host security tcp wrappers (autorstwa Wietse Venema) to jeden ze starszych i lepiej znanych pakietów z klasy host security. Jego rol jest monitorowanie i kontrola poBczeD w warstwie aplikacji. DziaBa jako typowy "wrapper", czyli po[redniczy w wywoBaniu odpowiedniego programu-serwera usBugowego, uruchamianego z poziomu superserwera inetd. Poni|sze linie (pochodz z pliku konfiguracyjnego /etc/inetd.conf) ilustruj sposób skonfigurowania do pracy serwera tcp wrappers o nazwie tcpd: telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd pop3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/popper -s Jak wida, inetd przekazuje poBczenie wywoBywanemu programowi, uruchamiany za[ z odpowiednimi parametrami tcpd wykonuje szereg operacji, zanim zadecyduje o uruchomieniu serwera usBugowego. Operacje te obejmuj zazwyczaj: sprawdzenie uprawnieD dostpu dla danego klienta przez porównanie z access list, zanotowanie w dzienniku systemowym odpowiedniego komunikatu, ewentualnie wykonanie operacji specjalnych zadeklarowanych przez u|ytkownika. S dwie skBadnie plików konfiguracyjnych tcp wrappers. Pierwsza, prostsza, obejmuje dwa pliki - /etc/hosts.allow i /etc/hosts.deny, w których mo|emy zdefiniowa listy dostpu w postaci dwóch lub trzech oddzielonych dwukropkami pól. Pierwsze pole dopasowuje serwer usBugowy, drugie - usiBujcego uzyska dostp klienta, trzecie, opcjonalne - zawiera komendy do wykonania w przypadku dopasowania zgBoszonego poBczenia do dwóch pierwszych pól. Dopasowanie dotyczy pierwszego trafienia, tzn. pierwszy z napotkanych pasujcych wpisów jest uznawany za obowizujcy. ReguBa ta jest bardzo istotna przy dopasowywaniu nakBadajcych si podzbiorów, co poka|emy na przykBadach. Poniewa| w skBadni prostej wpisów dokonujemy w dwu plikach z listami dostpu, istotna jest ich kolejno[. Najpierw badany jest /etc/hosts.allow, dopasowanie |danego poBczenia do listy dostpu z tego pliku pozwala nawiza poBczenie. Je[li odpowiedniej listy dostpu nie znaleziono w /etc/hosts.allow, badany jest /etc/hosts.deny. Znalezienie tam pasujcego wpisu powoduje odrzucenie poBczenia. Je[li poBczenie nie zostaBo opisane w |adnym z wymienionych plików - tcpd domy[lnie zezwala na poBczenie. Zasady konstruowania list dostpu wyja[nimy na przykBadach. ZaBó|my, |e nasza polityka zabezpieczeD zezwoli tylko na dostp z lokalnej sieci IP o adresach z zakresu 192.168.1.0/255.255.255.255 i tylko do wybranych usBug. Polityka taka jest okre[lona w dokumentacji tcp wrappera jako "mostly closed". Odpowiednie wpisy w /etc.hosts.allow mog wyglda tak: in.telnetd popper : 192.168.1. za[ /etc/hosts.deny mo|e wyglda tak: ALL : ALL Wpisy te zapewniaj dostp do demonów protokoBów telnet i POP3 z komputerów o adresach IP 192.168.1.x i zabraniaj pozostaBym dostpu do wszystkich usBug. SBowo ALL jest jednym z wyra|eD globalnych u|ywanych w listach dostpu tcp wrappers (patrz ramka na str. 92). Zdefiniujmy bardziej zBo|on list dostpu. ZaBó|my, |e chcemy umo|liwi dostp do usBugi telnet z klasy adresów "prywatnych" 192.168.0.0/ 255.255.0.0 z wyBczeniem klasy 192.168.255.0/255.255.255.0. Pliki przybior posta: " /etc/hosts.allow in.telnetd : 192.168. EXCEPT 192.168.255. popper : 192.168. sshd : KNOWN@KNOWN " /etc/hosts.deny in.telnetd : 192.168.255. : (echo "Próba nieuprawnionego dost" pu do us" ugi %d z %c" | /bin/mail -s Alert root) ALL : ALL Powy|sze zestawienie zawiera dwa istotne elementy. Pierwszy to zdefiniowanie wyra|eniem globalnym EXCEPT klasy wyBczonej z danej listy dostpu. Pula adresowa 192. 168.255.0 stanowi podzbiór wikszej caBo[ci o adresach 192.168.x.x. Gdyby zakaz dostpu interakcyjnego telnet do tego wBa[nie podzbioru zdefiniowa jako osobny rekord w /etc/hosts.deny, nie byBby on skuteczny - pierwsze dopasowanie adresu z puli 192.168. 255.x odbyBoby si na podstawie szerszego, dotyczcego caBej klasy 192.168.x.x wpisu w /etc/hosts.allow na taki dostp zezwalajcego (zgodnie z opisanym wy|ej algorytmem). Drugie istotne novum to linia w /etc/hosts.deny, notujca próby uzyskania poBczenia protokoBem telnet z inkryminowanej klasy. Sekwencja zawartych w trzecim polu w nawiasach komend zostanie wykonana w przypadku dopasowania adresu i protokoBu. Dopasowanie takie nastpi z klasy 192.168.255.x, poniewa| linia z /etc/ hosts.allow pomija t pul adresów IP. Makra %c i %d zawieraj informacj na temat klienta usiBujcego uzyska poBczenie (patrz te| tabela poni|ej). Linia z wpisem dla serwera Secure Shell (sshd) zawiera zezwolenie dostpu dla wszystkich klientów legitymujcych si identyfikatorem przedstawianym przy u|yciu protokoBu IDENT oraz zarejestrowanym wpisem w DNS. Drugi rodzaj skBadni oferowanej przez tcp wrappers jest bogatszy i wymaga wpisów tylko w pliku /etc/hosts.allow. Jest uzyskiwany przy kompi-lacji pakietu z definicj PROCESS_OPTIONS (flaga kompilatora - DPROCESS_OPTIONS). Podobnie jak w prostszej skBadni, pierwsze pole zawiera list opisujc serwery usBugowe, drugie dopasowuje klientów, za[ trzecie i kolejne (liczba pól nie jest staBa - obligatoryjne s trzy pola) zezwolenie na dostp lub jego brak, lub inn akcj. Zdefiniujmy listy dostpu z przykBadu drugiego w drugim typie skBadni: in.telnetd : 192.168.255. : DENY : spawn echo "Próba nieuprawnionego dost" pu do us" ugi %d z %c" | /bin/mail -s Alert root) : banners /etc/tcpd/banners in.telnetd : 192.168. : ALLOW : banners /etc/tcpd/banners popper : 192.168. : ALLOW sshd : KNOWN@KNOWN : ALLOW ALL : ALL : DENY : banners /etc/tcpd/banners Istotn ró|nic wida ju| w pierwszej linii - na pocztku sprawdzamy, czy adres komputera, który chce korzysta z telnetu nale|y do okre[lonej puli adresów (jest ona pod-zbiorem puli z drugiej linii - je[li adres bdzie nale|aB do puli 192.168.255.x, obowizuje pierwsza linia), podejmujemy akcj powiadamiajc (komendy wywoBane opcj spawn) oraz wy[wietlamy u|ytkownikom odpowiedni napis z informacj (znajduje si w pliku /etc/tcpd/banners/in.telnetd). Argumentem opcji banners jest podkatalog, za[ plik musi mie t sam nazw co daemon, dla którego zostaB wywoBany. W plikach bannerów mog by u|ywane makra z tabeli. PeBn list opcji u|ywanych w rozszerzonej skBadni przedstawia tabela poni|ej. Pakiet tcp wrappers jest rozpowszechniany z praktycznie ka|d liczc si dystrybucj Linuksa. Mo|na go równie| skompilowa dla wikszo[ci dostpnych na rynku systemów operacyjnych Unix. Pakiet zawiera wBasn bibliotek procedur, umo|liwiajc rozbudow napisanych we wBasnym zakresie serwerów usBugowych o listy dostpu w formacie tcp wrappers. Port audit - aktywna obrona Je[li nie mo|emy stosowa pasywnej obrony hosta opartej na filozofii "mostly closed", wówczas przyda si z pewno[ci Port Sentry, stanowicy cz[ wikszego projektu Abacus. Narzdzie sBu|y do monitorowania aktywno[ci na poszczególnych portach TCP oraz UDP i dynamicznego, aktywnego reagowania na zagro|enie. Symptomem takowego jest skanowanie portów w celu odkrycia usBug udostpnianych przez nasz host. Reakcja Port Sentry na tego typu zagro|enie obejmuje zalogowanie przy u|yciu mechanizmu syslog () takiego zdarzenia w dziennikach systemowych i przeciwdziaBanie przez zablokowanie dostpu jedn z trzech metod: " wpis do /etc/hosts.deny dla tcp wrappers (skuteczno[ wpisu mo|e zale|e od zdefiniowanych ju| list dostpu - zakBadamy jednak filozofi "mostly open" bez specjalnych zakazów, ale i bez specjalnych zezwoleD mogcych zniweczy efekt wpisu w /etc/hosts.deny); " wstawienie do tablicy routingu nieistniejcej trasy do intruza (metoda skuteczna przy atakach przez TCP, nie dziaBa przy niektórych "[lepych" atakach UDP); " uruchomienie odpowiedniego filtrowania pakietów przez ipfwadm czy ipchains. Pakiet oferuje te| mo|liwo[ uruchomienia dowolnego skryptu w reakcji na skanowanie portów. Port Sentry ma dwa zasadnicze tryby pracy. Podstawowy, w którym podBcza si do strze|onych portów funkcj systemow bind (). Tryb ukryty "stealth" jest dostpny wyBcznie dla systemu Linux i obejmuje [ledzenie "surowych" gniazdek (raw sockets). Port Sentry wykrywa zarówno skanowanie poprzez peBne poBczenie (funkcj systemow connect () ), jak i tryby skanowania skrytego (SYN/half open, FIN, NULL, XMAS, UDP). Demon obserwujcy aktywno[ na portach mo|e by uruchomiony tylko dla jednego z protokoBów transportowych TCP lub UDP. Je[li chcemy chroni przed skanowaniem usBugi korzystajce z obu protokoBów, musimy uruchomi dwie kopie Port Sentry. Pakiet mo|e zosta tak skonfigurowany, aby ignorowa aktywno[ dobrze znanych i czsto |dajcych rozmaitych poBczeD hostów. Mo|na oczywi[cie wybra zakres portów do obserwacji. Port Sentry jest dobrym, prostym uzupeBnieniem tcp wrappera. Warto te| skorzysta z innych pakietów projektu Abacus: Host Sentry i Logcheck. Pierwszy, napisany w Pythonie, znajduje si we wczesnej fazie rozwoju, pozwala na odkrycie nieprawidBowo[ci. Drugi automatyzuje przegldanie logów systemowych w poszukiwaniu symptomów ataku na host. * * * Zajrzyj - ftp.win.tue.nl/pub/security - pakiet tcp wrappers Opisane programy s idealnym narzdziem obrony stacji roboczych, notebooków, eksperymentalnych, tymczasowych i zapasowych serwerów, a tak|e maszyn stojcych w wydzier|awionych pomieszczeniach, na wystawach czy prezentacjach w "otwartych" sieciach. Wyra|enia globalne (wildcards) u|ywane w skBadni list dostpu tcp wrappers (man 5 hosts_access) Makrodefinicje u|ywane w listach dostpu tcp wrappers (man 5 hosts_access) Opcje rozszerzonej skBadni tcp wrappers (man 5 hosts_options)

Wyszukiwarka

Podobne podstrony:
Test bezpłatnych programów antywirusowych
Burj Khalifa Monitoring Program
Monitoring i kontrola aktywnych programow rynku pracy
Artykuły Program telewizyjny bezplatny pakiet oprogramowania
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6
Międzynarodowy Program Badań nad Zachowaniami Samobójczymi
CSharp Introduction to C# Programming for the Microsoft NET Platform (Prerelease)
Instrukcja Programowania Zelio Logic 2 wersja polska
Program wykładu Fizyka II 14 15
roprm ćwiczenie 6 PROGRAMOWANIE ROBOTA Z UWZGLĘDNIENIEM ANALIZY OBRAZU ARLANG

więcej podobnych podstron