ネットワーク外ではすべてのSMTPをブロックしようとしていますが、内部メールサーバーアドレスではブロックしようとしません。
それで、私が見逃したものがあるのか、私のメールサーバーの現在のiptableルールを改善できるのか疑問に思います。
iptables -I FORWARD -p tcp --dport 25 -j DROP
iptables -I FORWARD -p tcp --dport 25 -j LOG --log-prefix "FORWARD-SMTP-DROP: "
iptables -I FORWARD -p tcp -s <SMTP IP HERE> --dport 25 -j ACCEPT
iptables -I FORWARD -p tcp -d <SMTP IP HERE> --dport 25 -j ACCEPT
iptables -I OUTPUT -p tcp -m multiport --dport 25,465,587 -s ! <SMTP IP HERE> -j DROP
iptables -I OUTPUT -p tcp -m multiport --dport 25,465,587 -s ! <SMTP IP HERE> -j LOG --log-prefix "OUTPUT-SMTP-DROP: "
よろしくお願いします:)
答え1
iptables標準ポリシーがFORWARDチェーンにある場合は、DROP
最初の行を削除できます。また、セキュリティを強化するために、ライン3と4にsmtpトラフィックの着信および発信インターフェイスを追加することもできます。
iptables -I FORWARD -o <OUTGOING IF> -i <INGOING IF> -p tcp -s <SMTP IP HERE> --dport 25 -j ACCEPT
iptables -I FORWARD -o <OUTGOING IF> -i <INGOING IF> -p tcp -d <SMTP IP HERE> --dport 25 -j ACCEPT
ファイアウォールの正しいインターフェイス名を追加するだけです。理由は簡単です。 IPアドレスは簡単になりすましますが、トラフィックが入って来る物理インターフェイスは簡単になりすましできないためです。それ以外はルールが大丈夫そうです。期待どおりに動作するか、予期しない動作があるかどうかを確認してください。
偉大なダースラビーチ
答え2
FORWARDチェーンのデフォルトポリシーがACCEPTの場合:
iptables -I FORWARD -p tcp --dport 25 -o [outgoing iface] -s ! [internal smtp ip] \
-m state --state NEW -j DROP
理想的には、デフォルトポリシーをDROPに設定する必要があります。これを行うには、必要なトラフィックだけを許可する必要があり、明示的に許可されていないトラフィックは拒否されます。
iptables -P FORWARD DROP # set FORWARD policy to DROP
iptables -I FORWARD -o [outgoing iface] -s [internal smtp ip] \
-m state --state NEW,ESTABLISHED -j ACCEPT
ルールには常にTCPステータスを含める必要があり、FORWARDテーブルを使用している場合は、着信/発信インターフェイスオプションを使用してルールの方向を定義する必要があり-m state --state
ます。着信または発信インターフェイスを定義しないと、ルールは明確ではなく特定の方向には適用されません。 -i
-o