Jeśli nie widzisz, co dzieje się w Twojej sieci, to znaczy, że nie Ty ją kontrolujesz.
– Stare przysłowie adminów
W poprzednim odcinku skanowaliśmy sieć Nmapem, patrząc na nią “z zewnątrz” – tak jak widziałby ją atakujący (lub wścibski sąsiad). Dziś zmieniamy perspektywę na “host-based”. Zanim zaczniesz martwić się hakerami z Chin, warto sprawdzić, czy Twój własny serwer nie kopie właśnie kryptowalut dla kogoś z Rosji.
Dlaczego musisz to umieć?
W systemach Linux (i nie tylko) wszystko jest plikiem – także połączenia sieciowe. Umiejętność szybkiego sprawdzenia:
- Co nasłuchuje? (jakie “drzwi” są otwarte)
- Kto jest połączony? (kto właśnie przez te drzwi wszedł)
- Dokąd wychodzą pakiety? (czy Twój serwer nie “dzwoni do domu” atakującego)
…to absolutny fundament pracy administratora i specjalisty security.
Netstat - stary wyjadacz
netstat (Network Statistics) to legenda. Przez dekady był podstawowym narzędziem do sprawdzania połączeń, tablic routingu, statystyk interfejsów i połączeń masquerade. Choć oficjalnie uznawany za przestarzały (deprecated) i zastępowany przez pakiet iproute2, wciąż znajdziesz go na milionach serwerów, w starych skryptach i na egzaminach certyfikacyjnych.
Instalacja (jeśli go brakuje)
W nowoczesnych dystrybucjach netstat nie jest instalowany domyślnie. Znajdziesz go w pakiecie net-tools.
Debian / Ubuntu / Kali
sudo apt install net-toolsRHEL / CentOS / Fedora
sudo dnf install net-toolsŚwięta trójca (a właściwie piątka) flag
Jeśli masz zapamiętać tylko jedną komendę z tego artykułu, niech to będzie to:
sudo netstat -tulpnRozbijmy to na atomy:
- -t (tcp) – pokaż tylko połączenia TCP (najczęstsze usługi)
- -u (udp) – pokaż tylko połączenia UDP (np. DNS, DHCP)
- -l (listening) – pokaż tylko porty nasłuchujące (serwery czekające na połączenie)
- -p (program) – pokaż nazwę procesu i jego PID (kto otworzył ten port?)
- -n (numeric) – nie zamieniaj adresów IP na nazwy (szybciej i czytelniej, np.
8.8.8.8:53zamiastgoogle-public-dns-a...)
UWAGA: Wymagane uprawnienia root/sudo!
Flaga -p jest kluczowa dla bezpieczeństwa, bo mówi nam JAKI proces otworzył port. Jednak system Linux nie pokaże tej informacji zwykłemu użytkownikowi, jeśli proces należy do innego użytkownika (np. roota). Dlatego zawsze używaj sudo przy audycie.
Inne przydatne zastosowania Netstata
Tablica routingu
Zamiast komendy route:
netstat -rn(-r jak route, -n żeby nie rozwiązywać nazw)
Statystyki interfejsów
Szybki podgląd błędów transmisji (RX-ERR/TX-ERR):
netstat -iSS - młody wilk (Socket Statistics)
Umarł król, niech żyje król. ss to nowoczesny następca netstata, część pakietu iproute2 (tam gdzie mieszka komenda ip).
Dlaczego warto się przestawić?
- Szybkość –
ssczerpie informacje bezpośrednio z jądra systemu (Netlink), co przy tysiącach połączeń (np. na obciążonym serwerze WWW) jest błyskawiczne. Netstat czyta pliki/proc, co bywa wolne. - Brak obcinania nazw – netstat ma tendencję do ucinania długich nazw procesów.
- Potężne filtry – składnia
sspozwala na zapytania, o których wnetstatmożna tylko pomarzyć.
Podstawowa komenda? To samo co w netstat! Twórcy zadbali o pamięć mięśniową administratorów:
sudo ss -tulpnZaawansowane filtrowanie w SS
To tutaj ss pokazuje pazury. Zamiast grepować wyniki, zapytaj o to, co Cię interesuje.
Pokaż tylko nawiązane połączenia SSH
ss -t state established '( dport = :ssh or sport = :ssh )'Znajdź wszystkie połączenia do konkretnego IP
Przydatne przy śledzeniu podejrzanych połączeń:
ss -nt dst 192.168.1.15Pokaż procesy używające portów poniżej 1024 (uprzywilejowanych)
ss -t -l -n 'sport < :1024'Statystyki pamięci gniazd
Jeśli debugujesz wycieki pamięci lub problemy z wydajnością sieci:
ss -mScenariusze Blue Team (Analiza Bezpieczeństwa)
Jako “bezpiecznik” szukasz anomalii. Oto trzy klasyczne scenariusze, które rozwiążesz używając ss lub netstat.
1. Wykrywanie nieautoryzowanych usług (Shadow IT)
Sprawdzasz serwer i widzisz otwarty port 8080, o którym nic nie wiesz.
sudo ss -lptn 'sport = :8080'Wynik może pokazać np. python3 lub java - dzięki PID (Process ID) możesz dalej sprawdzić co to za proces (komendą ps -ef | grep PID).
2. Wykrywanie Reverse Shell
Reverse Shell to popularna technika ataku, gdzie to zainfekowany serwer łączy się DO atakującego (omijając firewall przychodzący).
Szukamy połączeń wychodzących (ESTABLISHED) od procesów powłoki (bash, sh, zsh, nc).
sudo ss -tp | grep -E 'bash|sh|nc|python'Jeśli widzisz, że proces bash ma nawiązane połączenie TCP do nieznanego adresu IP na porcie np. 4444 – masz problem.
3. “Kto zjada mi łącze?”
Serwer “muli”? Sprawdź top talkerów.
ss -nt state establishedDzięki flagom -o (timer) możesz też zobaczyć keep-alive time.
Porównanie: Netstat vs SS
| Cecha | Netstat | SS (Socket Statistics) |
|---|---|---|
| Pakiet | net-tools (legacy) | iproute2 (modern) |
| Źródło danych | /proc filesystem | Netlink API (Kernel) |
| Prędkość | Wolny przy wielu połączeniach | Błyskawiczny |
| Filtrowanie | Ograniczone (wymaga grep) | Wbudowane, zaawansowane filtry |
| Status | Deprecated | Standard |
Przydatne zasoby
Podsumowanie
Nieważne czy jesteś fanem klasyki, czy nowoczesności – musisz wiedzieć, co dzieje się w Twoim własnym systemie. netstat to historia, którą warto znać, ale ss to narzędzie, którego powinieneś używać na co dzień.
Kluczowe komendy do zapamiętania:
ss -tulpn– pokaż wszystko co nasłuchujess -tun– pokaż kto rozmawia (połączenia aktywne)netstat -rn– pokaż tablicę routingu