/testing/guestbin/swan-prep
west #
 # confirm that the network is alive
west #
 ../../pluto/bin/wait-until-alive -I 192.0.1.254 192.0.2.254
destination -I 192.0.1.254 192.0.2.254 is alive
west #
 # make sure that clear text does not get through or go out
west #
 iptables -A INPUT -i eth1 -s 192.0.2.0/24 -j LOGDROP
west #
 iptables -I INPUT -m policy --dir in --pol ipsec -j ACCEPT
west #
 iptables -A OUTPUT -o eth1 -p icmp -j LOGDROP
west #
 iptables -I OUTPUT -m policy --dir out --pol ipsec -j ACCEPT
west #
 ipsec start
Redirecting to: systemctl start ipsec.service
west #
 /testing/pluto/bin/wait-until-pluto-started
west #
 ipsec auto --add westnet-eastnet-ikev2
002 added connection description "westnet-eastnet-ikev2"
west #
 echo "initdone"
initdone
west #
 #!/bin/sh
west #
 ipsec auto --up westnet-eastnet-ikev2
002 "westnet-eastnet-ikev2"[1] 192.1.2.23 #1: initiating v2 parent SA
133 "westnet-eastnet-ikev2"[1] 192.1.2.23 #1: STATE_PARENT_I1: initiate
133 "westnet-eastnet-ikev2"[1] 192.1.2.23 #1: STATE_PARENT_I1: sent v2I1, expected v2R1
134 "westnet-eastnet-ikev2"[1] 192.1.2.23 #2: STATE_PARENT_I2: sent v2I2, expected v2R2 {auth=IKEv2 cipher=aes_gcm_16_256 integ=n/a prf=sha2_512 group=MODP2048}
002 "westnet-eastnet-ikev2"[1] 192.1.2.23 #2: IKEv2 mode peer ID is ID_FQDN: '@east'
002 "westnet-eastnet-ikev2"[1] 192.1.2.23 #2: negotiated connection [192.0.1.0,192.0.1.255:0-65535 0] -> [192.0.2.0,192.0.2.255:0-65535 0]
004 "westnet-eastnet-ikev2"[1] 192.1.2.23 #2: STATE_V2_IPSEC_I: IPsec SA established tunnel mode {ESP=>0xESPESP <0xESPESP xfrm=AES_GCM_C_256-NONE NATOA=none NATD=none DPD=active}
west #
 ping -q -n -c 4 -I 192.0.1.254 192.0.2.254
PING 192.0.2.254 (192.0.2.254) from 192.0.1.254 : 56(84) bytes of data.
--- 192.0.2.254 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time XXXX
rtt min/avg/max/mdev = 0.XXX/0.XXX/0.XXX/0.XXX ms
west #
 # Tunnel should be up
west #
 ipsec whack --trafficstatus
006 #2: "westnet-eastnet-ikev2"[1] 192.1.2.23, type=ESP, add_time=1234567890, inBytes=336, outBytes=336, id='@east'
west #
 # Let R_U_THERE packets flow
west #
 sleep 15
west #
 # Setting up block via iptables
west #
 iptables -I INPUT -s 192.1.2.23/32 -d 0/0 -j DROP
west #
 iptables -I OUTPUT -d 192.1.2.23/32 -s 0/0 -j DROP
west #
 sleep 30
west #
 # DPD should have triggered now
west #
 # Tunnel should be down with %trap or %hold preventing packet leaks
west #
 # But shuntstatus only shows bare shunts, not connection shunts :(
west #
 ipsec whack --trafficstatus
006 #2: "westnet-eastnet-ikev2"[1] 192.1.2.23, type=ESP, add_time=1234567890, inBytes=336, outBytes=336, id='@east'
west #
 ipsec whack --shuntstatus
000 Bare Shunt list:
000  
west #
 # no packets should be caught in firewall and no icmp replies should happen
west #
 ping -w 2 -q -n -c 3 -I 192.0.1.254 192.0.2.254
PING 192.0.2.254 (192.0.2.254) from 192.0.1.254 : 56(84) bytes of data.
--- 192.0.2.254 ping statistics ---
0 packets transmitted, 0 received
west #
 # Remove the Blockage
west #
 iptables -D INPUT -s 192.1.2.23/32 -d 0/0 -j DROP
west #
 iptables -D OUTPUT -d 192.1.2.23/32 -s 0/0 -j DROP
west #
 # Sleep 90
west #
 sleep 60
west #
 sleep 30
west #
 # Tunnel should be back up now even without triggering traffic
west #
 ipsec whack --trafficstatus
006 #2: "westnet-eastnet-ikev2"[1] 192.1.2.23, type=ESP, add_time=1234567890, inBytes=336, outBytes=504, id='@east'
west #
 ipsec whack --shuntstatus
000 Bare Shunt list:
000  
west #
 # ping should reply
west #
 ping -q -n -c 4 -I 192.0.1.254 192.0.2.254
PING 192.0.2.254 (192.0.2.254) from 192.0.1.254 : 56(84) bytes of data.
--- 192.0.2.254 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time XXXX
rtt min/avg/max/mdev = 0.XXX/0.XXX/0.XXX/0.XXX ms
west #
 echo done
done
west #
west #
 if [ -n "`ls /tmp/core* 2>/dev/null`" ]; then echo CORE FOUND; core=`ls /tmp/core* 2>/dev/null`; gdb --batch PATH/libexec/ipsec/pluto $core; mv /tmp/core* OUTPUT/; fi
west #
 if [ -f /sbin/ausearch ]; then ausearch -r -m avc -ts recent ; fi

