Netstat
Netstat
A netstat egy parancssori, hálózati program arra, hogy megnézzük a hálózati konfigurációt és annak aktivitását. Képes mind a kimenő, mind a bejövő hálózati forgalom, a routing táblák és a hálózati interfészek statisztikájának megjelenítésére. Képesek lehetünk vele például egy DoS támadás felderítésére és manuálisan letilthatjuk a támadó IP címét.
Kapcsolók (csak a fontosabbak):
-nr routing táblák kiíratása, –n kapcsolóval íratja ki a címeket, ponttal elválasztott formátumban, hoszt- és hálózati nevek helyett. -i a felkonfigurált hálózati interfészekről jelenít meg információt -g IPv4 és IPv6 multicast csoporttagságról jelenít meg információt, -s Minden egyes protokollról (IP, TCP, SNMP stb.)készít egy összefoglalót -M a maszkolt kapcsolatok kilistázása(Ip maszkolás például), -l a „hallgatózó” szerver socketek kilistázása, -ta, Ezek a kapcsolók megmutatják az aktív TCP,UDP,RAW vagy Unix socket kapcsolatokat. Ha „a”-t írunk utána akkor a kapcsolatra -ua, váró socketeket is megjeleníti. -wa, -xa
Néhány kapcsoló hatása
Írassuk ki a routing táblákat netstat -nr parancs kiadásával:
Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 0.0.0.0 192.168.4.199 0.0.0.0 UG 0 0 0 eth1
Írassuk ki a interfészekről intormációkat netstat -i parancs kiadásával:
Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 0 0 0 0 0 0 0 0 BMRU eth1 1500 0 5635 3 3 0 4725 0 5 0 BMRU lo 16436 0 12 0 0 0 12 0 0 0 LRU
Így megtudtuk, hogy az eth0-án 1500byte az MTU például.
Írassuk ki az TCP kapcsolatokat anetstat -ant parancs kiadásával:
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 192.168.4.113:58559 209.85.148.120:443 TIME_WAIT tcp 0 0 192.168.4.113:46239 92.123.69.89:80 TIME_WAIT tcp 0 0 192.168.4.113:56160 209.85.148.113:80 TIME_WAIT tcp 0 0 192.168.4.113:37633 74.125.87.83:80 ESTABLISHED tcp 0 0 192.168.4.113:37823 95.101.176.74:80 TIME_WAIT tcp 0 0 192.168.4.113:35738 74.125.87.104:80 TIME_WAIT tcp 0 0 192.168.4.113:33126 74.125.87.19:80 ESTABLISHED tcp 0 0 192.168.4.113:36680 92.123.72.89:80 TIME_WAIT tcp 0 0 192.168.4.113:46241 92.123.69.89:80 TIME_WAIT tcp 0 0 192.168.4.113:36672 92.123.72.89:80 TIME_WAIT tcp 0 0 192.168.4.113:46240 92.123.69.89:80 TIME_WAIT tcp 0 0 192.168.4.113:60555 204.11.109.22:80 TIME_WAIT tcp 0 0 192.168.4.113:50016 66.220.153.11:80 TIME_WAIT tcp 0 0 192.168.4.113:54156 74.125.87.149:80 TIME_WAIT tcp 0 0 192.168.4.113:60556 204.11.109.22:80 TIME_WAIT tcp 0 0 192.168.4.113:39421 88.221.61.115:80 TIME_WAIT tcp6 0 0 ::1:631 :::* LISTEN tcp6 0 0 :::445 :::* LISTEN tcp6 0 0 :::139 :::* LISTEN
Most szűrjük le azokat amiknek 80-as a portszáma, mert csak a TCP kapcsolatokra vagyunk kíváncsiak:
netstat -ant | grep 80
Az eredmény:
tcp 0 0 192.168.4.113:37633 74.125.87.83:80 ESTABLISHED tcp 0 0 192.168.4.113:33126 74.125.87.19:80 TIME_WAIT tcp 0 0 192.168.4.113:49028 74.125.87.83:80 ESTABLISHED
Ha teljes képet szeretnénk kapni mi folyik a szerverünkön a következő paranccsal tehetjük meg, az awk program pedig segít az eredményeket csoportosítani:
netstat -ant | awk ‘{print $6}’ | sort | uniq -c | sort -n
jelenleg:
0 Foreign 1 FIN_WAIT2 4 LISTEN 0 CLOSE_WAIT 2 ESTABLISHED 14 TIME_WAIT
Jelen pillanatban 2 kapcsolat jött létre és pl. 14-re vár.
DoS támadás kivédése
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr iptables -I INPUT -s 45.165.30.20 -j DROP