为蜜jar服务器提供DNSredirect到已知的错误域

目前正在RHEL 5.4上运行BIND,并且正在寻找一种更有效的方式来为蜜jar服务器提供DNSredirect,以用于大型(30,000多个)禁止域列表。

我们目前的解决scheme是在named.conf文件中包含一个包含区域主机声明的文件。 随后,这些区域声明中的每一个指向相同的区域文件,该文件将该域中的所有主机parsing到我们的蜜jar服务器。 …基本上,这使得我们可以捕获恶意软件可能渗透到内部系统的任何“电话回家”企图。

这个configuration的问题是加载所有30,000多个域以及域列表configuration文件本身的pipe理需要大量的时间…如果任何错误蔓延到这个文件中,BIND服务器将无法启动,从而使得过程自动化有点可怕。 所以我正在寻找一些更有效率,更不容易出错的东西。

named.conf条目:

include "blackholes.conf"; 

blackholes.confinput示例:

 zone "bad-domain.com" IN { type master; file "/var/named/blackhole.zone"; allow-query { any; }; notify no; }; 

blackhole.zone项目:

$ INCLUDE std.soa

@ ns ns1.ourdomain.com。
@ ns ns2.ourdomain.com。
@ ns ns3.ourdomain.com。

IN A 192.168.0.99
* IN A 192.168.0.99

  • Nginx不redirect,但正在工作
  • redirect循环SSL Nginx Cloudflare
  • 我如何遮掩我的Wordpress安装通过htaccess?
  • 如何将多个域redirect到lighttpd中的单个域
  • Nginx多个域
  • 从Apache2的HTTPS域名移除“www”?
  • 4 Solutions collect form web for “为蜜jar服务器提供DNSredirect到已知的错误域”

    理论上说,通过将黑洞列表(例如,通过$INCLUDE )作为黑洞列表的一部分,然后将该文件从hint变为主文件,可以避免缓慢的加载时间。 最后一点是必要的,以防止您的服务器从互联网下载真正的根提示。

    例如在named.ca

     a.root-servers.net. IN A .... m.root-servers.net. IN A .... $INCLUDE blackhole.zone 

    然后在blackhole.zone

     $ORIGIN example.com. @ IN 192.168.0.99 * IN 192.168.0.99 $ORIGIN example.net. @ IN 192.168.0.99 * IN 192.168.0.99 ; ad-infinitum 

    对于每个黑色区域,都没有真正的NSlogging或单独的zone语句的需要 – 您将有效的数据插入到根区域的本地副本中。 只要确保你偶尔下载真正的根区域!

    然后,在每次重新加载和/或重新启动之前,只需按@ syn的build议运行named-checkzone

    注意:我没有testing过这个。

    编辑 :对不起,我不好读你的问题。 我提出和你一样的东西。 也许你可以包含一个从数据库生成的文件?

    我有一个dropDomain文件:

     $TTL 3600 ; 1 hour @ IN SOA xxxxxxxx.fr. dnsmaster.xxxxxxxx.fr. ( 2009112001 ; serial 20yymmdd+nn 900 ; refresh (15 minutes) 600 ; retry (10 minutes) 86400 ; expire (1 day) 3600 ; minimum (1 hour) ) NS dns1.xxxxxxxx.fr. NS dns2.xxxxxxxx.fr. MX 0 smtp.xxxxxxx.fr. * A 127.0.0.1 ; vim:filetype=bindzone 

    然后,我只需在named.conf.local的列表中添加这些域:

     # Master pour les zones que l'on ne veut plus resoudre (pirates, virus, prise en main a distance...) zone "zzzzzzz.com" { type master; file "/etc/bind/dropDomain.tld"; allow-query { any; }; }; zone "yyyyyyy.com" { type master; file "/etc/bind/dropDomain.tld"; allow-query { any; }; }; zone "ttttttt.com" { type master; file "/etc/bind/dropDomain.tld"; allow-query { any; }; }; 

    我不需要在区域文件中定义它,它是通用的。

    你有没有考虑BIND的替代? 我还没有使用过,但有MySQL驱动的替代品,如PowerDNS与Poweradmin的Web前端。 这可能会使更新更容易出错和风险。 PowerDNS甚至有一个工具来将BIND区域文件转换为SQL进行迁移。

    另外,我可以问清单是否公开? 我自己对这个很感兴趣。

    还没有find一个很好的方法来消除必须加载每个域在自己的区域,但使用下面的rndc命令消除了在出现格式错误的情况下导致服务器失败的问题。

     rndc reconfig 

    完整的服务器重新启动/重新加载仍然会导致启动失败。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.