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
Rootまたはメールグループメンバー以外のユーザーでローカルホストからポート25に接続できません->それで動作しているようです。
まだいくつかの質問が残っています:
/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月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 ID = 1000 GID = 10
iptables -A OUTPUT -p tcp -m multiport --dports 25,587 -j DROP
最終的に両方のポートのすべてのアウトバウンド接続をドロップします。
Iptablesのアクションルールは、テーブルにある順序であり、最初の一致が優先されることに注意してください。