URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 92621
[ Назад ]

Исходное сообщение
"iptables vs dns (win nslookup интересное поведение)"

Отправлено FragMaster , 18-Ноя-11 22:12 
Centos 5.4 + iptables+ bind9
Есть проблемы в работе ДНС при включенном iptables.
Если iptables выключен, то на win машине:

C:\Documents and Settings\Администратор>nslookup
Default Server: mail.domain.ru
Address: 192.168.100.1

> mail.domain.ru

Server: mail.domain.ru
Address: 192.168.100.1

Name: mail.domain.ru
Address: 192.168.100.1

Если iptables поднят:

C:\Documents and Settings\Администратор>nslookup
Default Server: mail.domain.ru
Address: 192.168.100.1

> mail.domain.ru

Server: mail.domain.ru
Address: 192.168.100.1

DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** Request to mail.domain.ru timed-out
> exit

Bind настроен на прямое и обратное отображение:
mail.domain.ru 192.168.100.1
ftp://ftp.domain.ru 192.168.100.1

Настройки iptables (eth0 192.168.100.1 - LAN, eth1 192.168.255.10 - INET)
[root@gate etc]# iptables-save
# Generated by iptables-save v1.3.5 on Fri Nov 18 19:49:56 2011
*nat
:PREROUTING ACCEPT [5:284]
:POSTROUTING ACCEPT [1:108]
:OUTPUT ACCEPT [1:108]
-A POSTROUTING -o eth1 -j SNAT --to-source 192.168.255.10
COMMIT
# Completed on Fri Nov 18 19:49:56 2011
# Generated by iptables-save v1.3.5 on Fri Nov 18 19:49:56 2011
*mangle
:PREROUTING ACCEPT [21:1658]
:INPUT ACCEPT [17:1452]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [16:1620]
:POSTROUTING ACCEPT [16:1620]
COMMIT
# Completed on Fri Nov 18 19:49:56 2011
# Generated by iptables-save v1.3.5 on Fri Nov 18 19:49:56 2011
*filter
:INPUT DROP [4:312]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:allowed - [0:0]
:bad_tcp_packets - [0:0]
:icmp_packets - [0:0]
:tcp_packets - [0:0]
:udp_packets - [0:0]
-A INPUT -p tcp -j bad_tcp_packets
-A INPUT -s 192.168.100.0/255.255.255.0 -i eth0 -j ACCEPT
-A INPUT -s 127.0.0.1 -i lo -j ACCEPT
-A INPUT -s 192.168.100.1 -i lo -j ACCEPT
-A INPUT -s 192.168.255.10 -i lo -j ACCEPT
-A INPUT -i tun+ -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 68 --dport 67 -j ACCEPT
-A INPUT -d 192.168.255.10 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth1 -p tcp -j tcp_packets
-A INPUT -i eth1 -p udp -j udp_packets
-A INPUT -i eth1 -p icmp -j icmp_packets
-A FORWARD -p tcp -j bad_tcp_packets
-A FORWARD -s 192.168.100.0/255.255.255.0 -p gre -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p icmp -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p tcp -m tcp --dport 1723 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p tcp -m tcp --dport 25 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p tcp -m tcp --dport 110 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p tcp -m tcp --dport 4666 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p tcp -m tcp --dport 4667 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p udp -m udp --dport 10000 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p udp -m udp --dport 500 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p udp -m udp --dport 4500 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p tcp -m tcp --dport 1119 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p udp -m udp --dport 1999 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p tcp -m tcp --dport 6112:6119 -j ACC
EPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p udp -m udp --dport 6112:6119 -j ACC
EPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -s 9.16.142.1 -j ACCEPT
-A OUTPUT -p tcp -j bad_tcp_packets
-A OUTPUT -s 127.0.0.1 -j ACCEPT
-A OUTPUT -s 192.168.100.1 -j ACCEPT
-A OUTPUT -s 192.168.255.10 -j ACCEPT
-A allowed -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A allowed -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A allowed -p tcp -j DROP
-A icmp_packets -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A tcp_packets -p tcp -m tcp --dport 21 -j allowed
-A tcp_packets -p tcp -m tcp --dport 20 -j allowed
-A tcp_packets -p tcp -m tcp --dport 25 -j allowed
-A tcp_packets -p tcp -m tcp --dport 995 -j allowed
-A tcp_packets -p tcp -m tcp --dport 2222 -j allowed
-A tcp_packets -p tcp -m tcp --dport 8080 -j allowed
-A udp_packets -p udp -m udp --dport 8080 -j ACCEPT
-A udp_packets -p udp -m udp --dport 20 -j ACCEPT
COMMIT


Содержание

Сообщения в этом обсуждении
"iptables vs dns (win nslookup интересное поведение)"
Отправлено FragMaster , 19-Ноя-11 00:15 
Решено

Добавил
$IPTABLES -A INPUT -p UDP --dport 53 -j ACCEPT

почему-то если дописать к этой строке ограничение вида -i eth0 или -s 192.168.100.0/24, то запускается iptables без ошибок, но правило не работает.

В связи с этим вопрос:
по идее эта строка откроет доступ и с интернет интерфейса по udp ан сервер.
Как этого избежать?


"iptables vs dns (win nslookup интересное поведение)"
Отправлено shadow_alone , 19-Ноя-11 01:23 
Правильно вот так:


# Accept responses to DNS queries
iptables -A INPUT -p udp -m udp --dport 1024:65535 --sport 53 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT


"iptables vs dns (win nslookup интересное поведение)"
Отправлено Дядя_Федор , 19-Ноя-11 15:22 
> iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT

По TCP только трансфер зоны между первичным и вторичным серверами выполняется. :) Хотя, конечно, не помешает. Если в настройках BIND позаботиться о безопасности на передачу зоны, конечно.


"iptables vs dns (win nslookup интересное поведение)"
Отправлено shadow_alone , 19-Ноя-11 17:49 
>  По TCP только трансфер зоны между первичным и вторичным серверами выполняется.
> :) Хотя, конечно, не помешает. Если в настройках BIND позаботиться о
> безопасности на передачу зоны, конечно.

Совершенно согласен. Однако я отписал универсальное решение, мало ли что, вдруг автору потом взбредет в голову делать трансфер.
А по поводу трансфера, по-моему надо конкретно указать allow-transfer, что бы можно было это проделать, иначе не даст просто.


"iptables vs dns (win nslookup интересное поведение)"
Отправлено FragMaster , 19-Ноя-11 20:04 
> Правильно вот так:
>
 
> # Accept responses to DNS queries
> iptables -A INPUT -p udp -m udp --dport 1024:65535 --sport 53 -j
> ACCEPT
> iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
> iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
>

Попробую...

У меня днс открыт только для lo и localnet


"iptables vs dns (win nslookup интересное поведение)"
Отправлено Дядя_Федор , 20-Ноя-11 00:14 
>> iptables -A INPUT -p udp -m udp --dport 1024:65535 --sport 53 -j
>> ACCEPT
>> iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
>> iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
>>

> Попробую...
> У меня днс открыт только для lo и localnet

Он у Вас также ДОЛЖЕН быть открыт для ответов, которые Ваш ДНС-сервер посылает ВВЕРХ! При поступлении рекурсивных запросов от клиентов сети - того самого localnet. Это правило как раз и описано первым. А вообще - лучше уж внести вот такое правило:
IPTABLES -A INPUT -i eth0(или какой он там у Вас? Речь о ВНЕШНЕМ интерфейсе) -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
Под это правило прекрасно попадет самое первое. Или Вы своему серверу не доверяете? :) Не стоит его лишать возможности "общаться" с внешним миром.


"iptables vs dns (win nslookup интересное поведение)"
Отправлено Дядя_Федор , 20-Ноя-11 00:16 
> IPTABLES -A INPUT -i eth0(или какой он там у Вас? Речь о
> ВНЕШНЕМ интерфейсе) -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

