Wireguard, pihole, unbound | предотвращаем утечку dns
Опубликовано 17 12 2022
3 min на чтение
Опубликовано 26 05 2022
2 min на чтение
Задача заставить локально обрабатывать все запросы к onion, через тор, а все остальное в обычном режиме. В этом деле поможет dnsmasq, но заставить его работать я смог только с dhcpcd, не знаю возможно ли это сделать через networkmanager, не пользуюсь им. Выключаем и удаляем все сетевое, ставим dnsmasq и dhcpcd.
sudo pacman -S dnsmasq dhcpcd tor
Конфиг dnsmasq.
# /etc/dnsmasq.conf
no-resolv
no-hosts
port=53
server=127.0.0.1#9053
listen-address=::1,127.0.0.1
server=/onion/127.0.0.1#9053
server=/.exit/127.0.0.1#9053
server=8.8.8.8
server=8.8.4.4
Конфиг dhcpcd.
# /etc/dhcpcd.conf
nohook resolv.conf
noarp
Конфиг tor. tor_resolv походу не обязательно.
# /etc/tor/torrc
VirtualAddrNetwork 10.254.0.0/16
AutomapHostsOnResolve 1
AutomapHostsSuffixes .exit,.onion
TransPort 127.0.0.1:9040 NoIsolateClientAddr SessionGroup=1
DNSPort 127.0.0.1:9053
ServerDNSResolvConfFile /etc/tor_resolv.conf
# /etc/tor_resolv.conf
nameserver 8.8.8.8
Выключам, включаем и стартуем службы.
sudo systemctl disable --now systemd-networkd.socket
sudo systemctl disable --now systemd-networkd
sudo systemctl disable --now systemd-resolved
sudo systemctl enable --now dhcpcd
sudo systemctl enable --now dnsmasq
sudo systemctl start tor
Правила перенаправления запросов onion в тор мост.
# ip route show default | awk '/default/ {print $5}'
sudo iptables -t nat -A PREROUTING -d 10.254.0.0/16 -i enp5s0 -p tcp -j REDIRECT --to-ports 9040
sudo iptables -t nat -A OUTPUT -d 10.254.0.0/16 -p tcp -j REDIRECT --to-ports 9040
Выключить запрет в firefox. В адресной строке откройте адрес about:config и выключить значение.
network.dns.blockDotOnion false
Для теста onion keybase.
Если все нормально, то можно выгрузить правила iptables в любое удобное место, я сохраню рядом с дефолтом.
# /etc/iptables/iptables.rules
sudo iptables-save -f /etc/iptables/iptables.rules.tor
Если нужны эти правила постоянно, то просто перетрите /etc/iptables/iptables.rules, но перед этим создайте копию.
sudo cp /etc/iptables/iptables.rules /etc/iptables/iptables.rules.bak
sudo iptables-save -f /etc/iptables/iptables.rules
Считывание правил с файла.
sudo iptables-restore /etc/iptables/iptables.rules.bak
В сети наткнулся на простой пайтон скрипт, немного подправил под Arch.
sudo toriptables3.py -l
# сброс правил
sudo toriptables3.py -f
# лучше откатите через iptables
sudo iptables-restore /etc/iptables/iptables.rules.bak
# help
sudo toriptables3.py -h