每隔一段时间我的服务器closures,当我检查我的nginx日志时,我通常会看到类似这样的内容:
78.37.54.31 - - [20/Apr/2016:20:58:51 +0300] "\x00\x00\x00TZ\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x04\x010I\x00\x00\x00\x00\xFC\x01\xA8\xC0\x00!\x00\xFDk\x00\x00\x00\x00\x00\x00\x00\x00" 400 166 "-" "-" 89.169.219.212 - - [21/Apr/2016:11:37:22 +0300] "\x00\x00\x00 c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" 400 166 "-" "-"
我使用DigitalOcean文章推荐的默认推荐configuration安装了fail2ban,但是它并没有阻止这些扫描程序偶尔会超载我的服务器。 安装naxsi不是我现在的select。 任何人都可以帮助我为fail2ban形成正确的正则expression式规则? “apache-badbots”和“apache-wootwoot”监狱(可以很容易地search)没有为我工作。
在/etc/fail2ban/jail.conf
[nginx-x00] enabled = true port = http,https filter = nginx-x00 logpath = /var/log/nginx/access.log bantime = 3600 maxretry = 1
并在/etc/fail2ban/filter.d/nginx-x00.conf中
[Definition] failregex = ^<HOST> .* ".*\\x.*" .*$
你完成了。 下一次有人惹你了,他/她将被禁止一个小时,或者你在禁令中定义的任何时间。
不要担心使用\ x格式良好的请求,因为这些是urlencoded,他们将处理得很好。