iptables блокирует DNS-сервер

Я пытаюсь настроить свой сервер, чтобы разрешить входящие DNS-запросы. Сервер по умолчанию, настроенный хостинговой компанией, разрешает трафик через порты 443, 80 и 22.

Я изменил файл iptables, чтобы попытаться разрешить запросы через порт 53, но не получаю ответа от BIND. Отключение брандмауэра разрешает прохождение DNS-запроса, поэтому мне кажется, что сервер имен работает правильно. Установка CentOS 5.5.

Это файл iptables; Я был бы признателен, если бы кто-нибудь сказал мне, чего мне здесь не хватает, чтобы заставить это работать.

Заранее спасибо.

==================

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -d 224.0.0.251 --dport 5353 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 10000 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 1024:65535 --sport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 1024:65535 --sport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 22 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 80 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state -m tcp --dport 443 --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Generated by webmin
*mangle
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed
# Generated by webmin
*nat
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed

person Redback    schedule 10.09.2010    source источник


Ответы (1)


Эта строка из ваших правил совершенно неверна:

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 1024:65535 --sport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 1024:65535 --sport 53 -j ACCEPT

Вы говорите: разрешить трафик с удаленного порта 53 на локальные порты 1024–65535.
Я полагаю, что DNS прослушивает порт 53. Попробуйте вместо этого (разрешить каждый трафик TCP/UDP на порт назначения). 53):

-A RH-Firewall-1-INPUT -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 53 -j ACCEPT

Эти строки ничего не сделают: Следующие строки разрешают трафик с номером протокола 50 (ESP) и 51 (AH) (источник: Номера протоколов IANA)

-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
person Lekensteyn    schedule 10.09.2010
comment
Спасибо. Линии, которые я добавил, очень похожи на строки, которые появляются на моем VPS. Строки, которые вы отметили как ничего не делающие, являются частью стандартной установки CentOS. Я не уверен в их намерениях, но могу оставить их там, учитывая, что они являются частью стандартной установки. Еще раз большое спасибо. - person Redback; 10.09.2010
comment
Линии 50/51 должны разрешать входящие туннели IPSEC — 50 — это ESP, а 51 — AH. - person Alnitak; 11.09.2010
comment
Для сведения, мне пришлось разрешить порт 953 для DNS-сервера bind9. - person baptx; 25.01.2016