каждый.

Мой провайдер фильтрует DNS-запросы. Как именно - я не знаю.

Чтобы избежать (или, по крайней мере, смягчить) эту проблему, я установил свой собственный BIND на 192.168.3.1.

Вот моя конфигурация:

logging {
        channel default_syslog {
            print-severity yes;
            syslog;
            severity notice;
            };
        };

acl homenets {
        192.168.0.0/16;
        localhost;
        localnets;
};

options {
        directory "/var/named";
        /*
         * If there is a firewall between you and nameservers you want
         * to talk to, you might need to uncomment the query-source
         * directive below.  Previous versions of BIND always asked
         * questions using port 53, but BIND 8.1 uses an unprivileged
         * port by default.
         */
        // query-source address * port 53;
        //Lockywolf's edition
        recursion yes;


        dnssec-validation auto;
        dnssec-enable yes;
        auth-nxdomain no;
        listen-on-v6 { any; };

        allow-recursion { homenets; };

};

key DHCP_UPDATER {
algorithm HMAC-MD5.SIG-ALG.REG.INT;
secret "TOP_SECRET";
};


//
// a caching only nameserver config
//
zone "." IN {
        type hint;
        file "caching-example/named.root";
};

zone "localhost" IN {
        type master;
        file "caching-example/localhost.zone";
        allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "caching-example/named.local";
        allow-update { none; };
};

// Lockywolf's added zones

zone "lwfhome" IN {
        type master;
        file "caching-example/lwfhome.zone";
        allow-update { key DHCP_UPDATER; };
//      allow-transfer { ns1.namecheap.com; };
};
zone "168.192.in-addr.arpa" IN {
        type master;
        file "caching-example/168.192.in-addr.arpa.zone";
        allow-update { key DHCP_UPDATER; };
//      allow-transfer { ns1.namecheap.com; };
};

По крайней мере, некоторые настройки работают нормально. То есть я могу разрешить некоторые имена, и www.dnssec-failed.org возвращает SERVFAIL.

НО:

Отфильтрованные адреса все еще фильтруются .... но странным образом.

Когда я спрашиваю, скажем, копай youporn.com +trace +dnssec, я получаю полностью поддельный ответ:

root@server:~# dig youporn.com +trace +dnssec

; <<>> DiG 9.10.4-P4 <<>> youporn.com +trace +dnssec
;; global options: +cmd
.                       463433  IN      NS      e.root-servers.net.
.                       463433  IN      NS      l.root-servers.net.
.                       463433  IN      NS      a.root-servers.net.
.                       463433  IN      NS      g.root-servers.net.
.                       463433  IN      NS      h.root-servers.net.
.                       463433  IN      NS      d.root-servers.net.
.                       463433  IN      NS      b.root-servers.net.
.                       463433  IN      NS      j.root-servers.net.
.                       463433  IN      NS      c.root-servers.net.
.                       463433  IN      NS      m.root-servers.net.
.                       463433  IN      NS      f.root-servers.net.
.                       463433  IN      NS      i.root-servers.net.
.                       463433  IN      NS      k.root-servers.net.
.                       517170  IN      RRSIG   NS 8 0 518400 20170226170000 20170213160000 61045 . ckPc/tLcnZ7g2jyLswmho73QA4WWPe3gUwyKZtbrxRZas70RSTS58P/Z KwTm+lJGJU+B6/9eOOerFv+qQ+hr9e4u/FNp3+bXDHnPYvsdEnxdr1r8 KMnjjw8vXjD8Qm3A8rLcMRD/kRFO6M8EmqZa9WvFSZHg9AF810c0Zuqf wocYLLbmT5JvuShyE0WBNks5a86vhxzNGjeKvoMg2op8yC3V0efSRZK2 uhcKupd0eSRrer3mNfjFLQFD/WGPMXYCFpPjxnwtDiXnevJ7FP2dkFWH rHHuxM10sXEUMvNKtLn7tJewzyJs5RUZdHiDYigsmKvaAsPy3x6GwDLF 7x8hjA==
;; Received 1044 bytes from 192.168.3.1#53(192.168.3.1) in 0 ms

youporn.com.            1026    IN      A       213.167.39.27
;; Received 49 bytes from 192.203.230.10#53(e.root-servers.net) in 1 ms

