Я осмотрелся и попробовал несколько вещей.
Если я хочу, чтобы сервер (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