Centos Iptables открыть порт 53

8

У меня проблема с открытием порта 53 на моем компьютере Centos для настройки DNS.

Вот мой конфиг iptables

-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT

Когда я запустил nmap-сканирование компьютера, только порт 80 оказался открытым. Я что-то упустил?

РЕДАКТИРОВАТЬ:

Полный iptable

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -p udp -m state --state NEW,ESTABLISHED -m udp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT -reject-with icmp-host-prohibited
-A FORWARD -j REJECT -reject-with icmp-host-prohibited
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
COMMIT 
user1817081
источник
Какую nmapкомандную строку вы использовали?
Хауке Лагинг
nmap 192.168.1.2
user1817081
1
может быть, у вас есть капли раньше. -А добавить эти правила в конце цепочек.
Laurentiu Roescu
Было iptables --listбы удобно увидеть. Вы также захотите отключить брандмауэр в system-config-firewall-tui(или в вашем графическом интерфейсе), чтобы вы могли вручную установить его с помощью команд iptables, в противном случае он перезапишет ваши iptables, если вы их используете. Дополнительный совет: по крайней мере, в centos вы можете сделать a, service iptables saveкогда закончите, поэтому изменения останутся для следующей перезагрузки.
dougBTV
2
Вы разрешаете только UDP, но nmap не проверяет порты UDP по умолчанию. Вам нужно это:nmap -sU -p 53 $host
Хауке Лагинг

Ответы:

12

Ваша семантика полностью изменена.

Опубликованные вами правила разрешают исходящие DNS-подключения к удаленному DNS-серверу, а не входящие подключения к локальному DNS-серверу.

Чтобы разрешить подключения к локальному DNS-серверу, измените правила INPUT и OUTPUT:

-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 53 -j ACCEPT

(И, пожалуйста, потратьте несколько минут в какой-то момент, чтобы пересмотреть брандмауэр, чтобы он соответствовал состоянию.)

Майкл Хэмптон
источник
2
Вы также можете дополнительно разрешить TCP-соединения, если выполняете AFXR или другие передачи DNS.
Jeffatrackaid
Не блокируйте TCP-запросы на DNS-сервере. Некоторые ответы, такие как www.google.com, не помещаются в пакет UDP и должны повторяться по TCP. TCP не только для передачи DNS - он необходим для обычных запросов.
Томецкий
3

Используйте -Iвместо -A.

Поскольку у вас есть прослушивающий DNS-сервер, он будет прослушивать порт 53, поэтому правило ввода должно быть

-I INPUT -p udp -m udp --dport 53 -j ACCEPT
иан
источник
0

Вы уверены, что DNS-сервер активно работает? Даже если у вас открыт порт, служба должна быть активной. Вы можете проверить, что прослушивает локально, выполнив команду netstat. Кроме того, вы пытались полностью отключить брандмауэр на мгновение, чтобы посмотреть, что появляется?

Эрик
источник
Да, я уверен, что DNS работает. Если я выключил iptables и запустил nmap на моем другом компьютере, порт отображается как открытый.
user1817081
Можете ли вы опубликовать свой полный конфиг iptables?
Эрик
пост-обновление см. выше
user1817081