testing: Updated all swanctl scenarios and added some new ones
This commit is contained in:
+12
@@ -0,0 +1,12 @@
|
||||
The roadwarriors <b>carol</b> and <b>dave</b> set up an IPv6 connection each
|
||||
to gateway <b>moon</b> using the <b>IKEv1</b> and <b>IKEv2</b> key exchange
|
||||
protocol, respectively. The authentication is based on <b>X.509 certificates</b>.
|
||||
<b>dave</b> advertises the support of the IKEv2 fragmentation protocol defined in
|
||||
<b>RFC 7383</b> which prevents the IP fragmentation of the IKEv2 messages carrying
|
||||
large X.509 certificates whereas <b>carol</b> announces support of non-standardized
|
||||
IKEv1 fragmentation.
|
||||
<p/>
|
||||
Upon the successful establishment of the IPv6 IPsec tunnels, the updown script
|
||||
automatically inserts ip6tables-based firewall rules that let pass the tunneled traffic.
|
||||
In order to test both tunnel and firewall, both <b>carol</b> and <b>dave</b> ping
|
||||
the client <b>alice</b> behind the gateway <b>moon</b>.
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
carol:: cat /var/log/daemon.log::splitting IKE message with length of .*bytes into 2 fragments::YES
|
||||
dave:: cat /var/log/daemon.log::splitting IKE message with length of .*bytes into 2 fragments::YES
|
||||
moon:: cat /var/log/daemon.log::splitting IKE message with length of .*bytes into 2 fragments::YES
|
||||
carol:: cat /var/log/daemon.log::received fragment #1, waiting for complete IKE message::YES
|
||||
carol:: cat /var/log/daemon.log::received fragment #2, reassembling fragmented IKE message::YES
|
||||
dave:: cat /var/log/daemon.log::received fragment #1 of 2, waiting for complete IKE message::YES
|
||||
dave:: cat /var/log/daemon.log::received fragment #2 of 2, reassembling fragmented IKE message::YES
|
||||
moon:: cat /var/log/daemon.log::received fragment #1 of 2, waiting for complete IKE message::YES
|
||||
moon:: cat /var/log/daemon.log::received fragment #2 of 2, reassembling fragmented IKE message::YES
|
||||
carol::swanctl --list-sas --raw 2> /dev/null::home.*version=1 state=ESTABLISHED local-host=fec0:\:10 [email protected] remote-host=fec0:\:1 remote-id=moon.strongswan.org initiator=yes.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=ECP_256.*child-sas.*home.*state=INSTALLED mode=TUNNEL.*ESP.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128.*local-ts=\[fec0:\:10/128] remote-ts=\[fec1:\:/16]::YES
|
||||
dave:: swanctl --list-sas --raw 2> /dev/null::home.*version=2 state=ESTABLISHED local-host=fec0:\:20 [email protected] remote-host=fec0:\:1 remote-id=moon.strongswan.org initiator=yes.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=ECP_256.*child-sas.*home.*state=INSTALLED mode=TUNNEL.*ESP.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128.*local-ts=\[fec0:\:20/128] remote-ts=\[fec1:\:/16]::YES
|
||||
moon:: swanctl --list-sas --ike-id 1 --raw 2> /dev/null::rw.*version=1 state=ESTABLISHED local-host=fec0:\:1 local-id=moon.strongswan.org remote-host=fec0:\:10 [email protected].*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=ECP_256.*child-sas.*net.*reqid=1 state=INSTALLED mode=TUNNEL.*ESP.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128.*local-ts=\[fec1:\:/16] remote-ts=\[fec0:\:10/128]::YES
|
||||
moon:: swanctl --list-sas --ike-id 2 --raw 2> /dev/null::rw.*version=2 state=ESTABLISHED local-host=fec0:\:1 local-id=moon.strongswan.org remote-host=fec0:\:20 [email protected].*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=ECP_256.*child-sas.*net.*reqid=2 state=INSTALLED mode=TUNNEL.*ESP.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128.*local-ts=\[fec1:\:/16] remote-ts=\[fec0:\:20/128]::YES
|
||||
alice::ping6 -c 1 ip6-carol.strongswan.org::64 bytes from ip6-carol.strongswan.org: icmp_seq=1::YES
|
||||
alice::ping6 -c 1 ip6-dave.strongswan.org::64 bytes from ip6-dave.strongswan.org: icmp_seq=1::YES
|
||||
moon::tcpdump::IP6 ip6-moon.strongswan.org > ip6-carol.strongswan.org: ESP::YES
|
||||
moon::tcpdump::IP6 ip6-carol.strongswan.org > ip6-moon.strongswan.org: ESP::YES
|
||||
moon::tcpdump::IP6 ip6-moon.strongswan.org > ip6-dave.strongswan.org: ESP::YES
|
||||
moon::tcpdump::IP6 ip6-dave.strongswan.org > ip6-moon.strongswan.org: ESP::YES
|
||||
@@ -0,0 +1,17 @@
|
||||
# /etc/strongswan.conf - strongSwan configuration file
|
||||
|
||||
swanctl {
|
||||
load = pem pkcs1 x509 revocation constraints pubkey openssl random
|
||||
}
|
||||
|
||||
charon {
|
||||
load = pem pkcs1 x509 revocation constraints pubkey openssl random nonce curl kernel-netlink socket-default updown vici
|
||||
|
||||
fragment_size = 1400
|
||||
|
||||
start-scripts {
|
||||
creds = /usr/local/sbin/swanctl --load-creds
|
||||
conns = /usr/local/sbin/swanctl --load-conns
|
||||
auth = /usr/local/sbin/swanctl --load-authorities
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
connections {
|
||||
|
||||
home {
|
||||
local_addrs = fec0::10
|
||||
remote_addrs = fec0::1
|
||||
|
||||
local {
|
||||
auth = pubkey
|
||||
certs = carolCert.pem
|
||||
id = [email protected]
|
||||
}
|
||||
remote {
|
||||
auth = pubkey
|
||||
id = moon.strongswan.org
|
||||
}
|
||||
children {
|
||||
home {
|
||||
remote_ts = fec1::/16
|
||||
|
||||
start_action = none
|
||||
updown = /usr/local/libexec/ipsec/_updown iptables
|
||||
rekey_time = 10m
|
||||
esp_proposals = aes128-sha256-ecp256
|
||||
}
|
||||
}
|
||||
|
||||
version = 1
|
||||
fragmentation = yes
|
||||
reauth_time = 60m
|
||||
rekey_time = 20m
|
||||
proposals = aes128-sha256-ecp256
|
||||
}
|
||||
}
|
||||
|
||||
authorities {
|
||||
strongswan {
|
||||
cacert = strongswanCert.pem
|
||||
crl_uris = http://ip6-winnetou.strongswan.org/strongswan.crl
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
# /etc/strongswan.conf - strongSwan configuration file
|
||||
|
||||
swanctl {
|
||||
load = pem pkcs1 x509 revocation constraints pubkey openssl random
|
||||
}
|
||||
|
||||
charon {
|
||||
load = pem pkcs1 x509 revocation constraints pubkey openssl random nonce curl kernel-netlink socket-default updown vici
|
||||
|
||||
fragment_size = 1400
|
||||
|
||||
start-scripts {
|
||||
creds = /usr/local/sbin/swanctl --load-creds
|
||||
conns = /usr/local/sbin/swanctl --load-conns
|
||||
auth = /usr/local/sbin/swanctl --load-authorities
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
connections {
|
||||
|
||||
home {
|
||||
local_addrs = fec0::20
|
||||
remote_addrs = fec0::1
|
||||
|
||||
local {
|
||||
auth = pubkey
|
||||
certs = daveCert.pem
|
||||
id = [email protected]
|
||||
}
|
||||
remote {
|
||||
auth = pubkey
|
||||
id = moon.strongswan.org
|
||||
}
|
||||
children {
|
||||
home {
|
||||
remote_ts = fec1::/16
|
||||
|
||||
start_action = none
|
||||
updown = /usr/local/libexec/ipsec/_updown iptables
|
||||
rekey_time = 10m
|
||||
esp_proposals = aes128-sha256-ecp256
|
||||
}
|
||||
}
|
||||
|
||||
version = 2
|
||||
mobike = no
|
||||
fragmentation = yes
|
||||
reauth_time = 60m
|
||||
rekey_time = 20m
|
||||
proposals = aes128-sha256-ecp256
|
||||
}
|
||||
}
|
||||
|
||||
authorities {
|
||||
strongswan {
|
||||
cacert = strongswanCert.pem
|
||||
crl_uris = http://ip6-winnetou.strongswan.org/strongswan.crl
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
# /etc/strongswan.conf - strongSwan configuration file
|
||||
|
||||
swanctl {
|
||||
load = pem pkcs1 x509 revocation constraints pubkey openssl random
|
||||
}
|
||||
|
||||
charon {
|
||||
load = pem pkcs1 x509 revocation constraints pubkey openssl random nonce curl kernel-netlink socket-default updown vici
|
||||
|
||||
fragment_size = 1400
|
||||
|
||||
start-scripts {
|
||||
creds = /usr/local/sbin/swanctl --load-creds
|
||||
conns = /usr/local/sbin/swanctl --load-conns
|
||||
auth = /usr/local/sbin/swanctl --load-authorities
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
connections {
|
||||
|
||||
rw {
|
||||
local_addrs = fec0::1
|
||||
|
||||
local {
|
||||
auth = pubkey
|
||||
certs = moonCert.pem
|
||||
id = moon.strongswan.org
|
||||
}
|
||||
remote {
|
||||
auth = pubkey
|
||||
}
|
||||
children {
|
||||
net {
|
||||
local_ts = fec1::/16
|
||||
|
||||
start_action = none
|
||||
updown = /usr/local/libexec/ipsec/_updown iptables
|
||||
rekey_time = 10m
|
||||
esp_proposals = aes128-sha256-ecp256
|
||||
}
|
||||
}
|
||||
|
||||
mobike = no
|
||||
fragmentation = yes
|
||||
reauth_time = 60m
|
||||
rekey_time = 20m
|
||||
proposals = aes128-sha256-ecp256
|
||||
}
|
||||
}
|
||||
|
||||
authorities {
|
||||
strongswan {
|
||||
cacert = strongswanCert.pem
|
||||
crl_uris = http://ip6-winnetou.strongswan.org/strongswan.crl
|
||||
}
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
carol::swanctl --terminate --ike home 2> /dev/null
|
||||
dave::swanctl --terminate --ike home 2> /dev/null
|
||||
carol::service charon stop 2> /dev/null
|
||||
dave::service charon stop 2> /dev/null
|
||||
moon::service charon stop 2> /dev/null
|
||||
moon::iptables-restore < /etc/iptables.flush
|
||||
carol::iptables-restore < /etc/iptables.flush
|
||||
dave::iptables-restore < /etc/iptables.flush
|
||||
moon::ip6tables-restore < /etc/ip6tables.flush
|
||||
carol::ip6tables-restore < /etc/ip6tables.flush
|
||||
dave::ip6tables-restore < /etc/ip6tables.flush
|
||||
alice::"ip route del fec0:\:/16 via fec1:\:1"
|
||||
carol::"ip route del fec1:\:/16 via fec0:\:1"
|
||||
dave::"ip route del fec1:\:/16 via fec0:\:1"
|
||||
Executable
+15
@@ -0,0 +1,15 @@
|
||||
moon::iptables-restore < /etc/iptables.drop
|
||||
carol::iptables-restore < /etc/iptables.drop
|
||||
dave::iptables-restore < /etc/iptables.drop
|
||||
moon::ip6tables-restore < /etc/ip6tables.rules
|
||||
carol::ip6tables-restore < /etc/ip6tables.rules
|
||||
dave::ip6tables-restore < /etc/ip6tables.rules
|
||||
alice::"ip route add fec0:\:/16 via fec1:\:1"
|
||||
carol::"ip route add fec1:\:/16 via fec0:\:1"
|
||||
dave::"ip route add fec1:\:/16 via fec0:\:1"
|
||||
moon::service charon start 2> /dev/null
|
||||
carol::service charon start 2> /dev/null
|
||||
dave::service charon start 2> /dev/null
|
||||
moon::sleep 1
|
||||
carol::swanctl --initiate --child home 2> /dev/null
|
||||
dave::swanctl --initiate --child home 2> /dev/null
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This configuration file provides information on the
|
||||
# guest instances used for this test
|
||||
|
||||
# All guest instances that are required for this test
|
||||
#
|
||||
VIRTHOSTS="alice moon carol winnetou dave"
|
||||
|
||||
# Corresponding block diagram
|
||||
#
|
||||
DIAGRAM="a-m-c-w-d.png"
|
||||
|
||||
# Guest instances on which tcpdump is to be started
|
||||
#
|
||||
TCPDUMPHOSTS="moon"
|
||||
|
||||
# Guest instances on which IPsec is started
|
||||
# Used for IPsec logging purposes
|
||||
#
|
||||
IPSECHOSTS="moon carol dave"
|
||||
|
||||
# IP protocol used by IPsec is IPv6
|
||||
#
|
||||
IPV6=1
|
||||
|
||||
# charon controlled by swanctl
|
||||
#
|
||||
SWANCTL=1
|
||||
Reference in New Issue
Block a user