Hallo Leute!
Ich bin derzeit mit meiner neuen Firewall beschäftigt... Ich habe deswegen einen BananaPI gekauft und bin dabei alles dort zu portieren. Es ist aber wirklich viel zu tun, denn aktuell ist mein PC "direkt" von Internet erreichbar (nur einige Ports und nur von einigen IPs, natürlich) und später wird der PC hinter den BananaPI stehen, muss aber weiterhin erreichbar sein.
Gut, was ich brauche ist eine Portweiterleitung, natürlich! Allerdings möchte ich die Quell-IP behalten, so dass ich zB in Apache sehen kann, wer die Anfrage schickt und nicht die IP des BananaPI...
Natürlich darf ich deswegen kein MASQUERADE nutzen, denn sein Zweck ist genau die Adressen zu maskieren.
Ich habe ein paar Tests gemacht und folgendes bringt die Pakete zum Ziel:
- 1.2.3.4 ist die IP des Rechners, der eine SSH-Verbindung starten darf - 192.168.10.2 ist die IP meines Rechners - 2.3.4.5 ist die öffentliche IP des Routers (also die IP der PPP-Schnittstelle)
/sbin/iptables -A FORWARD -p tcp --dport 22 -j ACCEPT /sbin/iptables -t nat -A PREROUTING -p tcp -s 1.2.3.4 --dport 22022 -j DNAT --to-destination 192.168.10.2:22 /sbin/iptables -t nat -A POSTROUTING -s 192.168.10.2 -o dsl0 -j SNAT --to-source 2.3.4.5
Das Problem ist, dass ich in der SNAT die IP der PPP-Schnittstelle angeben muss, und diese ändert sich... Schon gut, ich konnte ein Skript basteln, das beim Starten der PPP-Verbindung die Regel umschreibt, aber wenn eine bessere Lösung gäbe, wäre es mir lieber...
Nun die Frage: gibt es eine bessere (= einfachere) Lösung?
Besten Dank Luca Bertoncello (lucabert@lucabert.de)