nat, ipsec und pf



Ich habe hier (FreeBSD 7) ein pf(4), das Pakete filtert, NAT macht, mit
route-to ins Routing eingreift etc. Weiters habe ich ipsec, das mir zu
einem befreundeten, privaten Netz einen Tunnel sichert. Funktioniert
soweit.

Jetzt habe ich einen weiteren Tunnel, der aber bei mir (und am anderen
Ende) geNATete (sorry. Adreßgefälschte?) Endpunkte haben soll, da unser
beide private Netze die jeweilige Gegenseite nichts angehen. (bzw.
einfach nicht geroutet werden sollen)

Nun zum Problem: Wenn ich wie gewohnt in der pf.conf ein "nat on gifx
from drinnen to drüben -> (gifx)" reinschreibe und racoon/setkey einen
tunnel "spdadd mein_endpunkt sein_endpunkt any -P out ipsec
esp/tunnel/meine_öffentliche-seine_öffentliche/require;" (und umgekehrt)
bauen lasse, werden zwar die Pakete richtig geroutet, neNATed und
gekapselt, aber nicht verschlüsselt. Obwohl ein Tunnel(SA) aufgebaut
wird.

Wenn ich man 4 ipsec (OpenBSD 4.3) richtig lese, dann müssten die zu
verschlüsselnden Pakete identifiziert werden, bevor sie NAT passieren:

NAT can also be applied to enc# interfaces, but special care should be
taken because of the interactions between NAT and the IPsec flow match-
ing, especially on the packet output path. Inside the TCP/IP stack,
packets go through the following stages:

UL/R -> [X] -> PF/NAT(enc0) -> IPsec -> PF/NAT(IF) -> IF
UL/R <-------- PF/NAT(enc0) <- IPsec <- PF/NAT(IF) <- IF

With IF being the real interface and UL/R the Upper Layer or Routing
code. The [X] stage on the output path represents the point where the
packet is matched against the IPsec flow database (SPD) to determine if
and how the packet has to be IPsec-processed. If, at this point, it is
determined that the packet should be IPsec-processed, it is processed by
the PF/NAT code.

Allerdings haben sie da noch die privaten Absenderadressen, für die es
keine passende SPD gibt. Denn racoon matcht ja gegen die beiderseits
bekannten, publizierten Tunnelendpunkte, die eben nicht privat sind,
somit definieren die SPDs die Paketselektion _nach_ dem NAT.

Irgendwie erinnert mich das an diese Situation:
<http://groups.google.com/group/lucky.openbsd.misc/browse_thread/thread/
3ee49d6085755642/e774693d73887e8d?hl=en&lnk=st&q=ipsec+pf+encrypt+nat+sp
d+problem#e774693d73887e8d>

Was mach ich jetzt?

cheers
Heimo

--
stell dir vor, es ist krieg und keiner geht hin.
.



Relevant Pages

  • Problem NAT & IPSEC
    ... >damit er die Pakete auf seiner externen Seite mit IPsec ... IPSEC durch NAT ist problematisch. ... welches Port 4500 und UDP verwendet um das ...
    (microsoft.public.de.german.windows.server.networking)
  • Re: L2TP/IPSec Verbindung läuft mit XP SP2 nicht mehr
    ... In XPSP2 the IPsec driver needs a registry setting when either the ... server or workstation are behind a NAT gateway. ... 1- Client initiates to a server that is behind the NAT ... > Peer Private Addr ...
    (microsoft.public.de.german.windowsxp.networking)
  • Re: IPsec + NAT + mehrere Tunnelendpunkte
    ... Ist der VPN-Endpunkt ein Cisco Concentrator oder eine PIX? ... Und warum macht er dort ueberhaupt doppelt NAT? ... Session-Keys des IPSEC Tunnels verwendet. ...
    (de.comp.security.firewall)
  • Re: VPN From W2K/Pro to W2K Server Doesn;t Work Through Firewall
    ... My belief is that your NAT ... My understanding is that IPSec AH protocol does not work with NAT devices ... IPSec operates in either one of two modes - transport mode or tunnel mode. ... provide a VPN remote access solution. ...
    (microsoft.public.win2000.security)
  • Re: IPSEC VPN NAT
    ... ISA/VPN and try to reproduce the setup, ... There are a number of problems with using IPsec over NAT devices. ... All VPN clients must be using the IPsec NAT-T VPN client. ...
    (microsoft.public.isaserver)