bezplatne programy monitorujace E455I3NC5HH22OIK2N4AFYIP2TFOKOMPULJFUKI

background image

Bezpłatne programy monitorujące

Lekcja samoobrony

Autor:

Maciej Koziński

Uruchamiając własny serwer w wydzierżawionym pomieszczeniu czy podłączając

notebooka w obcej sieci, możemy co prawda liczyć na współpracę lokalnych guru od
bezpieczeństwa, ale z pewnością spokojniejsi będziemy, mogąc polegać na własnych

działaniach... Do dyspozycji mamy kilka bezpłatnych narzędzi wspierających host
security.

Ich zaletą jest prostota, niewielkie wymagania środowiska pracy, uniwersalność oraz łatwość zastosowania.

Praktycznie w każdych warunkach mogą być uzupełnieniem bardziej wyrafinowanych narzędzi (nie musimy mieć
jakichkolwiek uprawnień poza uprawnieniami roota na własnym 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 połączeń w warstwie aplikacji. Działa jako typowy "wrapper", czyli
pośredniczy w wywołaniu odpowiedniego programu-serwera usługowego, 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 połączenie wywoływanemu programowi, uruchamiany zaś z odpowiednimi

parametrami tcpd wykonuje szereg operacji, zanim zadecyduje o uruchomieniu serwera usługowego. Operacje te
obejmują zazwyczaj: sprawdzenie uprawnień dostępu 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 składnie plików konfiguracyjnych tcp wrappers. Pierwsza, prostsza, obejmuje dwa pliki - /etc/hosts.allow i

/etc/hosts.deny, w których możemy zdefiniować listy dostępu w postaci dwóch lub trzech oddzielonych
dwukropkami pól. Pierwsze pole dopasowuje serwer usługowy, drugie - usiłującego uzyskać dostęp klienta,

trzecie, opcjonalne - zawiera komendy do wykonania w przypadku dopasowania zgłoszonego połączenia do
dwóch pierwszych pól. Dopasowanie dotyczy pierwszego trafienia, tzn. pierwszy z napotkanych pasujących

wpisów jest uznawany za obowiązujący. Reguła ta jest bardzo istotna przy dopasowywaniu nakładających się
podzbiorów, co pokażemy na przykładach.

Ponieważ w składni prostej wpisów dokonujemy w dwu plikach z listami dostępu, istotna jest ich kolejność.

Najpierw badany jest /etc/hosts.allow, dopasowanie żądanego połączenia do listy dostępu z tego pliku pozwala
nawiązać połączenie. Jeśli odpowiedniej listy dostępu nie znaleziono w /etc/hosts.allow, badany jest

/etc/hosts.deny. Znalezienie tam pasującego wpisu powoduje odrzucenie połączenia. Jeśli połączenie nie zostało

opisane w żadnym z wymienionych plików - tcpd domyślnie zezwala na połączenie.

Zasady konstruowania list dostępu wyjaśnimy na przykładach. Załóżmy, że nasza polityka zabezpieczeń zezwoli

tylko na dostęp z lokalnej sieci IP o adresach z zakresu 192.168.1.0/255.255.255.255 i tylko do wybranych usług.
Polityka taka jest określona w dokumentacji tcp wrappera jako "mostly closed". Odpowiednie wpisy w

/etc.hosts.allow mogą wyglądać tak:

in.telnetd popper : 192.168.1.

zaś /etc/hosts.deny może wyglądać tak:

ALL : ALL

Wpisy te zapewniają dostęp do demonów protokołów telnet i POP3 z komputerów o adresach IP 192.168.1.x i
zabraniają pozostałym dostępu do wszystkich usług. Słowo ALL jest jednym z wyrażeń globalnych używanych w

listach dostępu tcp wrappers (patrz ramka na str. 92).

Zdefiniujmy bardziej złożoną listę dostępu. Załóżmy, że chcemy umożliwić dostęp do usługi telnet z klasy adresów

"prywatnych" 192.168.0.0/ 255.255.0.0 z wyłączeniem klasy 192.168.255.0/255.255.255.0. Pliki przybiorą postać:

/etc/hosts.allow

background image

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 wyłączonej z danej listy dostępu. Pula adresowa 192. 168.255.0 stanowi podzbiór większej całości o
adresach 192.168.x.x. Gdyby zakaz dostępu interakcyjnego telnet do tego właśnie podzbioru zdefiniować jako

osobny rekord w /etc/hosts.deny, nie byłby on skuteczny - pierwsze dopasowanie adresu z puli 192.168. 255.x
odbyłoby się na podstawie szerszego, dotyczącego całej klasy 192.168.x.x wpisu w /etc/hosts.allow na taki dostęp

zezwalającego (zgodnie z opisanym wyżej algorytmem).

Drugie istotne novum to linia w /etc/hosts.deny, notująca próby uzyskania połączenia protokołem telnet z
inkryminowanej klasy. Sekwencja zawartych w trzecim polu w nawiasach komend zostanie wykonana w

przypadku dopasowania adresu i protokołu. Dopasowanie takie nastąpi 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 usiłującego

uzyskać połączenie (patrz też tabela poniżej).

Linia z wpisem dla serwera Secure Shell (sshd) zawiera zezwolenie dostępu dla wszystkich klientów
legitymujących się identyfikatorem przedstawianym przy użyciu protokołu IDENT oraz zarejestrowanym wpisem w

DNS.

Drugi rodzaj składni 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 składni, pierwsze pole zawiera listę opisującą serwery usługowe,
drugie dopasowuje klientów, zaś trzecie i kolejne (liczba pól nie jest stała - obligatoryjne są trzy pola) zezwolenie

na dostęp lub jego brak, lub inną akcję. Zdefiniujmy listy dostępu z przykładu drugiego w drugim typie składni:

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 początku 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 będzie należał do

puli 192.168.255.x, obowiązuje pierwsza linia), podejmujemy akcję powiadamiającą (komendy wywołane 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 został wywołany. W plikach bannerów mogą być używane makra z tabeli. Pełną listę opcji

używanych w rozszerzonej składni przedstawia tabela poniżej.

Pakiet tcp wrappers jest rozpowszechniany z praktycznie każdą liczącą się dystrybucją Linuksa. Można go również
skompilować dla większości dostępnych na rynku systemów operacyjnych Unix. Pakiet zawiera własną bibliotekę

procedur, umożliwiającą rozbudowę napisanych we własnym zakresie serwerów usługowych o listy dostępu 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, stanowiący część większego projektu Abacus. Narzędzie służ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 usług udostępnianych przez nasz host.

Reakcja Port Sentry na tego typu zagrożenie obejmuje zalogowanie przy użyciu mechanizmu syslog () takiego

zdarzenia w dziennikach systemowych i przeciwdziałanie przez zablokowanie dostępu jedną z trzech metod:

background image

wpis do /etc/hosts.deny dla tcp wrappers (skuteczność wpisu może zależeć od zdefiniowanych już list
dostępu - zakładamy jednak filozofię "mostly open" bez specjalnych zakazów, ale i bez specjalnych

zezwoleń mogących zniweczyć efekt wpisu w /etc/hosts.deny);

wstawienie do tablicy routingu nieistniejącej trasy do intruza (metoda skuteczna przy atakach przez TCP,

nie działa 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 podłącza się do strzeżonych portów funkcją

systemową bind (). Tryb ukryty "stealth" jest dostępny wyłącznie dla systemu Linux i obejmuje śledzenie
"surowych" gniazdek (raw sockets). Port Sentry wykrywa zarówno skanowanie poprzez pełne połączenie (funkcją

systemową connect () ), jak i tryby skanowania skrytego (SYN/half open, FIN, NULL, XMAS, UDP).

Demon obserwujący aktywność na portach może być uruchomiony tylko dla jednego z protokołów transportowych
TCP lub UDP. Jeśli chcemy chronić przed skanowaniem usługi korzystające z obu protokołów, musimy uruchomić

dwie kopie Port Sentry.

Pakiet może zostać tak skonfigurowany, aby ignorować aktywność dobrze znanych i często żądających rozmaitych

połączeń hostów. Można oczywiście wybrać zakres portów do obserwacji.

Port Sentry jest dobrym, prostym uzupełnieniem 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 nieprawidłowości. Drugi automatyzuje przeglądanie logów systemowych w poszukiwaniu symptomów
ataku na host.

* * *

Zajrzyj

-

ftp.win.tue.nl/pub/security

- pakiet tcp wrappers

Opisane programy są idealnym narzędziem obrony stacji roboczych, notebooków, eksperymentalnych,
tymczasowych i zapasowych serwerów, a także maszyn stojących w wydzierżawionych pomieszczeniach, na

wystawach czy prezentacjach w "otwartych" sieciach.

Wyrażenia globalne

(wildcards) używane w składni list dostępu tcp wrappers (man 5 hosts_access)

Makrodefinicje

używane w listach dostępu tcp wrappers (man 5 hosts_access)

Opcje

rozszerzonej składni tcp wrappers (man 5 hosts_options)


Wyszukiwarka

Podobne podstrony:
bezplatne programy monitorujace
Test bezpłatnych programów antywirusowych 2012, Bezpieczeństwo
Bezplatne programy od Microso Nieznany (2)
Test bezpłatnych programów antywirusowych 2012, Bezpieczeństwo
bezplatne programy 2
bezplatne programy
bezpłatne programy od microsoft
Bezpłatne programy do projektowania wnętrz i ogrodów
Burj Khalifa Monitoring Program (wg SAMSUNGa)
Przedmioty obieralne 2 st 2 sem gik - treści programowe, SEM II Teledetekcyjny monitoring środowiska
Przedmioty obieralne 2 st 2 sem gik - treści programowe, SEM II Teledetekcyjny monitoring środowiska
Programy do monitorowania ruchu w sieci (1)
monitoring wyborczy programow informacyjnych tvp
monitorowanie, podstawa programowa Wskaźniki
Monitorowanie programow zdrowotnych, POZ
Modula-monitor, WAT, semestr IV, Programowanie współbieżne
Monitoring i kontrola aktywnych programow rynku pracy

więcej podobnych podstron