Date: Tue, 10 Apr 2001 18:14:07 +0100 From: Brian Candler <B.Candler@pobox.com> To: freebsd-questions@freebsd.org, freebsd-security@freebsd.org Subject: Interaction between ipfw, IPSEC and natd Message-ID: <20010410181407.A1011@linnet.org>
next in thread | raw e-mail | index | archive | help
Is there any documentation on how ipfw, natd and IPSEC interact with each other? In particular, - what is the order of processing of inbound and outbound packets? - when packets are re-injected by natd, where in the whole system are they re-injected? - do packets reinjected by natd still match 'in via <interface>' or 'out via <interface>'? (OK, I could determine this one experimentally, but I'd still like to see it documented :-) I see that by default FreeBSD puts its natd divert rule right at the very top of the ruleset, but I have found that this stops IPSEC processing working. I can make it work by putting natd lower down: e.g. add 01000 permit ip from 10.0.0.0/8 to 10.0.0.0/8 # private addrs add 02000 divert 8668 ip from any to any via xl0 # external i/face Here, subnets of 10.0.0.0/8 are behind the 'private' interface and also the remote endpoints of IPSEC tunnels; there are IPSEC SA's which define them exactly. However in this case I find it difficult to add anti-spoofing rules on external interfaces without breaking either IPSEC or NAT. Note that even in the presence of IPSEC, anti-spoofing rules _are_ still required. For example, I have an SA which says spdadd 10.0.0.0/20[any] 10.0.0.0/20[any] any -P out none; spdadd 10.0.0.0/20[any] 10.0.0.0/20[any] any -P in none; (where 10.0.1.0/24 is the locally-attached subnet and other downstream subnets are within the /20). This is in order to allow local, non-encrypted traffic to be routed via this box. However the presence of this SA means that I really need an anti-spoofing filter on the public interface to prevent packets matching this null SA being injected from outside. In the end, I want to build a firewall with: - antispoofing on all interfaces - various IPSEC tunnels to distant subnets of private network - natd for sessions going out of "public" interface - the ability to add other ipfw policy controls and not only should it work, but I should also have some confidence that it is actually secure and doing what I intend - which means I really need to understand how all these bits fit together :-) Thanks, Brian. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010410181407.A1011>