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

iptables блокирует доступ к SMTP на порту 25

На моем сервере запущен iptables, который блокирует доступ ко всем портам, кроме тех, которые я разрешаю. Один из этих портов должен быть SMTP на порту 25, и для этого у меня есть следующее правило:

-A INPUT -p tcp --dport 25 -j ACCEPT

Выход из iptables -L ниже:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
REJECT     all  --  anywhere             127.0.0.0/8          reject-with icmp-port-unreachable
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:mysql
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:smtp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:pop3
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imap2
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssmtp
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:submission
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imaps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:pop3s
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
ACCEPT     icmp --  anywhere             anywhere
LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables denied: "
DROP       all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Однако когда я пытаюсь сделать telnet <myip> 25 с консоли Windows я получаю эту ошибку:

Connecting To <my ip>...Could not open connection to the host, on port 25:
Connect failed

То же самое с другими открытыми портами (80, 993 и т. Д.) Работает нормально. Значит, это проблема iptables.

Как правильно разрешить доступ к SMTP через порт 25 с помощью iptables?

Поскольку ваши правила ввода начинаются с универсального правила принятия, ни одно из других ваших правил не вступит в силу (поскольку iptables работает на основе первого правила удаления: первое правило в цепочке, которое каким-то образом избавляется от пакета, будет последним обработанным правилом , а ACCEPT цель диспозиционная). Ваше второе правило также вызывает сомнения (блокируйте весь трафик localhost), но только потому, что для этого обычно нет веских причин. Также необычно специально принимать только новые, связанные или установленные пакеты на порт SSH.

При этом ваши правила правильно принимают SMTP-трафик, поэтому проблема действительно в том, что вы не использовали SMTP. Dovecot не является SMTP-сервером; рассмотрите возможность использования любого из нескольких демонов SMTP, таких как postfix.

Во всяком случае, для вашего правила 127.0.0.0/8 укажите интерфейс ввода, на котором вы ожидаете получать поддельные пакеты localhost, если вас это беспокоит.