Wie leitet man mit Firewalld einen privilegierten Sub-1024-Port an einen nicht privilegierten 1024+-Port weiter?

Wie leitet man mit Firewalld einen privilegierten Sub-1024-Port an einen nicht privilegierten 1024+-Port weiter?

Die Frage

Wie leitet man mit Firewalld einen privilegierten Sub-1024-Port an einen nicht privilegierten 1024+-Port weiter?

Der Grund

Warum machen wir das? Wir möchten den nicht privilegierten Port 1050 auf dem Gateway wechseln und einen anderen Upstream-Mailserver verwenden können. Um beispielsweise eine andere Spam-Lösung zu testen, verwenden Sie Port 1051, um E-Mails an einen anderen Mailserver mit einer anderen Spam-Filterlösung zu senden.

Die Mailserver stellen beim Start automatisch eine Verbindung zum Gateway her. Die automatische Verbindung kann nur auf nicht privilegierten Ports mit der Nummer 1024+ erfolgen.

Das Layout und Setup

Layout

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

Firewall einrichten

Löschen Sie die Firewall, öffnen Sie den Port, richten Sie die Portweiterleitung ein und fügen Sie einige Dienste hinzu.

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}

Firewall überprüfen

Bestätigen Sie die Firewall-Einstellungen ...

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: 

Dies haben wir in den Firewall-Regeln erwartet.

Das Ergebnis

Dies ist, was wir erhalten, wenn wir eine Telnet-Verbindung zum Upstream-Mailserver auf dem Gateway herstellen ...

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

Dies ist, was wir von einem Remote-Client-Computer erhalten ...

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

Wir erwarten, die 220 debian10email.debian10email ESMTP Postfix (Debian/GNU)Linie auch zu sehen, aber das ist nicht der Fall.

Gesundheitsüberprüfung...

Der Test

Nur um zu bestätigen, dass die Portweiterleitungsregeln richtig geschrieben sind, wir...

  • Öffnen Sie Port 1025 der Firewall.
  • Portweiterleitung 1025 bis 1050
  • Und dann überprüfen Sie, was wir auf dem Remote-Client sehen.

Firewall anpassen

Löschen Sie die Firewall, öffnen Sie den Port, richten Sie die Portweiterleitung und einige Dienste ein.

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}

Firewall überprüfen

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: 

Das Ergebnis

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)

Wir haben die erwartete 220 debian10email.debian10email ESMTP Postfix (Debian/GNU)Leitung, daher führt die Firewall die Portweiterleitung wie erwartet durch.

Abschluss

Die Weiterleitung zwischen privilegierten und nicht privilegierten Ports unterscheidet sich von der Weiterleitung zwischen nicht privilegierten Ports.

Wie leiten wir mit Firewalld unter Debian 10 Buster einen privilegierten Sub-1024-Port auf einen nicht privilegierten 1024+-Port weiter? Wenn es irgendwo eine Antwort gibt, weisen Sie bitte darauf hin. Wir konnten sie nicht finden.

Antwort1

Ihre Firewalld-Konfiguration sieht korrekt aus. Darf die Maschine, von der aus Sie getestet haben, ausgehende Verbindungen zu Port 25 herstellen? Versuchen Sie es von einer anderen Maschine aus.

verwandte Informationen