Поскольку мы попали в черный список CBL, я установил следующие правила брандмауэра с помощью iptables:
#!/bin/bash
iptables -A OUTPUT -d 127.0.0.1 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 25 -m owner --gid-owner mail -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 25 -m owner --uid-owner root -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 25 -m owner --uid-owner Debian-exim -j ACCEPT
iptables -A OUTPUT -p tcp -m limit --limit 15/minute -m tcp --dport 25 -j LOG --log-prefix "LOCAL_DROPPED_SPAM"
iptables -A OUTPUT -p tcp -m tcp --dport 25 -j REJECT --reject-with icmp-port-unreachable
Я не могу подключиться к порту 25 с localhost с другим пользователем, кроме root или членом почтовой группы -> Так что, похоже, это работает.
Еще остаются вопросы:
/usr/sbin/sendmail
также ограничено или заблокировано этим набором правил?Вероятно, было бы лучше установить политику для таблицы OUTPUT на DROP, а затем явно открывать соответствующие порты и т.д., но это будет довольно специфично для вашей среды, поэтому это упражнение для OP.
Ты можешь использовать -m multiport
для соответствия до 15 портов, например
iptables -A OUTPUT -p tcp -m multiport --dports 25,587 -m owner --gid-owner mail -j ACCEPT
разрешить отправку групповой почты на оба порта или
Вы можете регистрировать новые исходящие подключения следующим образом
iptables -A OUTPUT -p tcp -m multiport --dports 25,587 -m state --state NEW -j LOG --log-uid --log-prefix "LOCAL_DROPPED_SPAM "
и вы получите такое сообщение
11 ноября 12:52:26 имя хоста ядро: LOCAL_DROPPED_SPAM IN = OUT = eth0 SRC = 192.168.254.181 DST = 192.168.254.187 LEN = 60 TOS = 0x10 PREC = 0x00 TTL = 64 ID = 53476 DF PROTO = TCP SPT = 49893 DPT = 25 WINDOW = 14600 RES = 0x00 SYN URGP = 0 UID = 1000 GID = 1000
iptables -A OUTPUT -p tcp -m multiport --dports 25,587 -j DROP
чтобы окончательно разорвать все исходящие соединения на обоих портах.
Помните, что действия iptables действуют в том порядке, в котором они находятся в таблице, и первое совпадение побеждает, поэтому