Что является ложью, хотя бы потому, что корневые серверы не хранят никакой информации о «youporn.com». Также IP-адрес не так.

Тем не менее, когда я звоню: копать youporn.com + трассировка + dnssec + aaonly

Ответ на удивление правильный:

root@server:~# dig youporn.com +trace +dnssec +aaonly

; <<>> DiG 9.10.4-P4 <<>> youporn.com +trace +dnssec +aaonly
;; global options: +cmd
.                       463269  IN      NS      b.root-servers.net.
.                       463269  IN      NS      h.root-servers.net.
.                       463269  IN      NS      d.root-servers.net.
.                       463269  IN      NS      a.root-servers.net.
.                       463269  IN      NS      e.root-servers.net.
.                       463269  IN      NS      k.root-servers.net.
.                       463269  IN      NS      l.root-servers.net.
.                       463269  IN      NS      m.root-servers.net.
.                       463269  IN      NS      j.root-servers.net.
.                       463269  IN      NS      f.root-servers.net.
.                       463269  IN      NS      i.root-servers.net.
.                       463269  IN      NS      c.root-servers.net.
.                       463269  IN      NS      g.root-servers.net.
.                       517006  IN      RRSIG   NS 8 0 518400 20170226170000 20170213160000 61045 . ckPc/tLcnZ7g2jyLswmho73QA4WWPe3gUwyKZtbrxRZas70RSTS58P/Z KwTm+lJGJU+B6/9eOOerFv+qQ+hr9e4u/FNp3+bXDHnPYvsdEnxdr1r8 KMnjjw8vXjD8Qm3A8rLcMRD/kRFO6M8EmqZa9WvFSZHg9AF810c0Zuqf wocYLLbmT5JvuShyE0WBNks5a86vhxzNGjeKvoMg2op8yC3V0efSRZK2 uhcKupd0eSRrer3mNfjFLQFD/WGPMXYCFpPjxnwtDiXnevJ7FP2dkFWH rHHuxM10sXEUMvNKtLn7tJewzyJs5RUZdHiDYigsmKvaAsPy3x6GwDLF 7x8hjA==
;; Received 1044 bytes from 192.168.3.1#53(192.168.3.1) in 0 ms

com.                    172800  IN      NS      g.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.
com.                    172800  IN      NS      c.gtld-servers.net.
com.                    172800  IN      NS      f.gtld-servers.net.
com.                    172800  IN      NS      d.gtld-servers.net.
com.                    172800  IN      NS      k.gtld-servers.net.
com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      j.gtld-servers.net.
com.                    172800  IN      NS      i.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
com.                    172800  IN      NS      h.gtld-servers.net.
com.                    172800  IN      NS      l.gtld-servers.net.
com.                    172800  IN      NS      e.gtld-servers.net.
com.                    86400   IN      DS      30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.                    86400   IN      RRSIG   DS 8 1 86400 20170226170000 20170213160000 61045 . UTYkZHzqLF8kqv9+7HVSKaMXwfLPMeLx3YMoU8ZWjTz1FiCjTOFzEp+2 s4hzjucEB7569Ppzru+0UuzTm9tumkSUJoGhBLdfOUi4b6dKTSGb3Ybn GApoSrTGMnMGrtiIApYLhdQ1a9KZ6PaarPwbpOQ6Td+8ClqSCYK3/xdA nyUXCd1qdfYFyC3WPyouoDZsK+Ahc9B2VMnevfB561j5eX2JxNzqnI8a YaVUTrMzKhIL1rK51fRboXcdkVVmJN8eKV/ulXx73W2P2qGNeuuyy9RV MuAFrclZjzrPx2l7AB6Xpy7b9r7SmONc1ekD3RFcXBTF2zEHeepwRSzg bR1L9w==
;; Received 863 bytes from 199.7.91.13#53(d.root-servers.net) in 57 ms

