LINUX.ORG.RU
ФорумAdmin

DNS Blackhole

 


0

1

Всем привет.

Появилась задачка поднять DNS на BIND с возможностью фильтрации доменов с плохим рейтингом(Порно итд) и дальнейшим его резольвом на нужный IP где будет поднят сервер с апачем и нужным ответом. Что то на подобие OpenDNS.

Поднял CentOs7: для теста VM 2CPU/2GB RAM/50GBHDD

uname -a Linux dnshole.getinf.com 3.10.0-327.13.1.el7.x86_64
Установил bind + bind-utils, о секьюрности на этапе теста не думаю, поэтому chroot,seelinux,firewalld и другие вещи выключены. Настройки named.conf минимальны для теста.
acl "trusted" {any;};
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { any; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { trusted; };
        recursion yes;
        bindkeys-file "/etc/named.iscdlv.key";
        managed-keys-directory "/var/named/dynamic";
        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/etc/named/named.conf.local";
include "/etc/named/blackhole/spywaredomains.zones";

Файл spywaredomains.zones содержит базу доменов 2000+ в таком формате:

zone "cutheatergroup.cn"  {type master; file "/etc/namedb/blockeddomain.hosts";};
zone "dionneg.com"  {type master; file "/etc/namedb/blockeddomain.hosts";};
zone "delzzerro.cn"  {type master; file "/etc/namedb/blockeddomain.hosts";};
zone "lupytehoq.com"  {type master; file "/etc/namedb/blockeddomain.hosts";};
zone "vipprojects.cn"  {type master; file "/etc/namedb/blockeddomain.hosts";};
zone "douate.com"  {type master; file "/etc/namedb/blockeddomain.hosts";};
zone "hhj3.cn"  {type master; file "/etc/namedb/blockeddomain.hosts";};
zone "hryspap.cn"  {type master; file "/etc/namedb/blockeddomain.hosts";};
zone "iebar.t2t2.com"  {type master; file "/etc/namedb/blockeddomain.hosts";};
zone "allindiapoint.com"  {type master; file "/etc/namedb/blockeddomain.hosts";};
И так далее 2000+
Всё это дело идет сюда «/etc/namedb/blockeddomain.hosts
$TTL    86400   ; one day

@       IN      SOA     dnshole.getinf.com. dnshole.getinf.com. (
                          7
                          28800   ; refresh  8 hours
                          7200    ; retry    2 hours
                          864000  ; expire  10 days
                          86400 ) ; min ttl  1 day
                  NS      dnshole.getinf.com.

                  A       7.7.7.7

Делаю systemctl start named Вылетает эрор journalctl -xe

Apr 03 01:43:03 dnshole.getinf.com bash[2712]: zone neobake.com/IN: loaded serial 7
Apr 03 01:43:03 dnshole.getinf.com bash[2712]: zone net4um.com/IN: loaded serial 7
Apr 03 01:43:03 dnshole.getinf.com bash[2712]: zone newswf.com/IN: loaded serial 7
Apr 03 01:43:03 dnshole.getinf.com bash[2712]: zone nextlevelfinance.com/IN: loaded serial 7
Apr 03 01:43:03 dnshole.getinf.com bash[2712]: zone nextlevellacrosse.com/IN: loaded serial 7
Apr 03 01:43:03 dnshole.getinf.com bash[2712]: zone ninjafy.com/IN: loaded serial 7
Apr 03 01:43:03 dnshole.getinf.com bash[2712]: zone nje1.cn/IN: loaded serial 7
Apr 03 01:43:03 dnshole.getinf.com bash[2712]: zone now.ge/IN: loaded serial 7
Apr 03 01:43:04 dnshole.getinf.com systemd[1]: named.service: control process exited, code=exited status=1
Apr 03 01:43:04 dnshole.getinf.com systemd[1]: Failed to start Berkeley Internet Name Domain (DNS).
-- Subject: Unit named.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit named.service has failed.
--
-- The result is failed.
Apr 03 01:43:04 dnshole.getinf.com systemd[1]: Unit named.service entered failed state.
Apr 03 01:43:04 dnshole.getinf.com systemd[1]: named.service failed.

Но если в файле spywaredomains.zones уменьшить количество зон до 50 к примеру то все будет ОК:

Apr 03 01:48:58 dnshole.getinf.com named[2738]: zone icloud-itnues-id.com/IN: loaded serial 7
Apr 03 01:48:58 dnshole.getinf.com named[2738]: zone zakon.kz/IN: loaded serial 7
Apr 03 01:48:58 dnshole.getinf.com named[2738]: zone localhost/IN: loaded serial 0
Apr 03 01:48:58 dnshole.getinf.com named[2738]: zone icloud-i4.com/IN: loaded serial 7
Apr 03 01:48:58 dnshole.getinf.com named[2738]: zone icluod-appie.com/IN: loaded serial 7
Apr 03 01:48:58 dnshole.getinf.com named[2738]: zone iebar.t2t2.com/IN: loaded serial 7
Apr 03 01:48:58 dnshole.getinf.com named[2738]: zone cutheatergroup.cn/IN: loaded serial 7
Apr 03 01:48:58 dnshole.getinf.com named[2738]: zone icloud-lost-findmyiphone-manage-accounts.com/IN: loaded serial 7
Apr 03 01:48:58 dnshole.getinf.com named[2738]: zone icloud-no3059.com/IN: loaded serial 7
Apr 03 01:48:58 dnshole.getinf.com named[2738]: zone icloud-tmin.com/IN: loaded serial 7
Apr 03 01:48:58 dnshole.getinf.com named[2738]: zone icloudpassport.com/IN: loaded serial 7
Apr 03 01:48:58 dnshole.getinf.com named[2738]: all zones loaded
Apr 03 01:48:58 dnshole.getinf.com named[2738]: running
Apr 03 01:48:58 dnshole.getinf.com polkitd[2270]: Unregistered Authentication Agent for unix-process:2726:480400 (system bus name :1.32, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from
Apr 03 01:48:58 dnshole.getinf.com systemd[1]: Started Berkeley Internet Name Domain (DNS).
-- Subject: Unit named.service has finished start-up
-- Defined-By: systemd

********************************************************************************
C:\Users\sdddd>nslookup
╤хЁтхЁ яю єьюыўрэш■:  google-public-dns-a.google.com
Address:  8.8.8.8

> server 192.168.0.100
╤хЁтхЁ яю єьюыўрэш■:  [192.168.0.100]
Address:  192.168.0.100

> icloud-tmin.com
╤хЁтхЁ:  [192.168.0.100]
Address:  192.168.0.100

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
╚ь :     icloud-tmin.com
Address:  7.7.7.7

> icloud-tmin.com
╤хЁтхЁ:  [192.168.0.100]
Address:  192.168.0.100

╚ь :     icloud-tmin.com
Address:  7.7.7.7

>

Но как видно по таймаутам DNS всё равно работает медленно хоть и резольвит как задумано.

Были подозрения на кеш но игра с параметром кеша в named.conf ничего не дала.

За основу брал данную статью Список доменов сливал ТУТ

Буду очень благодарен за ваши советы и помощь.


1. Чот я в логах этого вашего системд не вижу почему бинд отваливается. Запусти его ручками в фореграунде и посмотри - скорее всего какая-то из зон кривая и он на ней валится.

2. Почему у тебя там таймауты - не знаю, но явно не из-за бинда. Ему что 50, что 2000 зон - ни разу не проблема.

blind_oracle ★★★★★
()

до чего же systemd говнище, никогда не видел чтоб бинд падал молча.
залил http://mirror1.malwaredomains.com/files/spywaredomains.zones УМВР

пр. 04 04:33:50 ubuntu32 named[4921]: zone iu54ere.for-more.biz/IN: loaded serial 7
апр. 04 04:33:50 ubuntu32 named[4921]: /etc/bind/blockeddomain.hosts:11: 975751-de-storno-kenntnis-konto_identity.sicher.cf: bad owner name (check-names)
апр. 04 04:33:50 ubuntu32 named[4921]: zone 975751-de-storno-kenntnis-konto_identity.sicher.cf/IN: loading from master file /etc/bind/blockeddomain.hosts failed: bad owner name (check-names)
апр. 04 04:33:50 ubuntu32 named[4921]: zone 975751-de-storno-kenntnis-konto_identity.sicher.cf/IN: not loaded due to errors.
апр. 04 04:33:50 ubuntu32 named[4921]: /etc/bind/blockeddomain.hosts:11: 341048--prob-angabe-konto_identity.sicher.cf: bad owner name (check-names)
апр. 04 04:33:50 ubuntu32 named[4921]: zone 341048--prob-angabe-konto_identity.sicher.cf/IN: loading from master file /etc/bind/blockeddomain.hosts failed: bad owner name (check-names)
апр. 04 04:33:50 ubuntu32 named[4921]: zone 341048--prob-angabe-konto_identity.sicher.cf/IN: not loaded due to errors.
system-root@ubuntu32:/etc/bind$ 
поругался только на подчеркивание и всё.

system-root ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.