Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 25 Oct 2001 19:13:02 -0700 (PDT)
From:      Mike Harding <mvh@ix.netcom.com>
To:        vita@fio.cz
Cc:        stable@freebsd.org
Subject:   Re: IPFW/IPSEC/NAT interaction issues with 4.4, Bug ???
Message-ID:  <20011026021302.5EE59134D2@netcom1.netcom.com>
In-Reply-To: <XFMail.20011025140636.vita@fio.cz>
References:   <XFMail.20011025140636.vita@fio.cz>

next in thread | previous in thread | raw e-mail | index | archive | help

This is a feature - if you don't do this, you can't tell decapsulated
traffic from raw traffic.  That was the old config.  If you have a
router, you can filter on the inside interface.  I suggested inserting
the traffic on a fake interface so you could do more interesting
things like NAT, better filtering, etc, but some KAME folk seemed to
get very upset about this, although I couldn't follow the reasoning...

- Mike H.

   X-Envelope-From: vita@fio.cz
   X-Priority: 3 (Normal)
   Date: Thu, 25 Oct 2001 14:06:36 +0200 (CEST)
   Organization: FIO holding
   From: vita@fio.cz
   Sender: owner-freebsd-stable@FreeBSD.ORG
   X-Loop: FreeBSD.ORG

   I have similar configuration and same problem.
   I have compiled several log messages to my kernel
   and it looks as follows:


   After EPS decapsulation packet is re-injected to input queue
   and then processed by ip_input.
   On line 402 ( ip_input.c, 4.4-RELEASE )
   is

   if (ipsec_gethist(m, NULL ))
	   goto pass;

   Condition is true and firewall skipped.

   Is it feature or bug?


   Vita





   On 23-Oct-2001 Barry Irwin wrote:
   > 
   > I have had no luck with this on the ipfw or KAME lists :< maybe someone here
   > can help , I have a horrible feeling that I have stumbled across a rather
   > nasty bug.
   > 
   > 
   > Hi All
   > 
   > I'm hoping someone here can shed some light on a problem I came across this
   > morning. I have two VPN gateways connected to cisco VPN concentrators. 
   > These are running Freebsd 4.2-RELEASE and 4.4-RELEASE.  The 4.2 based
   > gateway has been functioning without hastles for a while now.  however when
   > I configured the 4.4 based system this morning, I ran into the problem that
   > the IP packets seem to ne be being re-injected into the firewall ruleset
   > after the ESP decapsulation.  The firewall rulesets are identicle between
   > the systems.  This re-injection is neccessary for me to be able to then
   > place the packet into a divert socket feeding natd, and from there onto the
   > client machines behind the VPN gateway.
   > 
   > Network diagram is as follows:
   > 
   > [SERVER] - [FW] - [VPNC] --{INTERNET}-- [FBSD VPN GW/FW] -- [CLIENT]
   > 
   > I can connect fine from the firewall itself to the SERVER.  
   > 
   > bash-2.05# telnet S.S.S.22 2300
   > Trying S.S.S.22...
   > Connected to S.S.S.22.
   > Escape character is '^]'.
   > ^]
   > telnet> q
   > Connection closed.
   > 
   > The firewall rules in place at this time are:
   > 00040 allow udp from any 500 to any 500
   > 00045 allow esp from any to any
   > 00046 deny ip from S.S.S.22/24 to any
   > 65535 allow ip from any to any
   > 
   > My understanding is that rule 46 would deny the traffic, however an ipfw
   > show 46 indicates that the rules is NOT matching ANY packets!
   > bash-2.05# ipfw show 45 46
   > 00045       9       896 allow esp from any to any
   > 00046       0         0 deny ip from 203.20.35.0/24 to any
   > 
   > Connections from the client are correctly natted, and go out, responses
   > however also seem to be accepted by the FBSD firewall immediately after
   > decryption.
   > 
   > [bvi@client1 bvi]$ netstat -tn | grep 203
   > tcp        0      1 192.168.10.2:1615       203.20.35.22:2300       SYN_SENT
   > 
   > and on the firewall
   > Oct 23 18:13:38 off-fw1 /kernel: Connection attempt to TCP B.B.B.8:1615 from
   > S.S.S.22:2300
   > Oct 23 18:13:56 off-fw1 last message repeated 2 times
   > Oct 23 18:14:20 off-fw1 /kernel: Connection attempt to TCP B.B.B.8:1615 from
   > S.S.S.22:2300
   > 
   > this proves that the packets are getting accepted by default witout the 
   > reinjection after decoding. B.B.B.8 being the IP address of the firewall,
   > the endpoint of the VPN IPSEC/ESP Tunnel and the Address to which traffic
   > from the client network is natted.  The same setup works fine on the 4.2
   > system.   
   > 
   > My understanding of the packet flow process is:
   > INet -> packet received with ESP -> passed through IP firewall ruleset 
   >      -> packet matching IPSEC SP -> YES - Decrypt and re-inject
   >                                  ->  NO IS it ipsec -> yes discard
   >                                                   -> no re-inject
   >    -> reinjected packets passed through ipfirewall again
   >    -> ipfw passes packets off to NAT and things WORK :>>
   > 
   > With 4.4
   >  The process should work as above, however the packet appears to being 
   > accepted by the host as soon as it has been decrypted. 
   > 
   > Have checked the sysctls for ipsec, and the are the same, except for the
   > adddition of the following one on the 4.4 box (which is undocumented??)
   > net.inet.ipsec.esp_randpad: -1
   > 
   > Full sysctl output from the 4.4 box is:
   > 
   > bash-2.05# sysctl -a | grep ipsec
   > net.inet.ipsec.def_policy: 1
   > net.inet.ipsec.esp_trans_deflev: 1
   > net.inet.ipsec.esp_net_deflev: 1
   > net.inet.ipsec.ah_trans_deflev: 1
   > net.inet.ipsec.ah_net_deflev: 1
   > net.inet.ipsec.ah_cleartos: 1
   > net.inet.ipsec.ah_offsetmask: 0
   > net.inet.ipsec.dfbit: 0
   > net.inet.ipsec.ecn: 0
   > net.inet.ipsec.debug: 1
   > net.inet.ipsec.esp_randpad: -1
   > 
   > NAT is operaring fine for all the connections NOT going through the IPSEC
   > encapsulation.
   > 
   > My thinking is that this is a bug in the IPSEC ESP handling in the version
   > of the KAME stack integrated into 4.4?  Has anyone got similar problems,
   > suggestions for a fix ?
   > 
   > Barry
   > 
   > --
   > Barry Irwin
   > Systems Administrator (Networks and Security)
   > Itouch Labs
   > bvi @ itouchlabs.com
   > 
   > 
   > To Unsubscribe: send mail to majordomo@FreeBSD.org
   > with "unsubscribe freebsd-ipfw" in the body of the message
   > 
   > 
   > 
   > ----- End forwarded message -----
   > 
   > 
   > To Unsubscribe: send mail to majordomo@FreeBSD.org
   > with "unsubscribe freebsd-stable" in the body of the message


   To Unsubscribe: send mail to majordomo@FreeBSD.org
   with "unsubscribe freebsd-stable" in the body of the message


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011026021302.5EE59134D2>