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

Запретить SMTP-подключения с внешнего локального хоста

У меня есть веб-сайт, на котором нужно отправлять электронную почту для подтверждения заказов и оповещения подписанных пользователей об определенных событиях. я делаю не необходимо отправлять электронную почту через сервер по любой другой причине, поэтому я хотел бы запретить кому-либо за пределами localhost даже подключаться к порту 25 для SMTP. Я пробовал сделать это так:

sudo iptables -A INPUT -p tcp -s 0.0.0.0 --dport 25 -j DROP

но я все еще могу использовать telnet для порта 25 и набирать команды SMTP с другого компьютера. Что я делаю не так? Кроме того, есть ли лучший способ достичь того, чего я хочу? Чтобы уточнить: мне нужна машина, которая может отправлять электронные письма (через SMTP), но только те, которые исходят из сценариев, запущенных на машине. И любая конфигурация должна «пережить» перезагрузку.

Я использую Postfix на Ubuntu (Hardy).

Я думаю, что лучшее решение, если вы не хотите получать электронные письма извне, - это точно сказать postfix в master.cf замена файла:

smtp      inet  n       -       n       -       -       smtpd

которая обычно является первой строкой без комментариев, но ваш опыт может варьироваться в зависимости от того, изменен ли постфикс, который у вас есть, вашим поставщиком:

127.0.0.1:smtp      inet  n       -       n       -       -       smtpd

Я считаю, что ты не хочешь -s 0.0.0.0 пункт. Вы запрещаете доступ только с адреса 0.0.0.0.

Вероятно, вам понадобится что-то вроде:

sudo iptables -A INPUT -p tcp -s 127.0.0.0/8 --dport 25 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 25 -j DROP

Это примет любое входящее соединение от localhost (т.е. из диапазона loopback - 127.0.0.1-127.255.255.255) и отбросит все остальные.