Slavik
tags: tor, dns, iptables
Long story short, використовую Tor, як анонімний DNS-ceрвер. Проблема в тому, шо Tor підтримує ресолвінг тільки 3 типів DNS записів:
Якщо спробувати отримати, нариклад, МХ запис - то відповідь буде NOTIMP (Not implemented):
dig MX -p 9053 debian.org 127.0.0.1
;; QUESTION SECTION:
;debian.org. IN MX
;; Query time: 0 msec
;; SERVER: 127.0.0.1#9053(127.0.0.1) (UDP)
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOTIMP, id: 25221
Але це неправда, бо домен debian.org насправді має мх записи:
dig +short MX debian.org 8.8.8.8
0 mitropoulos.debian.org.
0 mailly.debian.org.
0 muffat.debian.org.
Тому, шоб запобігти цьому я блокую всі запити до Tor-DNS крім A, AAAA та PTR:
iptables -A INPUT -p udp --dport 9053 \
-m string --hex-string "|000011|" --algo bm \
-j ACCEPT -m comment --comment 'Allow A'
iptables -A INPUT -p udp --dport 9053 \
-m string --hex-string "|00001c|" --algo bm \
-j ACCEPT -m comment --comment 'Allow AAAA'
iptables -A INPUT -p udp --dport 9053 \
-m string --hex-string "|0000ff|" --algo bm
-j DROP -m comment --comment 'Block records Tor does not support'
Туто [1] вуйко пише про string модуль для iptables i його параметри.