nftables는 포트 25를 허용하지 않습니다. 이유는 무엇입니까?

nftables는 포트 25를 허용하지 않습니다. 이유는 무엇입니까?

서버: 데비안 버스터.

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

로그에 패킷이 표시됩니다퇴거이더넷 인터페이스(OUTPUT)목적지포트 25. 방화벽이 OUTPUT 체인에서 허용하는 것은 TCP가 포함된 패킷입니다.원천25번 항구.

당신이 하고 싶은 일 - 필터링 대신원천출력 체인의 포트 - 기존(추적) 연결과 관련된 나가는 연결을 허용하는 것입니다.

의도했지만 아직 방화벽 규칙에 추가하지 않은 것은 나가는 메일을 보낼 수 있는 OUTGOING 규칙입니다.목적지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

또는 적어도 이 두 줄은 이메일을 보내고 받음으로써 실행됩니다.

내가 정말로 놓치고 있는 것 방화벽 작동에 대한 철저한 개요입니다. 대부분의 정보는 구성에 규칙을 삽입하는 것과 '작동해야 함'에 관한 것입니다. 방화벽에 대해 제대로 이해하고 오류를 빨리 찾아낼 수 있기를 바랍니다. 추천해줄 수 있는 좋은 사이트나 책이 있나요? 감사해요!

관련 정보