Привет мне приходится очень нелегко при том, чтобы ладить с iptables и bind9 как моя внутренняя сеть сервер DNS. Это настроено для передачи моих запросов DNS Google (8.8.8.8).
Основная проблема, я не могу настроить iptables, чтобы позволить говорить с моим DNS. Мое основное правило состоит в том, чтобы отбросить все ВХОДНЫЕ И ВЫХОДНЫЕ соединения и позволить только тем, которых я требую для некоторых сервисов и bind9.
Вот мой iptables теперь
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:1155
ACCEPT tcp -- anywhere anywhere
ACCEPT udp -- anywhere anywhere udp spt:domain
ACCEPT all -- anywhere anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp spt:1155 state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT all -- anywhere anywhere
Я попытался использовать то, что этот пользователь говорит, но без удачи.
Также я попробовал много портов разрешения комбинаций 53 за udp и tcp как это
sudo iptables -A INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 53 -j ACCEPT
sudo iptables -A INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 53 -j ACCEPT
Также вот то, что я получаю от sudo netstat-anp | grep-e tcp-e udp
tcp 0 0 0.0.0.0:1155 0.0.0.0:* LISTEN 969/sshd
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1179/apache2
tcp 0 0 192.168.0.22:53 0.0.0.0:* LISTEN 1087/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1087/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1087/named
tcp 0 0 192.168.0.22:1155 192.168.0.20:50016 ESTABLISHED 1263/sshd: giorgos
tcp6 0 0 :::1155 :::* LISTEN 969/sshd
tcp6 0 0 :::53 :::* LISTEN 1087/named
tcp6 0 0 ::1:953 :::* LISTEN 1087/named
udp 0 0 192.168.0.22:53 0.0.0.0:* 1087/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 1087/named
udp 0 0 0.0.0.0:68 0.0.0.0:* 943/dhclient3
udp6 0 0 :::53 :::* 1087/named
Хорошо, iptables правило для этого может быть что-то вроде этого
, это примет dns req
sudo iptables -t nat -A INPUT -s 192.168.0.0/24 -m state --state NEW -p tcp --dport 53 -j ACCEPT
sudo iptables -t nat -A INPUT -s 192.168.0.0/24 -m state --state NEW -p udp --dport 53 -j ACCEPT
, Это создаст цепочку для ловли dns req
sudo iptables -t nat -N CATCH_DNS
sudo iptables -t nat -A CATCH_DNS -p udp -m udp --dport 53 -j REDIRECT --to-ports 53
sudo iptables -t nat -A CATCH_DNS -p tcp -m tcp --dport 53 -j REDIRECT --to-ports 53
Тогда, можно применить правило о ВХОДЕ
sudo iptables -t nat -A INPUT -s 192.168.0.0/24 -j CATCH_DNS
, я думаю, что это будет работать:)