testing: Converted ipv6/rw-psk-ikev2 to swanctl

This commit is contained in:
Andreas Steffen
2017-11-10 11:49:49 +01:00
parent 0770b37f8f
commit 34acd584e5
17 changed files with 174 additions and 96 deletions
@@ -1,7 +1,7 @@
The roadwarriors <b>carol</b> and <b>dave</b> set up an IPv6 tunnel connection each TThe roadwarriors <b>carol</b> and <b>dave</b> set up an IPv6 tunnel connection each
to gateway <b>moon</b>. The authentication is based on distinct <b>pre-shared keys</b> to gateway <b>moon</b>. The authentication is based on distinct <b>pre-shared keys</b>
and IPv6 addresses. Upon the successful establishment of the IPsec tunnels, and IPv6 addresses. Upon the successful establishment of the IPsec tunnels,
<b>leftfirewall=yes</b> automatically inserts ip6tables-based firewall rules that automatically inserted ip6tables-based firewall rules let pass the tunneled traffic.
let pass the tunneled traffic. In order to test both tunnel and firewall, both In order to test both tunnel and firewall, both <b>carol</b> and <b>dave</b> send
<b>carol</b> and <b>dave</b> send an IPv6 ICMP request to client <b>alice</b> an IPv6 ICMP request to client <b>alice</b> behind the gateway <b>moon</b> using
behind the gateway <b>moon</b> using the ping6 command. the ping6 command.
+4 -8
View File
@@ -1,13 +1,9 @@
carol::ipsec status 2> /dev/null::home.*ESTABLISHED.*\[fec0.*:10].*\[fec0.*:1]::YES
dave:: ipsec status 2> /dev/null::home.*ESTABLISHED.*\[fec0.*:20].*\[fec0.*:1]::YES
moon:: ipsec status 2> /dev/null::rw\[1]: ESTABLISHED.*\[fec0.*:1].*\[fec0.*:10]::YES
moon:: ipsec status 2> /dev/null::rw\[2]: ESTABLISHED.*\[fec0.*:1].*\[fec0.*:20]::YES
carol::ipsec status 2> /dev/null::home.*INSTALLED, TUNNEL::YES
dave:: ipsec status 2> /dev/null::home.*INSTALLED, TUNNEL::YES
moon:: ipsec status 2> /dev/null::rw[{]1}.*INSTALLED, TUNNEL::YES
moon:: ipsec status 2> /dev/null::rw[{]2}.*INSTALLED, TUNNEL::YES
carol::ping6 -c 1 ip6-alice.strongswan.org::64 bytes from ip6-alice.strongswan.org: icmp_seq=1::YES carol::ping6 -c 1 ip6-alice.strongswan.org::64 bytes from ip6-alice.strongswan.org: icmp_seq=1::YES
dave:: ping6 -c 1 ip6-alice.strongswan.org::64 bytes from ip6-alice.strongswan.org: icmp_seq=1::YES dave:: ping6 -c 1 ip6-alice.strongswan.org::64 bytes from ip6-alice.strongswan.org: icmp_seq=1::YES
carol::swanctl --list-sas --raw 2> /dev/null::home.*version=2 state=ESTABLISHED local-host=fec0:\:10 local-port=4500 local-id=fec0:\:10 remote-host=fec0:\:1 remote-port=4500 remote-id=fec0:\:1 initiator=yes.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=CURVE_25519.*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 local-port=4500 local-id=fec0:\:20 remote-host=fec0:\:1 remote-port=4500 remote-id=fec0:\:1 initiator=yes.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=CURVE_25519.*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=2 state=ESTABLISHED local-host=fec0:\:1 local-port=4500 local-id=fec0:\:1 remote-host=fec0:\:10 remote-port=4500 remote-id=fec0:\:10.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=CURVE_25519.*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-port=4500 local-id=fec0:\:1 remote-host=fec0:\:20 remote-port=4500 remote-id=fec0:\:20.*encr-alg=AES_CBC encr-keysize=128 integ-alg=HMAC_SHA2_256_128 prf-alg=PRF_HMAC_SHA2_256 dh-group=CURVE_25519.*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
moon::tcpdump::IP6 ip6-carol.strongswan.org > ip6-moon.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-carol.strongswan.org: ESP::YES moon::tcpdump::IP6 ip6-moon.strongswan.org > ip6-carol.strongswan.org: ESP::YES
moon::tcpdump::IP6 ip6-dave.strongswan.org > ip6-moon.strongswan.org: ESP::YES moon::tcpdump::IP6 ip6-dave.strongswan.org > ip6-moon.strongswan.org: ESP::YES
@@ -1,18 +0,0 @@
# /etc/ipsec.conf - strongSwan IPsec configuration file
config setup
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
keyexchange=ikev2
authby=secret
conn home
left=PH_IP6_CAROL
leftfirewall=yes
right=PH_IP6_MOON
rightsubnet=fec1::/16
auto=add
@@ -1,3 +0,0 @@
# /etc/ipsec.secrets - strongSwan IPsec secrets file
PH_IP6_CAROL : PSK 0sFpZAZqEN6Ti9sqt4ZP5EWcqx
@@ -1,5 +1,18 @@
# /etc/strongswan.conf - strongSwan configuration file # /etc/strongswan.conf - strongSwan configuration file
charon { swanctl {
load = random nonce aes sha1 sha2 curve25519 hmac stroke kernel-netlink socket-default updown load = pem pkcs1 x509 revocation constraints pubkey openssl random
}
charon-systemd {
load = random nonce aes sha1 sha2 curve25519 hmac vici kernel-netlink socket-default updown
syslog {
daemon {
default = 1
}
auth {
default = 0
}
}
} }
@@ -0,0 +1,34 @@
connections {
home {
local_addrs = fec0::10
remote_addrs = fec0::1
local {
auth = psk
id = fec0::10
}
remote {
auth = psk
id = fec0::1
}
children {
home {
remote_ts = fec1::0/16
updown = /usr/local/libexec/ipsec/_updown iptables
esp_proposals = aes128-sha256-x25519
}
}
version = 2
proposals = aes128-sha256-x25519
}
}
secrets {
ike-moon {
id = fec0::1
secret = 0sFpZAZqEN6Ti9sqt4ZP5EWcqx
}
}
@@ -1,19 +0,0 @@
# /etc/ipsec.conf - strongSwan IPsec configuration file
config setup
strictcrlpolicy=no
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
keyexchange=ikev2
authby=secret
conn home
left=PH_IP6_DAVE
leftfirewall=yes
right=PH_IP6_MOON
rightsubnet=fec1::/16
auto=add
@@ -1,3 +0,0 @@
# /etc/ipsec.secrets - strongSwan IPsec secrets file
PH_IP6_DAVE : PSK 0sjVzONCF02ncsgiSlmIXeqhGN
@@ -1,5 +1,18 @@
# /etc/strongswan.conf - strongSwan configuration file # /etc/strongswan.conf - strongSwan configuration file
charon { swanctl {
load = random nonce aes sha1 sha2 curve25519 hmac stroke kernel-netlink socket-default updown load = pem pkcs1 x509 revocation constraints pubkey openssl random
}
charon-systemd {
load = random nonce aes sha1 sha2 curve25519 hmac vici kernel-netlink socket-default updown
syslog {
daemon {
default = 1
}
auth {
default = 0
}
}
} }
@@ -0,0 +1,34 @@
connections {
home {
local_addrs = fec0::20
remote_addrs = fec0::1
local {
auth = psk
id = fec0::20
}
remote {
auth = psk
id = fec0::1
}
children {
home {
remote_ts = fec1::0/16
updown = /usr/local/libexec/ipsec/_updown iptables
esp_proposals = aes128-sha256-x25519
}
}
version = 2
proposals = aes128-sha256-x25519
}
}
secrets {
ike-moon {
id = fec0::1
secret = 0sjVzONCF02ncsgiSlmIXeqhGN
}
}
@@ -1,18 +0,0 @@
# /etc/ipsec.conf - strongSwan IPsec configuration file
config setup
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
keyexchange=ikev2
authby=secret
conn rw
left=PH_IP6_MOON
leftsubnet=fec1::/16
leftfirewall=yes
right=%any
auto=add
@@ -1,5 +0,0 @@
# /etc/ipsec.secrets - strongSwan IPsec secrets file
PH_IP6_CAROL : PSK 0sFpZAZqEN6Ti9sqt4ZP5EWcqx
PH_IP6_DAVE : PSK 0sjVzONCF02ncsgiSlmIXeqhGN
@@ -1,5 +1,18 @@
# /etc/strongswan.conf - strongSwan configuration file # /etc/strongswan.conf - strongSwan configuration file
charon { swanctl {
load = random nonce aes sha1 sha2 curve25519 hmac stroke kernel-netlink socket-default updown load = pem pkcs1 x509 revocation constraints pubkey openssl random
}
charon-systemd {
load = random nonce aes sha1 sha2 curve25519 hmac vici kernel-netlink socket-default updown
syslog {
daemon {
default = 1
}
auth {
default = 0
}
}
} }
@@ -0,0 +1,37 @@
connections {
rw {
local_addrs = fec0::1
local {
auth = psk
id = fec0::1
}
remote {
auth = psk
}
children {
net {
local_ts = fec1::0/16
updown = /usr/local/libexec/ipsec/_updown iptables
esp_proposals = aes128-sha256-x25519
}
}
version = 2
proposals = aes128-sha256-x25519
}
}
secrets {
ike-carol {
id = fec0::10
secret = 0sFpZAZqEN6Ti9sqt4ZP5EWcqx
}
ike-dave {
id = fec0::20
secret = 0sjVzONCF02ncsgiSlmIXeqhGN
}
}
+3 -3
View File
@@ -1,6 +1,6 @@
moon::ipsec stop moon::systemctl stop strongswan-swanctl
carol::ipsec stop carol::systemctl stop strongswan-swanctl
dave::ipsec stop dave::systemctl stop strongswan-swanctl
moon::iptables-restore < /etc/iptables.flush moon::iptables-restore < /etc/iptables.flush
carol::iptables-restore < /etc/iptables.flush carol::iptables-restore < /etc/iptables.flush
dave::iptables-restore < /etc/iptables.flush dave::iptables-restore < /etc/iptables.flush
+8 -8
View File
@@ -7,14 +7,14 @@ dave::ip6tables-restore < /etc/ip6tables.rules
alice::"ip route add fec0:\:/16 via fec1:\:1" alice::"ip route add fec0:\:/16 via fec1:\:1"
carol::"ip route add fec1:\:/16 via fec0:\:1" carol::"ip route add fec1:\:/16 via fec0:\:1"
dave::"ip route add fec1:\:/16 via fec0:\:1" dave::"ip route add fec1:\:/16 via fec0:\:1"
moon::rm /etc/ipsec.d/cacerts/* moon::cd /etc/swanctl; rm rsa/* x509/* x509ca/*
carol::rm /etc/ipsec.d/cacerts/* carol::cd /etc/swanctl; rm rsa/* x509/* x509ca/*
dave::rm /etc/ipsec.d/cacerts/* dave::cd /etc/swanctl; rm rsa/* x509/* x509ca/*
moon::ipsec start moon::systemctl start strongswan-swanctl
carol::ipsec start carol::systemctl start strongswan-swanctl
dave::ipsec start dave::systemctl start strongswan-swanctl
moon::expect-connection rw moon::expect-connection rw
carol::expect-connection home carol::expect-connection home
dave::expect-connection home dave::expect-connection home
carol::ipsec up home carol::swanctl --initiate --child home
dave::ipsec up home dave::swanctl --initiate --child home
@@ -23,3 +23,7 @@ IPSECHOSTS="moon carol dave"
# IP protocol used by IPsec is IPv6 # IP protocol used by IPsec is IPv6
# #
IPV6=1 IPV6=1
# charon controlled by swanctl
#
SWANCTL=1