TCPDUMP moon# tcpdump -i eth0 not port ssh and not port domain and not arp > /tmp/tcpdump.log 2>&1 & alice# tcpdump -i eth0 not port ssh and not port domain and not arp > /tmp/tcpdump.log 2>&1 & PRE-TEST moon# cat /etc/ipsec.connections /etc/ipsec.host /etc/ipsec.peers/* # /etc/ipsec.connections - connection definitions conn %default ikelifetime=60m keylife=20m rekeymargin=3m keyingtries=1 include /etc/ipsec.host include /etc/ipsec.peers/* # /etc/ipsec.host - my host configuration conn %default left=192.168.0.1 leftsubnet=10.1.0.0/16 leftsourceip=10.1.0.1 leftnexthop=%direct leftcert=moonCert.pem leftid=@moon.strongswan.org leftfirewall=yes # /etc/ipsec.peers/ipsec.carol - connection from carol conn rw-carol right=%any rightid=carol@strongswan.org rightsourceip=10.3.0.1 auto=add # /etc/ipsec.peers/ipsec.dave - connection from dave conn rw-dave right=%any rightid=dave@strongswan.org rightsourceip=10.3.0.2 auto=add moon# /etc/init.d/iptables start 2> /dev/null * Caching service dependencies ... [ ok ] * Starting firewall ... [ ok ] carol# /etc/init.d/iptables start 2> /dev/null * Starting firewall ... [ ok ] dave# /etc/init.d/iptables start 2> /dev/null * Caching service dependencies ... [ ok ] * Starting firewall ... [ ok ] carol# ipsec start Starting strongSwan 4.3.6 IPsec [starter]... dave# ipsec start Starting strongSwan 4.3.6 IPsec [starter]... moon# ipsec start --debug-all Starting strongSwan 4.3.6 IPsec [starter]... | Default route found: iface=eth0, addr=192.168.0.1, nexthop=192.168.0.254 | Loading config setup | plutodebug=control | crlcheckinterval=180 | strictcrlpolicy=no | charonstart=no | Loading conn %default | ikelifetime=60m | keylife=20m | rekeymargin=3m | keyingtries=1 | Loading conn %default | left=192.168.0.1 | leftsubnet=10.1.0.0/16 | leftsourceip=10.1.0.1 | leftnexthop=%direct | leftcert=moonCert.pem | leftid=@moon.strongswan.org | leftfirewall=yes | Loading conn 'rw-dave' | right=%any | rightid=dave@strongswan.org | rightsourceip=10.3.0.2 | auto=add | Loading conn 'rw-carol' | right=%any | rightid=carol@strongswan.org | rightsourceip=10.3.0.1 | auto=add | Found netkey IPsec stack carol# sleep 2 carol# ipsec up home 002 "home" #1: initiating Main Mode 104 "home" #1: STATE_MAIN_I1: initiate 003 "home" #1: ignoring Vendor ID payload [strongSwan] 003 "home" #1: received Vendor ID payload [XAUTH] 003 "home" #1: received Vendor ID payload [Dead Peer Detection] 106 "home" #1: STATE_MAIN_I2: sent MI2, expecting MR2 002 "home" #1: we have a cert and are sending it upon request 108 "home" #1: STATE_MAIN_I3: sent MI3, expecting MR3 002 "home" #1: Peer ID is ID_FQDN: 'moon.strongswan.org' 002 "home" #1: crl not found 002 "home" #1: certificate status unknown 002 "home" #1: ISAKMP SA established 004 "home" #1: STATE_MAIN_I4: ISAKMP SA established 002 "home" #1: sending ModeCfg request 002 "home" #1: parsing ModeCfg reply 002 "home" #1: setting virtual IP source address to 10.3.0.1 002 "home" #1: received ModeCfg reply, established 004 "home" #1: STATE_MODE_CFG_I2: received ModeCfg reply, established 002 "home" #2: initiating Quick Mode PUBKEY+ENCRYPT+TUNNEL+PFS+UP {using isakmp#1} 112 "home" #2: STATE_QUICK_I1: initiate 002 "home" #2: sent QI2, IPsec SA established {ESP=>0xf9288cbe <0x74d49657} 004 "home" #2: STATE_QUICK_I2: sent QI2, IPsec SA established {ESP=>0xf9288cbe <0x74d49657} dave# ipsec up home 002 "home" #1: initiating Main Mode 104 "home" #1: STATE_MAIN_I1: initiate 003 "home" #1: ignoring Vendor ID payload [strongSwan] 003 "home" #1: received Vendor ID payload [XAUTH] 003 "home" #1: received Vendor ID payload [Dead Peer Detection] 106 "home" #1: STATE_MAIN_I2: sent MI2, expecting MR2 002 "home" #1: we have a cert and are sending it upon request 108 "home" #1: STATE_MAIN_I3: sent MI3, expecting MR3 002 "home" #1: Peer ID is ID_FQDN: 'moon.strongswan.org' 002 "home" #1: crl not found 002 "home" #1: certificate status unknown 002 "home" #1: ISAKMP SA established 004 "home" #1: STATE_MAIN_I4: ISAKMP SA established 002 "home" #1: sending ModeCfg request 002 "home" #1: parsing ModeCfg reply 002 "home" #1: setting virtual IP source address to 10.3.0.2 002 "home" #1: received ModeCfg reply, established 004 "home" #1: STATE_MODE_CFG_I2: received ModeCfg reply, established 002 "home" #2: initiating Quick Mode PUBKEY+ENCRYPT+TUNNEL+PFS+UP {using isakmp#1} 112 "home" #2: STATE_QUICK_I1: initiate 002 "home" #2: sent QI2, IPsec SA established {ESP=>0x87bbb305 <0xfc24b0c5} 004 "home" #2: STATE_QUICK_I2: sent QI2, IPsec SA established {ESP=>0x87bbb305 <0xfc24b0c5} carol# sleep 1 TEST carol# cat /var/log/auth.log | grep 'setting virtual IP source address to 10.3.0.1' [YES] Feb 27 23:47:18 carol pluto[20841]: "home" #1: setting virtual IP source address to 10.3.0.1 carol# ipsec status | grep 'home.*STATE_QUICK_I2.*IPsec SA established' [YES] 000 #2: "home" STATE_QUICK_I2 (sent QI2, IPsec SA established); EVENT_SA_REPLACE in 943s; newest IPSEC; eroute owner carol# ping -c 1 10.1.0.10 | grep '64 bytes from 10.1.0.10: icmp_seq=1' [YES] 64 bytes from 10.1.0.10: icmp_seq=1 ttl=63 time=3.12 ms dave# cat /var/log/auth.log | grep 'setting virtual IP source address to 10.3.0.2' [YES] Feb 27 23:47:23 dave pluto[9260]: "home" #1: setting virtual IP source address to 10.3.0.2 dave# ipsec status | grep 'home.*STATE_QUICK_I2.*IPsec SA established' [YES] 000 #2: "home" STATE_QUICK_I2 (sent QI2, IPsec SA established); EVENT_SA_REPLACE in 948s; newest IPSEC; eroute owner dave# ping -c 1 10.1.0.10 | grep '64 bytes from 10.1.0.10: icmp_seq=1' [YES] 64 bytes from 10.1.0.10: icmp_seq=1 ttl=63 time=1.46 ms moon# ipsec status | grep 'rw-carol.*STATE_QUICK_R2.*IPsec SA established' [YES] 000 #2: "rw-carol"[1] 192.168.0.100 STATE_QUICK_R2 (IPsec SA established); EVENT_SA_REPLACE in 1103s; newest IPSEC; eroute owner moon# ipsec status | grep 'rw-dave.*STATE_QUICK_R2.*IPsec SA established' [YES] 000 #4: "rw-dave"[1] 192.168.0.200 STATE_QUICK_R2 (IPsec SA established); EVENT_SA_REPLACE in 1108s; newest IPSEC; eroute owner moon# killall tcpdump moon# cat /tmp/tcpdump.log | grep 'IP carol.strongswan.org > moon.strongswan.org: ESP' [YES] 23:47:26.649182 IP carol.strongswan.org > moon.strongswan.org: ESP(spi=0xf9288cbe,seq=0x1), length 132 moon# cat /tmp/tcpdump.log | grep 'IP moon.strongswan.org > carol.strongswan.org: ESP' [YES] 23:47:26.650921 IP moon.strongswan.org > carol.strongswan.org: ESP(spi=0x74d49657,seq=0x1), length 132 moon# cat /tmp/tcpdump.log | grep 'IP dave.strongswan.org > moon.strongswan.org: ESP' [YES] 23:47:27.135853 IP dave.strongswan.org > moon.strongswan.org: ESP(spi=0x87bbb305,seq=0x1), length 132 moon# cat /tmp/tcpdump.log | grep 'IP moon.strongswan.org > dave.strongswan.org: ESP' [YES] 23:47:27.136345 IP moon.strongswan.org > dave.strongswan.org: ESP(spi=0xfc24b0c5,seq=0x1), length 132 alice# killall tcpdump alice# cat /tmp/tcpdump.log | grep 'IP carol1.strongswan.org > alice.strongswan.org: ICMP echo request' [YES] 23:47:26.588529 IP carol1.strongswan.org > alice.strongswan.org: ICMP echo request, id 44625, seq 1, length 64 alice# cat /tmp/tcpdump.log | grep 'IP alice.strongswan.org > carol1.strongswan.org: ICMP echo reply' [YES] 23:47:26.589748 IP alice.strongswan.org > carol1.strongswan.org: ICMP echo reply, id 44625, seq 1, length 64 alice# cat /tmp/tcpdump.log | grep 'IP dave1.strongswan.org > alice.strongswan.org: ICMP echo request' [YES] 23:47:27.073754 IP dave1.strongswan.org > alice.strongswan.org: ICMP echo request, id 27428, seq 1, length 64 alice# cat /tmp/tcpdump.log | grep 'IP alice.strongswan.org > dave1.strongswan.org: ICMP echo reply' [YES] 23:47:27.073827 IP alice.strongswan.org > dave1.strongswan.org: ICMP echo reply, id 27428, seq 1, length 64 POST-TEST moon# ipsec stop Stopping strongSwan IPsec... carol# ipsec stop Stopping strongSwan IPsec... dave# ipsec stop Stopping strongSwan IPsec... moon# /etc/init.d/iptables stop 2> /dev/null * Stopping firewall ... [ ok ] carol# /etc/init.d/iptables stop 2> /dev/null * Stopping firewall ... [ ok ] dave# /etc/init.d/iptables stop 2> /dev/null * Stopping firewall ... [ ok ] carol# ip addr del 10.3.0.1/32 dev eth0 dave# ip addr del 10.3.0.2/32 dev eth0 moon# rm /etc/ipsec.connections /etc/ipsec.host moon# rm -r /etc/ipsec.peers