nftables はポート 25 を受け入れません。なぜでしょうか?

nftables はポート 25 を受け入れません。なぜでしょうか?

サーバー: Debian Buster。

nftables.conf には次の内容があります:

chain INPUT {
..
tcp dport { 25,465,587,993} log prefix "nft smtp: " accept comment "accept SMTP, SMTPS, IMAPS"
..
log prefix "nft nac: " comment "not accepted"
}
chain OUTPUT
{
..
tcp sport { 25,465,587, 993} log prefix "nft smtp: " accept comment "accept SMTP, SMTPS, IMAPS"
..
log prefix "nft nac: " comment "not accepted"
}

Dovecot / Postfix経由でメールを送信すると、

nft smtp ログに何も表示されない

nft nac ログ (受け入れられません) には次のように書かれています:

IN= OUT=eth0 SRC=188.166.29.7 DST=159.65.66.140 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=41257 DF PROTO=TCP SPT=58228 DPT=25

mail.info には次のように表示されます: 接続がタイムアウトしました。

どうやら nftables はポート 25 を受け入れないようです。受け入れるべきですが。理由はわかりません。

何が問題なのですか?

答え1

ログにパケットが表示されます出発イーサネットインターフェース(出力)を行き先ポート25。ファイアウォールがOUTPUTチェーンで許可しているのは、TCPポート25のパケットです。ソース25のポート。

あなたがおそらくやりたいこと - フィルタリングする代わりにソース出力チェーンのポート - 既存の (追跡された) 接続に関連付けられた送信接続を許可します。

おそらくあなたが意図しているが、ファイアウォールルールにまだ追加していないのは、送信メールを送信できるようにする送信ルールです。これは、行き先25のポート。

答え2

何が起こっているかを確認するために、nftables.confに次のコードを入れました。

INPUTチェーンの場合

tcp sport { 25,465,587} log prefix "nft smtp1: " accept
tcp dport { 25,465,587} log prefix "nft smtp2: " accept

OUTPUTチェーンの場合

tcp dport { 25,465,587} log prefix "nft smtp3: " accept
tcp sport { 25,465,587} log prefix "nft smtp4: " accept

/etc/rsyslog.d/10-nftables.conf内

:msg, contains, "nft smtp1" -/var/log/nft_smtp1.log
:msg, contains, "nft smtp2" -/var/log/nft_smtp2.log
:msg, contains, "nft smtp3" -/var/log/nft_smtp3.log
:msg, contains, "nft smtp4" -/var/log/nft_smtp4.log
:msg, contains, "nft nac" -/var/log/nft_not_accepted.log
&stop

service rsyslog restart

そして

systemctl restart nftables

ファイアウォールを使用して電子メールをテストし、ログ ファイルに詳細なデバッグ情報を取得できます。次に、どの電子メール アクティビティがどの nftable ルールをトリガーするかを確認できます。

これらの変更を行った後、INPUT と OUTPUT チェーン内の dport と sport が間違っていることがわかりました。次のように変更すると動作します。

INPUTチェーンの場合

tcp dport { 25,465,587} log prefix "nft smtp2: " accept

OUTPUTチェーンの場合

tcp dport { 25,465,587} log prefix "nft smtp3: " accept

または、少なくともこれらの 2 行は、電子メールの送受信によってトリガーされました。

私が本当に見逃しているもの ファイアウォールの仕組みを詳細に説明しています。ほとんどの情報は、設定にルールを挿入して「動作するはず」というものです。ファイアウォールを本当に理解して、エラーをすばやく見つけられるようにしたいです。お勧めのサイトや本はありますか? よろしくお願いします!

関連情報