iptables/nftables; portforwarding; routing

Begonnen von oberlon, 16 Januar 2021, 23:38:07

Vorheriges Thema - Nächstes Thema

oberlon

Hallo zusammen,

ich dachte ich stelle die Frage hier im Forum weil hier doch viele erfahrene Linux Nutzer unterwegs sind und mir vielleicht jemand weiterhelfen kann.

Was mal war:
Ich habe daheim einen kleinen Server laufen der web/mail/ssh als Dienste für mich anbietet. Bis Mitte Dezember hatte ich ein 1:1 CGNat bei Pyur. Gleichzeitig habe ich einen Server bei Netcup der das selbstgebastelte Dyndns für mich erledigt hat. War super. Nextcloud, IMAP und FHEM direkt von überall erreichbar.

Was sich geändert hat:
Pyur hat irgendwas gedreht. Bin in einem komplett anderen IP Segment und 1:1 geht nicht mehr. Alle vom lokalem Server angebotene Dienste sind nicht mehr erreichbar.  >:(

Erster Workaround:
Auf meinem lokalen Server habe ich eine neue VM angelegt die ein Wireguard VPN zu meinem Netcup Server aufbaut. DNS so umgeschrieben, dass wichtige Dienste auf den Netcup Server zeigt und von dort der Traffic via Portforwarding auf den lokalen Wireguard Server umgelenkt wird. Von dort wird wieder via Portforwarding auf einen internen VM Server weitergeleitet.

Problem #1:
Bei Portforwarding muss man nicht nur den Hinweg betrachten. Zurück wollte er natürlich über die Default Route (Kabel-Anschluss von Pyur) und das funktioniert natürlich nicht.
Also auf dem Netcup Server und meinem internen Wireguard Server nftables so geändert, dass er für die Pakete auch ein SNAT bzw. aktuell ein Masquerade macht.

-> Hat soweit erstmal funktioniert.

Big Problem #2:
SPAM!!! Und ich war es :( Alle Anfragen an meinen MX gingen über den Netcup Server auf den Wireguard Server zu meinen Mail Server.
Der Mailserver war - gewollt - so konfiguriert, dass er als Smarthost Mails aus meinem lokalem Netzwerk annimmt. Durch das ganze SNAT/Masq sah es für Exim so aus, als ob der Absender-Host immer eine lokale Adresse hat. Absender-IP aller Mailanfragen war dann halt der Wireguard Server. Dumm gelaufen, tausende Mails im Spool.

Nun meine Frage:
Geht es anders? Im Prerouting wird die Destination neu geschrieben. Im Postrouting dann halt SNat/Masq fürs routing. Dadurch habe ich dann die "falsche" Absender-Adresse im Log.
Kann man Pakete/Connections via iptables/nftables so markieren (ct, mangle usw.) das ein SNat nicht nötig ist und das routing zurück beeinflusst werden kann?

Wer da eine Lösung hat, oder tiefere Kenntnisse bei solchen Problemen... Bitte meldet euch!

Grüße!

Wernieman

Ich habe jetzt bezüglich Linux-Kernel-Firewall auch keine weitere Idee ... aber persönlich würde ich in eine andere Richtung denken: Kannst Du von Deine Mail-VM einen ssh-Tunnel in Richtugn deines Servers aufbauen? Und dann alles durch diesen Tunnel schicken? ssh kann super Port-Forwarding machen ...

Wenn es ein Weg für die Währe, dann noch als Stichwort autossh, macht gleich den nötigen Watchdog mit ...

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

pcbastler

Anderer Ansatz: Muss der Mailserver direkt aus dem Internet erreichbar sein? Wenn das Wireguard funktioniert könnten die Clients auch per VPN zugreifen.