Source Nat mit pf

CozItsCool

New Member
Hallo,

ich habe mit isakmpd einen Tunnel zwischen 2 Intranets etabliert

192.168.1.0/24 -- 192.168.1.254 | extip1 <--Tunnel -->
etxtip2 192.168.2.254 -- 192.168.2.0/24

nun kann ich mit

Code:
ping -I 192.168.1.254 192.168.2.254
das andere VPN Gateway anpingen.

Mit Source-NAT wollte ich nun dem pf beibringen, bei Zugriffen auf das
Extranet vom Gate aus die interne IP des Gates als Quelle zu verwenden.

Dann würde auch ping ohne -I funktionieren.

Habe aber im pf-FAQ im NAT Bereich nichts dazu gefunden.

Kann jemand helfen.

Code:
nat on $extip1 pass to 192.168.2.254 -> 192.168.1.254
tut's nicht.

Linux hat für sowas

Code:
iptables -j SNAT --to-source 192.168.1.254
 
Wie eingangs erwähnt hab' ich genau diese FAQ gelesen.

Ich möchte bei Anfragen auf das Extranet direkt vom VPN-Gate
als Source die interne IP des Gates haben, nicht die externe,
denn dann werden die Pakete nicht geroutet!
nat pass on $ext_if from $my_net to $his_net -> ($ext_if)
Dein Vorschlag kann nicht funktionieren, da er ja auf die externe IP umsetzt!

Das Problem ist mit meinem Ping-Beispiel gut zu demonstrieren.
 
du hattest aber geschrieben:
nat on $extip1 pass to 192.168.2.254 -> 192.168.1.254
und das kann nicht funktionieren, da der aufbau falsch ist.

nach on kommt ein interface, keine IP.

du hast sehr wenig informationen gegeben.. ich probiers trotzdem nochmal:
nat on $vpn_if from $my_net to $his_net -> $my_gateway

oder in deinem fall (falls du makros nicht magst):
nat on $vpn_if from 192.168.1.0/24 to 192.168.2.0/24 -> 192.168.1.254

(vpn_if ist das interface, über das der vpn-tunnel läuft)

auf bald
oenone
 
Zuletzt bearbeitet:
Vielen Dank für Deine prompte Antwort. Funktioniert aber leider auch
nicht. Ich hol' mal ein wenig weiter aus.

Zwei Intranets sind im TUNNEL mode über 2 VPN-Gates via isakmpd
miteinander verbunden und können kommunizieren. Im tunnel
mode können aber die VPN-Gateways selbst nicht mit dem jeweils
anderen Intranet kommunizieren, weil Pakete auf dem Gateway mit
der externen IP des Gates erstellt werden, für die keine routing Regel
durch das VPN existiert. Im transport modus hingegen würde das
funktionieren, aber darum geht es hier nicht.

Kann man dem Kommando vorgeben, an welches Interface es sich
bindet, um Pakete abzuschicken ist das Problem schnell gelöst, wie
etwa beim ping

ping -i $intif ip.des.extra.nets.

Nun soll snort auf ein Gateway in die Datenbank auf einem Host
im extranet loggen. Es generiert seine Pakete mit der externen
IP und da liegt das Problem.

Unter Linux konnte man das durch Source-Nat in der Prerouting-Chain
umgehen. Das gleiche suche ich jetzt als NAT-Regel für pf.

Was der Sache am nächsten kommt, wäre

nat on $vpnif from $vpnif:0 to 192.168.2.0/24 -> 192.168.1.254

geht aber leider nicht! Die Regel müßte greifen, bevor das Paket
überhaupt am $vpnif ankommt!
 
Zuletzt bearbeitet:
Hab's mir kurz reingezogen.

Findet sich nur nix für meinen Fall.

Das oben erwähnte VPN setzt ja auch auf ipsec/isakmpd
und nicht auf ssl/openvpn auf. War trotzdem
interessant genug für die Bookmarks :)
 
Zurück
Oben