配合 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
複製代碼
! V: o& q0 X* O9 p5 W) T. d透過以上方法找到來源 ip 後, 例如 ip 是 x.x.x.x, 可以用 iptables 阻擋攻擊
) o5 l$ _- E7 k( S. G' k, L封鎖 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
複製代碼 以上參考:9 o# B D; w0 m9 w7 r& \3 R/ ~
https://www.phpini.com/linux/linux-netstat-detect-ddos
* t* D( l8 x& O2 B" q0 E: D' fhttps://www.phpini.com/linux/count-ip-connections/ D3 ^* [" i- p: r
https://www.phpini.com/linux/netstat-check-connections0 i) s( O; e$ q' R- h, X' a
=================================================
: C; A; {- k* B k: L. ]- C( Z2 B$ |另外:
6 X3 e2 T( J: {9 y查詢哪些port被哪些應用程式佔用:0 d+ \# ~+ F! C( g8 E
1.)- netstat -tulpn | grep LISTEN
複製代碼 2.)- lsof -i -P -n | grep LISTEN
複製代碼 3.)- sudo nmap -sT -O localhost
複製代碼 =================================================7 Y5 q- n2 o$ t% i
查詢某個port佔用的backlogbacklog應該多大? 參考: https://cloud.tencent.com/developer/article/16448367 Q- i% X3 I, N, w& _
|
|