Luca Bertoncello lucabert@lucabert.de (So 19 Feb 2023 18:48:08 CET):
Am 19.02.2023 um 13:10 schrieb Heiko Schlittermann:
Alternativ, wenn Dir Bind auf 0.0.0.0, kombiniert mit Firewall zu gefährlich erscheint, dann kannst Du immer noch mit socat einen Listener auf die IP tun, die Du brauchst, und das dann zu 127.0.0.1 schicken.
Ich werde überlegen... Ich habe wirklich gehofft, dass ich einfach einen dummen Fehler machen und dass es über IPTables geht...
Vielleicht geht es ja. Mir kommt es nicht unmöglich vor. Die Herausforderung ist aber, dass der Netzwerkstack kein Paket mit einer Remote-Absender-IP und der Ziel-IP 127.0.0.1 nehmen wird. Selbst wenn Du es im DNAT auf 127.0.0.1 umschreibst.
REDIRECT scheint ja nur auf die primäre IP des Interfaces, über die das Paket reinkommt, umzuleiten. Jetzt könntest Du die 127.0.0.1 drauf tun. Aber denn bist Du wieder beim Absatz von oben.
Oder Du machst tatsächlich DNAT, aber auch dann bist Du wieder beim Absatz von oben.
Eigentlich. Es gibt da irgendwo in /proc/net/… was.
Oder einfach in einer Systemd-Unit socat starten
ExecStart=socat TCP-LISTEN:3306,bind=<VIP-IP>,range=<VPN-Net/Mask>,reuseaddr,fork TCP:127.0.0.1:3306
Die Options sind jetzt aus dem Kopf, ich glaube, die heißen so ähnlich, kannst Du selbst in der Manpage von socat finden.
Aber mal ehrlich, ich würde den Listener auf 0.0.0.0 setzen und den Rest in der Firewall erledigen. Und zusätzlich vielleicht in den GRANT-Tables.