[Openswan Users] OpenSWAN Firewall Transport & Tunnel
Paul Wouters
paul at xelerance.com
Tue Nov 23 10:21:09 EST 2010
On Tue, 23 Nov 2010, JCotton wrote:
> Below I have extracted the relevant firewall rules. The below ruleset works however I do not understand why I have to set
> "--mode transport" in the INPUT chain instead of "--mode tunnel". If I set"--mode = tunnel" I cannot ping the gateway or the
> hosts behind that gateway. I have been looking for documentation explaining how netfilter and ipsec stack work together but
> the only docs I have found have been vague (including the wiki).
>
> Setup:
> Our setup is far from ideal but I had to wok with what we had.
> Subnet -> Openswan(NAT,172.16.0.0/24) -> Cable Modem (NAT, 10.1.1.0/24) -> Internet <- Cable Modem (NAT, 10.1.10.0/24) <-
> Openswan(NAT, 172.16.2.0/24) <- Subnet
A subnet to subnet connection is always tunnel mode (which is also the default for openswan unless
type=transport is defined. You in fact ,specify that default type=tunnel explicitely.
The "transport" you see in the ip xfrm output are not for the SA endpoints. I *think* they
are for the "ipsec firewall" that Openswan does not use, and you'll see them for the "0.0.0.0/0
ranges only.
Paul
> ----------------------------------------------------------
> # IPSec (IKE, ESP, NAT-T)
> $IPTABLES -A INPUT -p udp --dport 500 -j ACCEPT
> $IPTABLES -A INPUT -p esp -j ACCEPT
> $IPTABLES -A INPUT -p udp --dport 4500 -j ACCEPT
>
> # Accept connections from various subnets
> $IPTABLES -A INPUT -i $INT_INF -s 172.16.2.0/24 -m state --state NEW -j ACCEPT
> #$IPTABLES -A INPUT -m policy --dir in --pol ipsec --mode tunnel --tunnel-src 172.16.0.0/24 -j ACCEPT
> #$IPTABLES -A INPUT -m policy --dir in --pol ipsec --mode tunnel --tunnel-src 172.16.1.0/24 -j ACCEPT
> #$IPTABLES -A INPUT -m policy --dir in --pol ipsec --mode tunnel -j ACCEPT
> $IPTABLES -A INPUT -m policy --dir in --pol ipsec --mode transport -j ACCEPT
>
>
> # Allow forwarding of connections for various subnetworks
> $IPTABLES -A FORWARD -i $INT_INF -s 172.16.2.0/24 -m state --state NEW -j ACCEPT
> $IPTABLES -A FORWARD -m policy --dir in --pol ipsec --mode tunnel -s 172.16.0.0/24 -j ACCEPT
> $IPTABLES -A FORWARD -m policy --dir in --pol ipsec --mode tunnel -s 172.16.1.0/24 -j ACCEPT
>
>
> -----------------------------------------------------------------------
> ip xfrm policy:
> src 172.16.1.0/24 dst 172.16.2.0/24
> dir in priority 2344
> tmpl src xx.xx.xx.xx dst 10.1.1.3
> proto comp reqid 16386 mode tunnel
> level use
> tmpl src 0.0.0.0 dst 0.0.0.0
> proto esp reqid 16385 mode transport
> src 172.16.1.0/24 dst 172.16.2.0/24
> dir fwd priority 2344
> tmpl src xx.xx.xx.xx dst 10.1.1.3
> proto comp reqid 16386 mode tunnel
> level use
> tmpl src 0.0.0.0 dst 0.0.0.0
> proto esp reqid 16385 mode transport
> src 172.16.2.0/24 dst 172.16.1.0/24
> dir out priority 2344
> tmpl src 10.1.1.3 dst 68.57.21.118
> proto comp reqid 16386 mode tunnel
> tmpl src 0.0.0.0 dst 0.0.0.0
> proto esp reqid 16385 mode transport
> src 172.16.0.0/24 dst 172.16.2.0/24
> dir in priority 2344
> tmpl src xx.xx.xx.xx dst 10.1.1.3
> proto comp reqid 16390 mode tunnel
> level use
> tmpl src 0.0.0.0 dst 0.0.0.0
> proto esp reqid 16389 mode transport
> src 172.16.0.0/24 dst 172.16.2.0/24
> dir fwd priority 2344
> tmpl src xx.xx.xx.xx dst 10.1.1.3
> proto comp reqid 16390 mode tunnel
> level use
> tmpl src 0.0.0.0 dst 0.0.0.0
> proto esp reqid 16389 mode transport
> src 172.16.2.0/24 dst 172.16.0.0/24
> dir out priority 2344
> tmpl src 10.1.1.3 dst xx.xx.xx.xx
> proto comp reqid 16390 mode tunnel
> tmpl src 0.0.0.0 dst 0.0.0.0
> proto esp reqid 16389 mode transport
>
> ----------------------------------------------------------------
> ipsec.conf:
> version 2.0
>
> config setup
> interfaces=%defaultroute
> protostack=netkey
> nat_traversal=yes
> virtual_private=%v4:10.0.0.0/8,%v4:172.16.0.0/12,%v4:192.168.0.0/24,$v:!172.16.2.0/24
> nhelpers=0
>
> conn conn1
> type=tunnel
> authby=secret
> pfs=yes
> ike=aes256-sha1-1536
> esp=aes256-sha1-1536
> keyexchange=ike
> compress=yes
> keyingtries=3
> rekey=yes
> dpddelay=30
> dpdtimeout=30
> dpdaction=restart
> left=10.1.1.3
> leftid=@ID
> leftsourceip=172.16.2.1
> leftsubnet=172.16.2.0/24
> right=xx.xx.xx.xx
> rightid=@ID
> rightsourceip=172.16.0.1
> rightsubnet=172.16.0.0/24
> auto=start
>
> *connection 2 is identical to the 1st except for the ids & subnets
>
>
>
More information about the Users
mailing list