youporn.com.            172800  IN      NS      ns1.p44.dynect.net.
youporn.com.            172800  IN      NS      ns2.p44.dynect.net.
youporn.com.            172800  IN      NS      ns3.p44.dynect.net.
youporn.com.            172800  IN      NS      ns4.p44.dynect.net.
youporn.com.            172800  IN      NS      sdns3.ultradns.net.
youporn.com.            172800  IN      NS      sdns3.ultradns.com.
youporn.com.            172800  IN      NS      sdns3.ultradns.org.
youporn.com.            172800  IN      NS      sdns3.ultradns.biz.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A  NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20170218054619 20170211043619 31697 com. CEbyhokcC5jQBv+v5W2XQt6rpLb6sLXLpAiOf34X2grUTdlMQfbUInmV MDwYVpuK+lK/CSwRrCWvP3k/7QqwsC4AkveIoi3WMfvAZMTkhMV6an2x FH3jeym2vFA3XSYTBaLIE7ut/MzrZci5qfdGqufBB04OcKLhKNKLRI1J HiI=
PUFL8VGRQ3N4TC6QV3G2R207UO9KDLM8.com. 86400 IN NSEC3 1 1 0 - PUFN28L13OQTHBV8S731Q0AG2FJBS4QT  NS DS RRSIG
PUFL8VGRQ3N4TC6QV3G2R207UO9KDLM8.com. 86400 IN RRSIG NSEC3 8 2 86400 20170220053808 20170213042808 31697 com. wtNzw5INtkN3aUd90oZJX/i/eQGSb4WG2zcXtIY1QXP1YddWOUhNcU8x kynuuaGJrFPQdskDnDs8w61xhBAL7r4VDii/vAfCIV65KFxHcSL1/GMB KRY5dnUyUfCNnC88zxoIEUqdmiQCLgjpHPgZ1WcaMKOHTTaMY5L0IPeW WXo=
;; Received 885 bytes from 192.54.112.30#53(h.gtld-servers.net) in 25 ms

youporn.com.            300     IN      A       31.192.120.44
youporn.com.            86400   IN      NS      sdns3.ultradns.biz.
youporn.com.            86400   IN      NS      ns2.p44.dynect.net.
youporn.com.            86400   IN      NS      sdns3.ultradns.org.
youporn.com.            86400   IN      NS      ns1.p44.dynect.net.
youporn.com.            86400   IN      NS      ns3.p44.dynect.net.
youporn.com.            86400   IN      NS      sdns3.ultradns.com.
youporn.com.            86400   IN      NS      ns4.p44.dynect.net.
youporn.com.            86400   IN      NS      sdns3.ultradns.net.
;; Received 264 bytes from 204.13.250.44#53(ns2.p44.dynect.net) in 55 ms

Я не понимаю эту конфигурацию. Если провайдер достаточно умен, чтобы подделать сигнатуру корневых серверов, то почему работает последняя команда?

Если они не могут этого сделать, то почему я вижу фальшивый ответ для «youporn.com» от «корневых серверов». Я ожидаю, что иерархия доверия будет работать до тех пор, пока собственные серверы имен youporn, и не получит поддельный ip от них (похищенный MITM), но нет, им уже удается захватить самый первый шаг.

Может ли кто-нибудь объяснить мне, что происходит?

1 ответ1

1

Угон обычно не так специфичен, как вы думаете. ISP, вероятно, не волнует, какой DNS-сервер вы запрашиваете - он перехватывает все UDP-пакеты на порт 53, и, пока запрос был для youporn.com поддельный ответ.

За исключением случаев, когда вы устанавливаете дополнительные флаги, которые путают фильтр ISP и заставляют его пропустить исходный запрос. Например, бит AA в запросах на самом деле нестандартный (опция в dig - просто остаток), поэтому, возможно, фильтр ISP считает эти запросы некорректными и не сканирует их? (Точно так же в некоторых местах фильтруется только UDP, в то время как DNS-запросы через TCP работают нормально.)

Интернет-провайдер не подделывает подписи. Обратите внимание, что в поддельных ответах их нет - они содержат только поддельные записи A, но не RRSIG.

(Даже если бы была подпись, dig на самом деле не проверяет ее - опция +dnssec просто говорит серверу, что нужно включить подписи, но dig ничего с ними не делает. Для проверки на стороне клиента вам нужно что-то вроде dr drill -S или drill -TD .)

В любом случае DNSSEC может только предупредить вас о поддельных данных - он не может предотвратить подделку данных. Наиболее распространенные способы обхода фильтрации DNS включают шифрование, а именно DNS-over-TLS (поддерживается Unbound) или DNSCrypt (имеет собственный прокси-демон).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .