Назад | Перейти на главную страницу

Без iptables telnet smtp.gmail.com 465 нормально. С, не идти. Однако исходящие порты открыты…?

Вопрос по поводу iptables.

У меня есть порты 465 и 587, открытые в цепочке OUTPUT для моих iptables. Однако попытка выполнить telnet smtp.gmail.com 465 или telnet smtp.gmail.com 587 с моего сервера Fedora Core 10 безуспешно, время ожидания истекло.

Тем не менее, когда я пробую ту же последовательность telnet без запущенного iptables, я мгновенно подключаюсь.

В любом случае, спасибо, если кто-нибудь может помочь. 1.2.3.4 - это мой статический домашний IP-адрес для доступа к серверу (конечно, измененный).

Chain INPUT (policy ACCEPT 1375 packets, 161K bytes)
 pkts bytes target     prot opt in     out     source               destination         
  210 17483 ACCEPT     all  --  any    any     1.2.3.4  anywhere            state NEW,RELATED,ESTABLISHED 
    0     0 ACCEPT     tcp  --  any    any     anywhere             serverA.myserver.com   tcp dpt:smtps 
    0     0 ACCEPT     tcp  --  any    any     1.2.3.4  serverA.myserver.com   tcp dpt:mysql 
    0     0 ACCEPT     tcp  --  any    any     1.2.3.4  serverA.myserver.com   tcp dpt:ndmp 
    0     0 ACCEPT     tcp  --  any    any     localhost.localdomain  anywhere            tcp dpt:mysql 
    0     0 ACCEPT     udp  --  any    any     localhost.localdomain  anywhere            udp dpt:mysql 
   29  3442 ACCEPT     all  --  any    any     hostingco.ipsubnet/24       serverA.myserver.com   
   36  2052 ACCEPT     tcp  --  any    any     anywhere             serverA.myserver.com   tcp dpt:http 
    0     0 ACCEPT     tcp  --  any    any     anywhere             serverA.myserver.com   tcp dpt:https 
    0     0 ACCEPT     icmp --  any    any     anywhere             serverA.myserver.com   
  152  7920 REJECT     all  --  any    any     anywhere             serverA.myserver.com   reject-with icmp-port-unreachable 
    0     0 ACCEPT     tcp  --  any    any     1.2.3.4  anywhere            tcp dpt:mysql state NEW,ESTABLISHED 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 4 packets, 392 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   29  2490 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:domain 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:domain 
    2   120 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:smtp 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:pop3 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:smtps 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:https 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:submission 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:http 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ftp-data 
  320 33300 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:telnet 
    0     0 ACCEPT     tcp  --  any    eth0    anywhere             anywhere            tcp spt:smtps dpt:smtps 

может быть, вы принимаете исходящие пакеты:

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -p tcp --dport 465 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 587 -j ACCEPT

но ваша политика ввода - DROP, и вы не принимаете пакеты, которые являются ответами на ваши запросы? убедитесь, что ваша входная цепочка содержит [для повышения производительности - в качестве первой инструкции]:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

?

Попробуйте добавить журнал в правило очереди вывода:

-A OUTPUT -j LOG --log-prefix "BLOCK_OUT: " --log-level info
-A OUTPUT -j REJECT

После этого вы сможете просмотреть / var / log / messages (grep для BLOCK_OUT), чтобы увидеть, что удаляет iptables.

Если вы используете:

telnet smtp.gmail.com 465

(nslookup / dig smtp.gmail.com также не сработает)

тогда я подозреваю, что вам понадобятся хотя бы некоторые правила для передачи DNS:

 -A OUTPUT -p tcp --dport 53 -j ACCEPT
 -A OUTPUT -p udp --dport 53 -j ACCEPT

Используйте такие инструменты, как «nmap», чтобы проверить, действительно ли ваш набор правил выполняет то, что вы хотите.