Вопрос по поводу 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», чтобы проверить, действительно ли ваш набор правил выполняет то, что вы хотите.