tid=57071& 本帖最後由 IT_man 於 2017-2-13 09:04 編輯 ( j0 n0 u$ Y- g% J
3 k3 V. K4 s' `: e
配合 awk, cut, sort, uniq 指令, 可以印出每個 ip 的連線數量, 並用連線數量排序由多而小, 以下會針對 TCP ESTABLISHED 連線檢查:# r' ~$ y; ~3 W/ D; o/ e9 c
- netstat -an|grep ESTABLISHED|awk '/^tcp/ {print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|more
複製代碼 針對 port 80 的連線, 將每個 ip 的連線數量印出並進行排序:0 y5 ] V" r. l8 G! r9 {# D' A. J
- netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr|more
複製代碼 列出最多連接數的 10 個 IP 及其連接數,其中 “:80” 是連接埠號,可改成想要檢查的埠號- netstat -atnp -A inet | grep ":80" | awk -F " " '{print $5}' | awk -F ":" '{print $1}' | sort | uniq -c | sort -nr | head -10
複製代碼
- A5 m/ ~# S1 w$ H% t
, c/ N: H* e4 a; B1 ]7 y透過以上方法找到來源 ip 後, 例如 ip 是 x.x.x.x, 可以用 iptables 阻擋攻擊
1 u3 c1 Q& h W$ C7 d封鎖 IP
. `$ z r4 H# c3 U' C3 ]0 Q# T- iptables -A INPUT -p all -s x.x.x.x/32 -j DROP
複製代碼 解除封鎖 IP
' U6 y' y1 T! ?8 s7 b- iptables -D INPUT -p all -s x.x.x.x/32 -j DROP
複製代碼 ) R& s( u' d5 z7 t" D+ u$ O
以上參考:, {6 G) J, g. L1 H' W7 Q
https://www.phpini.com/linux/linux-netstat-detect-ddos$ P- c% _$ ?. Q* p6 H5 a
https://www.phpini.com/linux/count-ip-connections
& m9 a; ]' K" S. `$ s: yhttps://www.phpini.com/linux/netstat-check-connections! n- a& w7 h) g/ @- q
/ y4 N, w0 K, n* g9 s7 S) T4 \
8 ~% Y% E, e D! q0 E* }; p. F6 D
/ {" I1 ?% n9 f$ Z7 k$ H2 ~" [5 f: Q
|