Прошу прощения - не доглядел. Вроде есть у Вас выше это правило.


"iptables vs dns (win nslookup интересное поведение)"
Отправлено FragMaster , 01-Фев-12 10:04 
Взлетело после того как добавил

$IPTABLES -A INPUT -p UDP --dport 53 -j ACCEPT

Сейчас iptables-save выглядит так:

*filter
:INPUT DROP [20:988]
:FORWARD DROP [1:113]
:OUTPUT DROP [1:67]
:allowed - [0:0]
:bad_tcp_packets - [0:0]
:icmp_packets - [0:0]
:tcp_packets - [0:0]
:udp_packets - [0:0]
-A INPUT -s 192.168.100.0/255.255.255.0 -i eth0 -j ACCEPT
-A INPUT -s 127.0.0.1 -i lo -j ACCEPT
-A INPUT -s 192.168.100.1 -i lo -j ACCEPT
-A INPUT -s 192.168.255.10 -i lo -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i tun+ -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --sport 68 --dport 67 -j ACCEPT
-A INPUT -d 192.168.255.10 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth1 -p tcp -j tcp_packets
-A INPUT -i eth1 -p udp -j udp_packets
-A INPUT -i eth1 -p icmp -j icmp_packets
-A FORWARD -d 192.168.100.2 -i eth1 -p tcp -m tcp --dport 443 -j ACCEPT
-A FORWARD -p tcp -j bad_tcp_packets
-A FORWARD -i eth0 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p gre -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p icmp -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p tcp -m tcp --dport 1723 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p tcp -m tcp --dport 25 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p tcp -m tcp --dport 110 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p tcp -m tcp --dport 4666 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p tcp -m tcp --dport 4667 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p udp -m udp --dport 10000 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p udp -m udp --dport 500 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p udp -m udp --dport 4500 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p tcp -m tcp --dport 1119 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p udp -m udp --dport 1999 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p tcp -m tcp --dport 6112:6119 -j ACCEPT
-A FORWARD -s 192.168.100.0/255.255.255.0 -p udp -m udp --dport 6112:6119 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -s 9.16.142.1 -j ACCEPT
-A OUTPUT -s 127.0.0.1 -j ACCEPT
-A OUTPUT -s 192.168.100.1 -j ACCEPT
-A OUTPUT -s 192.168.255.10 -j ACCEPT
-A allowed -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A allowed -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A allowed -p tcp -j DROP
-A icmp_packets -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A tcp_packets -p tcp -m tcp --dport 21 -j allowed
-A tcp_packets -p tcp -m tcp --dport 20 -j allowed
-A tcp_packets -p tcp -m tcp --dport 25 -j allowed
-A tcp_packets -p tcp -m tcp --dport 995 -j allowed
-A tcp_packets -i eth1 -p tcp -m state --state NEW -m tcp --dport 2222 -m recent --update --seconds 20 --name DEFAULT --rsource -j DROP
-A tcp_packets -i eth1 -p tcp -m state --state NEW -m tcp --dport 2222 -m recent --set --name DEFAULT --rsource -j ACCEPT
-A tcp_packets -p tcp -m tcp --dport 8080 -j allowed
-A udp_packets -p udp -m udp --dport 8080 -j ACCEPT
-A udp_packets -p udp -m udp --dport 20 -j ACCEPT

*mangle
:PREROUTING ACCEPT [95867249:62829537320]
:INPUT ACCEPT [93601603:62320581881]
:FORWARD ACCEPT [2265475:508939918]
:OUTPUT ACCEPT [97824942:76206443864]
:POSTROUTING ACCEPT [99120443:76669376773]
COMMIT

*nat
:PREROUTING ACCEPT [2387791:126826150]
:POSTROUTING ACCEPT [533651:38000456]
:OUTPUT ACCEPT [779358:57865151]
-A PREROUTING -d 192.168.255.10 -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.100.2:443
-A POSTROUTING -o eth1 -j SNAT --to-source 192.168.255.10
COMMIT