У меня возникла проблема с открытием порта 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
Ваша семантика перевернута.
Опубликованные вами правила разрешают исходящий 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
(И пожалуйста, потратьте несколько минут на то, чтобы пересмотреть свой брандмауэр, чтобы он сохранял состояние.)
Использовать -I
вместо того -A
.
Поскольку у вас есть прослушивающий DNS-сервер, он будет прослушивать порт 53, поэтому правило ввода должно быть
-I INPUT -p udp -m udp --dport 53 -j ACCEPT
Вы уверены, что DNS-сервер активно работает? Даже если у вас открыт порт, служба должна быть активной. Вы можете проверить, что слушает локально, запустив команду netstat. Кроме того, вы пытались на мгновение полностью отключить брандмауэр, чтобы посмотреть, что появится?