nftables não aceita a porta 25. Por quê?

nftables não aceita a porta 25. Por quê?

Servidor: Debian Buster.

Em nftables.conf eu tenho:

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"
}

Quando envio um e-mail pelo Dovecot/Postfix,

log nft smtp não mostra nada

log nft nac (não aceito) diz:

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 diz: A conexão expirou.

Aparentemente, o nftables não aceita a porta 25, embora deveria. Eu não entendo o porquê.

O que está errado?

Responder1

Seu log mostra um pacotesaindosua interface Ethernet (OUTPUT) com umdestinoporta 25. O que seu firewall está permitindo na cadeia OUTPUT são pacotes com um TCPfonteporto de 25.

O que você provavelmente deseja fazer - em vez de filtrar porfonteporta na cadeia de saída - permite conexões de saída associadas a conexões existentes (rastreadas).

O que você provavelmente pretendia, mas ainda não adicionou às suas regras de firewall, é uma regra OUTGOING que permite enviar e-mails de saída - que seriam conexões TCP com umdestinoporto de 25.

Responder2

Para verificar o que está acontecendo, coloquei o seguinte código em nftables.conf

Para a cadeia INPUT

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

Para a cadeia OUTPUT

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

Em /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

Depois

service rsyslog restart

e

systemctl restart nftables

Posso testar o email com o firewall e obter informações detalhadas de depuração nos arquivos de log. Então posso ver qual atividade de e-mail aciona qual regra nftável.

Depois de fazer essas alterações, descobri que dport e sport estavam errados na cadeia INPUT e OUTPUT. Funciona depois de alterá-lo em:

Para a cadeia INPUT

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

Para a cadeia OUTPUT

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

Ou pelo menos essas duas linhas foram acionadas pelo envio e recebimento de e-mail.

O que realmente estou sentindo falta é uma visão geral completa do funcionamento do firewall. A maioria das informações é sobre a inserção de regras na configuração e o 'deve funcionar'. Gostaria de ter um entendimento real do firewall, para poder encontrar erros rapidamente. Existe um bom site ou livro que você possa recomendar? Obrigado!

informação relacionada