LINUX.ORG.RU
решено ФорумAdmin

Iptables мешают работе dns

 ,


0

2

Доброго времени суток!

Есть машина с двумя сетевыми картами, eth0 - локалка, eth1- интернет. С помощью iptables идет маскарад интернета в локалку. Все работает, кроме dns на сервере. С машинами в локалке все отлично, а вот сервер даже хост пинговать не может, только IP. Собственно правила iptables:

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -F -t filter
iptables -F -t mangle
iptables -F -t nat
#Default
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT

#DNS
iptables -A INPUT -s 195.189.31.3 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -s 195.189.31.3 -p udp --sport 53 --dport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -s 80.242.208.11 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -s 80.242.208.11 -p udp --sport 53 --dport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT

#SSH
iptables -A INPUT -i eth1 -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --set --name user --rsource
iptables -A INPUT -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT

#PING
iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j ACCEPT

#MASQUERADE
iptables -A FORWARD -o eth1 -s 192.168.100.0/24 -j ACCEPT

iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED,DNAT -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.100.0/24 -j MASQUERADE

#DROP it all
#iptables -A INPUT -i eth1 -j DROP
iptables -A INPUT -i eth1 -j REJECT
iptables -A FORWARD -i eth1 -j REJECT

Если в конце разрешаю входящие запросы, то DNS начинает работать, имена резолвятся. Пробовал добавлять:

iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 --dport 1024:65535 -j ACCEPT
iptables -A INPUT -i eth1 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT

Результата нет. Подскажите пожалуйста, что делаю не так?


Ответ на: комментарий от anto215

Выложил дамп https://yazov.kz/dns.cap, надеюсь не слишком много сообщений)

Попробовал сейчас открыть tcp:

iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 53 --dport 1024:65535 -j ACCEPT
Не помогло

Yazov
() автор топика

Секцию #DNS удалите полностью, а вместо:

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.100.0/24 -j MASQUERADE
напишите:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

funky
()
iptables -A INPUT -s 80.242.208.11 -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -s 80.242.208.11 -p udp --sport 53 --dport 1024:65535 -j ACCEPT
anonymous
()
Ответ на: комментарий от Yazov

iptables -P INPUT ACCEPT ..... по мне так лучше, разрешать, а потом запрещать. iptables -A INPUT.... -p tcp -j ACCEPT iptables -A INPUT.... -p udp -j ACEEPT iptables -A INPUT DROP Если DNS 1.1.1.1 то chain FORWARD, iptables -P FORWARD ACCEPT iptables -A FORWARD.... -j ACCEPT iptables -A FORWARD.... -j ACEEPT iptables -A FORWARD DROP Если DNS LAN 192.168.0.1 chain INPUT

dispancer
()
Ответ на: комментарий от Yazov
iptables -A INPUT -d 80.242.208.11 -p udp ---sport 53 --dport 1024:65535 -j ACCEPT
iptables -A OUTPUT -s 80.242.208.11 -p udp --sport 1024:65535 --dport 53 -j ACCEPT
anonymous
()
Ответ на: комментарий от funky

А вот это, кажется, решение. Но почему работает только с добавлением в начало

iptables -A INPUT -i eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Типа Я сначала всё разрешаю, а потом запрещаю в конце. В чем логика? И почему не работает, когда открываю нужные порты? SSH ведь работает. И насколько это безопасно?

Yazov
() автор топика
Ответ на: комментарий от Yazov

Это ставится первым правилом, потому что мы разрешаем все уже установленные (правилами ниже) соединения. Описание ESTABLISHED,RELATED. В целом, пока Вы не изучите Iptables Tutorial, Вам лучше не браться за iptables.

ЗЫ: существуют во множестве переводы на русский Iptables Tutorial, но смотрите на актуальность версии. Я вам дал ссылку на самую последнюю версию.

funky
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.