Wyszukiwanie w witrynie

Jak kontrolować wydajność sieci, bezpieczeństwo i rozwiązywanie problemów w systemie Linux — część 12


Rzetelna analiza sieci komputerowej rozpoczyna się od zrozumienia, jakie są dostępne narzędzia do wykonania zadania, jak wybrać właściwe na każdym etapie i, co nie mniej ważne, od czego zacząć.

To ostatnia część serii LFCE (Certyfikowany inżynier Linux Foundation), w której omówimy kilka dobrze znanych narzędzi do badania wydajności i zwiększania bezpieczeństwa sieci i co zrobić, gdy sprawy nie układają się zgodnie z oczekiwaniami.

Przedstawiamy program certyfikacji Linux Foundation

Pamiętaj, że ta lista nie pretenduje do kompletności, więc jeśli chcesz dodać kolejne przydatne narzędzie, którego mogło nam brakować, możesz skomentować ten post za pomocą formularza na dole.

Jakie usługi są uruchomione i dlaczego?

Jedną z pierwszych rzeczy, które administrator systemu musi wiedzieć o każdym systemie, jest to, jakie usługi są uruchomione i dlaczego. Mając te informacje, mądrą decyzją jest wyłączenie wszystkich, które nie są absolutnie konieczne i unikanie hostowania zbyt wielu serwerów na tej samej maszynie fizycznej.

Na przykład musisz wyłączyć serwer FTP, jeśli Twoja sieć go nie wymaga (nawiasem mówiąc, istnieją bezpieczniejsze metody udostępniania plików w sieci). Ponadto należy unikać posiadania serwera WWW i serwera bazy danych w tym samym systemie. Jeśli jeden komponent zostanie naruszony, pozostałe również mogą zostać naruszone.

Badanie połączeń gniazd za pomocą ss

Narzędzie ss służy do zrzucania statystyk gniazd i wyświetla informacje podobne do netstat, chociaż może wyświetlać więcej informacji o protokole TCP i stanie niż inne narzędzia. Ponadto jest wymieniony w man netstat jako zamiennik netstat, który jest przestarzały.

W tym artykule skupimy się jednak wyłącznie na informacjach związanych z bezpieczeństwem sieci.

Przykład 1: Wyświetlanie WSZYSTKICH portów (gniazd) TCP, które są otwarte na naszym serwerze

Wszystkie usługi działające na domyślnych portach (tj. http na 80, mysql na 3306) są oznaczone odpowiednimi nazwami. Inne (tutaj ukryte ze względu na prywatność) są pokazane w formie numerycznej.

ss -t -a

Pierwsza kolumna pokazuje stan TCP, natomiast druga i trzecia kolumna wyświetlają ilość danych aktualnie oczekujących w kolejce do odbioru i transmisji. Czwarta i piąta kolumna pokazują gniazda źródłowe i docelowe każdego połączenia.
Na marginesie, możesz sprawdzić RFC 793, aby odświeżyć pamięć o możliwych stanach TCP, ponieważ musisz także sprawdzić liczbę i stan otwartych połączeń TCP, aby dowiedzieć się o atakach (D)DoS.

Przykład 2: Wyświetlanie WSZYSTKICH aktywnych połączeń TCP z ich licznikami czasu
ss -t -o

Na powyższym wyjściu widać, że istnieją 2 ustanowione połączenia SSH. Jeśli zauważysz wartość drugiego pola timer:, w pierwszym połączeniu zauważysz wartość 36 minut. Jest to ilość czasu do wysłania kolejnej sondy podtrzymującej.

Ponieważ jest to połączenie utrzymywane przy życiu, możesz bezpiecznie założyć, że jest to połączenie nieaktywne i w ten sposób możesz zakończyć proces po ustaleniu jego PID.

Jeśli chodzi o drugie połączenie, możesz zobaczyć, że jest ono aktualnie używane (co wskazuje on).

Przykład 3: Filtrowanie połączeń według gniazd

Załóżmy, że chcesz filtrować połączenia TCP według gniazda. Z punktu widzenia serwera należy sprawdzić połączenia, których port źródłowy to 80.

ss -tn sport = :80

W rezultacie..

Ochrona przed skanowaniem portów za pomocą NMAP

Skanowanie portów to powszechna technika używana przez crackerów do identyfikowania aktywnych hostów i otwartych portów w sieci. Po wykryciu luki jest ona wykorzystywana w celu uzyskania dostępu do systemu.

Mądry administrator systemu musi sprawdzić, jak jego systemy są postrzegane przez osoby z zewnątrz i upewnić się, że nic nie jest pozostawione przypadkowi, często je audytując. Nazywa się to „defensywnym skanowaniem portów”.

Przykład 4: Wyświetlanie informacji o otwartych portach

Możesz użyć następującego polecenia, aby przeskanować, które porty są otwarte w twoim systemie lub na zdalnym hoście:

nmap -A -sS [IP address or hostname]

Powyższe polecenie przeskanuje hosta w celu wykrycia OS i wersji, informacji o porcie i śledzenia trasy (-A). Na koniec -sS wysyła skan TCP SYN, uniemożliwiając nmapowi dokończenie 3-kierunkowego uzgadniania TCP i w ten sposób zazwyczaj nie pozostawiając żadnych logów na maszynie docelowej.

Zanim przejdziesz do następnego przykładu, pamiętaj, że skanowanie portów nie jest działaniem nielegalnym. Nielegalne jest wykorzystywanie wyników do szkodliwych celów.

Na przykład wynik powyższego polecenia uruchomionego na głównym serwerze lokalnego uniwersytetu zwraca następujący komunikat (ze względu na zwięzłość pokazana jest tylko część wyniku):

Jak widać, odkryliśmy kilka anomalii, które warto zgłosić administratorom systemu na lokalnym uniwersytecie.

Ta specyficzna operacja skanowania portów zapewnia wszystkie informacje, które można uzyskać również za pomocą innych poleceń, takich jak:

Przykład 5: Wyświetlanie informacji o konkretnym porcie w systemie lokalnym lub zdalnym
nmap -p [port] [hostname or address]
Przykład 6: Wyświetlanie trasy trasowania i sprawdzanie wersji usług, typu systemu operacyjnego i nazwy hosta
nmap -A [hostname or address]
Przykład 7: Skanowanie kilku portów lub hostów jednocześnie

Możesz także przeskanować kilka portów (zakresu) lub podsieci w następujący sposób:

nmap -p 21,22,80 192.168.0.0/24 

Uwaga: powyższe polecenie skanuje porty 21, 22 i 80 na wszystkich hostach w tym segmencie sieci.

Więcej szczegółów na temat wykonywania innych typów skanowania portów można znaleźć na stronie podręcznika. Nmap jest rzeczywiście bardzo potężnym i wszechstronnym narzędziem do mapowania sieci i powinieneś być z nim bardzo dobrze zaznajomiony, aby chronić systemy, za które odpowiadasz, przed atakami mającymi miejsce po złośliwym skanowaniu portów przez osoby z zewnątrz.