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

iptables - только отправка sendmail

Я осмотрелся и попробовал несколько вещей.

Если я хочу, чтобы сервер (centos) мог только отправлять электронные письма (уведомления мне), но не имел другого доступа к Интернету, то каковы iptables.

Я пробовал это, но не работает, отправляет электронную почту только тогда, когда iptables остановлен.

   iptables -A INPUT -p udp -m udp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
   iptables -A INPUT -p udp -m tcp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
   iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
   iptables -A OUTPUT -p tcp --sport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
   iptables -A INPUT -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
   iptables -A INPUT -p tcp --dport 25 -m state --state ESTABLISHED -j ACCEPT
   iptables -A INPUT -p tcp -m tcp -j REJECT

Любая помощь / знания?

Журнал sendmail показывает: stat = Deferred: соединение отклонено [127.0.0.1], когда iptables активен

Обновление: следующие правила работают:

   iptables -A INPUT  -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
   iptables -A OUTPUT  -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
   iptables -A INPUT -p tcp -m tcp -j REJECT

Sendmail-8.12 + передает "электронные письма из командной строки" через 127.0.0.1:25. Это делается для того, чтобы избежать установки с установленным пользователем root.

Вы можете заставить sendmail принимать входящее SMTP-соединение только на 127.0.0.1 (интерфейсы обратной связи). Он должен блокировать входящие внешние SMTP-соединения.
Добавьте следующую строку в sendail.mc и скопируйте ее в sendmail.cf [1]:

DAEMON_OPTIONS(`Addr=127.0.0.1,Port=smtp,Name=MTA')

Вы также можете попробовать следующие правила iptables:

iptables -A INPUT -p tcp --dport 25 -d 127.0.0.1 -i lo -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j REJECT 
iptables -A INPUT -p tcp --dport 25 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp -j REJECT