Como você encaminha uma porta sub-1024 privilegiada para uma porta 1024+ não privilegiada com firewalld?

Como você encaminha uma porta sub-1024 privilegiada para uma porta 1024+ não privilegiada com firewalld?

A questão

Como você encaminha uma porta sub-1024 privilegiada para uma porta 1024+ não privilegiada com firewalld?

A razão

Por que estamos fazendo isso? Queremos poder alternar a porta 1050 não privilegiada no gateway e usar um servidor de correio upstream diferente. Por exemplo, para testar uma solução de spam diferente, use a porta 1051 para enviar mensagens para um servidor de correio diferente com uma solução de filtragem de spam diferente.

Os servidores de e-mail se conectam automaticamente ao gateway quando são iniciados. A conexão automática só pode acontecer em portas não privilegiadas que sejam 1024+.

O layout e configuração

Disposição

+--------+         +---------------------+         +----------------+
|  WAN   |         |                1050 | <-      |                |
| Client |         |       Gateway       |    \    |   Mail Server  |
|        |  <--->  | 25                  |      -> | 25             |
+--------+         +---------------------+         +----------------+

Configurar firewall

Limpe o firewall, abra a porta, defina a porta para frente e adicione alguns serviços.

root@gateway:~# firewall-cmd --reload
root@gateway:~# firewall-cmd --zone=public --add-port=25/tcp
root@gateway:~# firewall-cmd --zone=public --add-forward-port=port=25:proto=tcp:toport=1050
root@gateway:~# firewall-cmd --add-service={http,https,smtp}

Verifique o firewall

Confirme as configurações do firewall...

root@gateway:~# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: etho0
  sources: 
  services: dhcpv6-client http https smtp ssh
  ports: 25/tcp
  protocols: 
  masquerade: no
  forward-ports: port=25:proto=tcp:toport=1050:toaddr=
  source-ports: 
  icmp-blocks: 
  rich rules: 

Isso é o que esperávamos ver nas regras de firewall.

O resultado

Isto é o que obtemos quando telnetamos o servidor de correio upstream no gateway...

root@gateway:~# telnet localhost 1050
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 debian10email.debian10email ESMTP Postfix (Debian/GNU)

Isto é o que obtemos de uma máquina cliente remota...

client@client123:~$ telnet gateway.example.org 25
Trying <IP_of_gateway>...
Connected to gateway.example.org.
Escape character is '^]'.

Esperamos ver também a 220 debian10email.debian10email ESMTP Postfix (Debian/GNU)linha, mas não vemos.

Verificação de sanidade...

O teste

Apenas para confirmar se as regras de encaminhamento de porta estão sendo escritas corretamente, nós...

  • Abra a porta 1025 no firewall.
  • Encaminhamento de porta 1025 a 1050
  • E então verifique o que vemos no cliente remoto.

Ajustar firewall

Limpe o firewall, abra a porta, defina a porta para frente e alguns serviços.

root@gateway:~# firewall-cmd --reload
root@gateway:~# firewall-cmd --zone=public --add-port=1025/tcp
root@gateway:~# firewall-cmd --zone=public --add-forward-port=port=1025:proto=tcp:toport=1050
root@gateway:~# firewall-cmd --add-service={http,https,smtp}

Verifique o firewall

root@gateway:~# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: etho0
  sources: 
  services: dhcpv6-client http https smtp ssh
  ports: 1025/tcp
  protocols: 
  masquerade: no
  forward-ports: port=1025:proto=tcp:toport=1050:toaddr=
  source-ports: 
  icmp-blocks: 
  rich rules: 

O resultado

client@client123:~$ telnet gateway.example.org 1025
Trying <IP_of_gateway>...
Connected to gateway.example.org.
Escape character is '^]'.
220 debian10email.debian10email ESMTP Postfix (Debian/GNU)

Temos a 220 debian10email.debian10email ESMTP Postfix (Debian/GNU)linha esperada, então o firewall está encaminhando a porta conforme o esperado.

Conclusão

O encaminhamento entre portas privilegiadas e não privilegiadas é diferente do encaminhamento entre portas não privilegiadas.

Como encaminhamos uma porta sub-1024 privilegiada para uma porta 1024+ não privilegiada com firewalld no Debian 10 Buster? Se houver uma resposta em algum lugar, indique-a. Não conseguimos encontrá-lo.

Responder1

Sua configuração do firewalld parece correta. A máquina que você testou tem permissão para fazer conexões de saída para a porta 25? Tente em alguma outra máquina.

informação relacionada