我有一个公共DNS,我希望防止某些攻击者每隔一秒使用相同的域条目攻击我的DNS服务器.我基于iptables规则暂时这样做,但我想知道是否有一个我们可以用于此目的的自动系统.我想到了fail2ban的http,有没有像这样的DNS查询?
谢谢!
解决方法
fail2ban不是“for http”,它是一个基于日志条目采取行动(如在防火墙上禁止IP)的框架.以下是我的DNS服务器的相关配置选项:
named.conf中
logging { channel default_file { file "/var/log/named.log" size 10m; severity info; print-time yes; print-severity yes; print-category yes; }; category default{ default_file; }; };
jail.local
(fail2ban的配置文件)
[named-refused-bsd-ipfw] enabled = true filter = named-refused action = bsd-ipfw logpath = /var/named/var/log/named.log maxretry = 20 bantime = 43200
请注意,这是一个使用IPFW(防火墙)的FreeBSD盒子.您将要使用action iptables并适当地命名规则.
您可能还需要更改日志路径,具体取决于您的安装.请注意,在我的示例中有不同的路径,因为BIND在jail中运行(chrooted到/ var / named).在监狱里奔跑会让事情变得更复杂,但是一旦你习惯了它就会变坏.
您还应该为日志文件设置某种日志轮换机制.
newsyslog.conf
/var/log/named.log bind:bind 644 7 * $W6D0 J /var/run/named/pid 1
您可能还想看看它是谁,它可能是一个开放的解析器(如Google,4.2.2.2-.4等).禁止他们并不禁止真正的“攻击者”.您可以使用dig -x 4.2.2.4对IP进行反向查找,看看是否有帮助.