配合 awk, cut, sort, uniq 指令, 可以印出每個 ip 的連線數量, 並用連線數量排序由多而小, 以下會針對 TCP ESTABLISHED 連線檢查:- netstat -an|grep ESTABLISHED|awk '/^tcp/ {print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|more
複製代碼 針對 port 80 的連線, 將每個 ip 的連線數量印出並進行排序:- 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
複製代碼
/ u9 u/ }. j9 d+ X6 Y2 f透過以上方法找到來源 ip 後, 例如 ip 是 x.x.x.x, 可以用 iptables 阻擋攻擊
% m7 n) X: b7 a: _封鎖 IP- iptables -A INPUT -p all -s x.x.x.x/32 -j DROP
複製代碼 解除封鎖 IP- iptables -D INPUT -p all -s x.x.x.x/32 -j DROP
複製代碼 以上參考:% ~! {# n4 G( P; U" L! u- {9 E! {6 U% `
https://www.phpini.com/linux/linux-netstat-detect-ddos
3 @0 ]- d/ a6 q* z% V% i" P8 R7 Z- vhttps://www.phpini.com/linux/count-ip-connections6 i8 O: N1 ]7 b& b6 d) h
https://www.phpini.com/linux/netstat-check-connections
/ t8 s r0 @; |2 k* H=================================================
+ K3 e6 l; g5 T, t7 @4 n另外:" d7 W5 Z9 J& Z& m
查詢哪些port被哪些應用程式佔用:$ t6 @. d/ [1 f0 b0 V
1.)- netstat -tulpn | grep LISTEN
複製代碼 2.)- lsof -i -P -n | grep LISTEN
複製代碼 3.)- sudo nmap -sT -O localhost
複製代碼 =================================================
6 V2 c+ J4 [4 j2 ]# `查詢某個port佔用的backlogbacklog應該多大? 參考: https://cloud.tencent.com/developer/article/1644836: U0 P$ h/ E H: [. }4 W1 }. Y6 b
|
|