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(a)lucabert.de)