我每隔 2-3 秒就会在系统日志中看到以下模式,持续几分钟:
Shorewall:net2fw:DROP:IN=eth0 OUT= MAC=aa:bb:cc:dd:ee:ff:gg:hh:ii:jj:kk:ll:mm:nn SRC=12.34.56.78 DST=98.76.54.32 LEN=60 TOS=0x00 PREC=0x00 TTL=41 ID=12746 DF PROTO=TCP SPT=41611 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0
其中ID和SPT的值在每行中都不同。服务器是Debian 6.0,带有shorewall和fail2ban。
我怎样才能缩小正在发生的事情的范围并使用fail2ban和shorewall来更好地阻止这个问题?
答案1
我的解决方案最终采用了 Fail2ban 过滤器:
failregex = DROP:IN=eth0 OUT= MAC=[a-zA-F0-9:]+ SRC=<HOST> DST=([0-9]{1,3}\.?){4} LEN=
DROP:IN=eth0 OUT=vmbr0 SRC=<HOST> DST=([0-9]{1,3}\.?){4} LEN=
添加到/etc/fail2ban/filter.d/sshd-ddos.conf
它禁止 ssh 端口上的这些请求。