![找到阻止 IP 的通用字符串](https://linux22.com/image/599281/%E6%89%BE%E5%88%B0%E9%98%BB%E6%AD%A2%20IP%20%E7%9A%84%E9%80%9A%E7%94%A8%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
目前我已经有所有这些 IP 进入。有没有办法在数据包内容中找到一个通用字符串,然后通过 IPTables 阻止攻击?
Oct 24 16:28:52 host kernel: [ 823.255566] Firewall: *SYNFLOOD Blocked* IN=eth0 OUT= MAC= SRC=176.3.80.132 DST=28.7.4.90 LEN=40 TOS=0x00 PREC=0x00 TTL=242 ID=28861 PROTO=TCP SPT=1234 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0
Oct 24 16:28:54 host kernel: [ 825.252398] Firewall: *SYNFLOOD Blocked* IN=eth0 OUT= MAC= SRC=61.54.230.5 DST=28.7.4.90 LEN=40 TOS=0x00 PREC=0x00 TTL=242 ID=56117 PROTO=TCP SPT=1234 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0
Oct 24 16:28:56 host kernel: [ 827.249315] Firewall: *SYNFLOOD Blocked* IN=eth0 OUT= MAC= SRC=88.59.138.26 DST=28.7.4.90 LEN=40 TOS=0x00 PREC=0x00 TTL=249 ID=43596 PROTO=TCP SPT=1234 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0
Oct 24 16:28:58 host kernel: [ 829.246167] Firewall: *SYNFLOOD Blocked* IN=eth0 OUT= MAC= SRC=40.64.113.72 DST=28.7.4.90 LEN=40 TOS=0x00 PREC=0x00 TTL=245 ID=2417 PROTO=TCP SPT=1234 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0
Oct 24 16:29:00 host kernel: [ 831.243043] Firewall: *SYNFLOOD Blocked* IN=eth0 OUT= MAC= SRC=128.251.121.17 DST=28.7.4.90 LEN=40 TOS=0x00 PREC=0x00 TTL=249 ID=34268 PROTO=TCP SPT=1234 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0
Oct 24 16:29:02 host kernel: [ 833.239921] Firewall: *SYNFLOOD Blocked* IN=eth0 OUT= MAC= SRC=68.242.45.172 DST=28.7.4.90 LEN=40 TOS=0x00 PREC=0x00 TTL=249 ID=31174 PROTO=TCP SPT=1234 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0
Oct 24 16:29:04 host kernel: [ 835.236802] Firewall: *SYNFLOOD Blocked* IN=eth0 OUT= MAC= SRC=23.229.207.247 DST=28.7.4.90 LEN=40 TOS=0x00 PREC=0x00 TTL=245 ID=60655 PROTO=TCP SPT=1234 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0
Oct 24 16:29:06 host kernel: [ 837.233621] Firewall: *SYNFLOOD Blocked* IN=eth0 OUT= MAC= SRC=180.97.21.206 DST=28.7.4.90 LEN=40 TOS=0x00 PREC=0x00 TTL=242 ID=47914 PROTO=TCP SPT=1234 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0
Oct 24 16:29:08 host kernel: [ 839.230530] Firewall: *SYNFLOOD Blocked* IN=eth0 OUT= MAC= SRC=110.248.74.43 DST=28.7.4.90 LEN=40 TOS=0x00 PREC=0x00 TTL=245 ID=30942 PROTO=TCP SPT=1234 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0
我可以像这样使用 tcpdump 对吗?
tcpdump -ni eth0 -w file.cap -s 0 -c 1000 not port 80
答案1
不。
使用正则表达式和 iptables 来阻止 DDoS 攻击的想法是坏的解决问题的方法。
您可以通过让您的 ISP/提供商丢弃流量来应对 DDoS。一旦流量到达您的服务器,它就已经完成了它要做的事情,即浪费资源(带宽、处理能力等)。此时使用正则表达式不会对攻击产生任何影响,只会浪费更多的处理能力,并阻止您检测到的任何误报流量。所以不要这样做。