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 

Какую 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.