Iptables и bind9 для передачи DNS Google

Привет мне приходится очень нелегко при том, чтобы ладить с 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  
0
задан 13 April 2017 в 05:24

1 ответ

Хорошо, 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

, я думаю, что это будет работать:)

0
ответ дан 8 October 2019 в 00:22

Другие вопросы по тегам:

Похожие вопросы: