swanctl --load-all--help nejdřív vypíše subcommands a pro jejich popis je potřeba zavolat znovu (například --initiate --help)swanctl --initiate --child <name> [--ike <name>] [--timeout <s>] [--raw|--pretty] swanctl --terminate --child <name> | --ike <name | --child-id <id> | --ike-id <id> [--timeout <s>] [--raw|--pretty]
swanctl --list-con (nahrazuje strongswan statusall)swanctl --list-sas (nahrazuje strongswan status)swanctl --log nebo swanctl --monitor-sasystemctl start/stop strongswan) strongswan start (na Debian ipsec start)strongswan up/down <název_conn>up zavolá víckrát, vytvoří se zbytečně více child-SAstrongswan statusall/etc/[strongswan]/ipsec.d/systemctl status strongswanstrongswan listcertspubkey: RSA 2048 bits, has private key
auto=route dpdaction=restart
iptables -t filter -I OUTPUT -p esp -j DROP iptables -t filter -I OUTPUT -p ah -j DROP iptables -t filter -I OUTPUT -p udp -m multiport --dports 500,4500 -j DROP
iptables -t mangle -I PREROUTING -m policy --pol ipsec --dir in -j DROP iptables -t mangle -I POSTROUTING -m policy --pol ipsec --dir out -j DROP
Při definici tunelu se nastavuje, které IP adresy jsou na left/right straně dostupné. V případěš tunelu host-host je na každé straně dostupná právě jedna IP adresa (uzlů). U tunelu site-site mohou být definovány celé rozsahy, které uzel zpřístupňuje.
Virtuální IP adresa slouží jako dodatečná adresa. Strongswan implementuje přidělování virtuální IP adresy pouze klientům. Klient si zažádá, server přes tunel přidělí.
Pokud je potřeba nastavit virtuální IP na server, lze to provést ručně pomocí nastavení IP adresy na nějaké síťové rozhraní (klidně loopback) a oznámení této adresy v left/rightsubnet.
Virtuální adresy se hodí pro řešení konfliktů IP adres (stejná adresace v místní a vzdálené síti), identifikace klienta podle IP (vždy stejná) nebo třeba implementaci failover serveru (při navázání náhradního tunelu se komunikuje pořád se stejnou remote IP).
Zpracování IPsec je obvykle založeno na policies. Po bežném routování se kontroluje SPD (Secure Policy Database) a pokud se je nalezeno odpovídající SA (Security Association), paket je zpracován přes IPsec. Zkrátka pokud je aktivní IPsec tunel, jeho SA left/right subnety odpovídají paketu, jde paket do tunelu.
Router-based VPN využívá virtuální síťové rozhraní VTI (Virtual Tunnel Interface). Je to ale pouze jakoby obal pro IPsec policies. Pokud paket nasměrujeme na VTI spojené s IPsec tunelem, jehož SA nebude odpovídat src/dst, paket přes tunel stejně nepůjde. Řeší se to nastavením politiky na 0.0.0.0/0 (tedy SA odpovídají všechny zdroje/cíle). Do VTI můžemee paket nasměrovat přes routovací tabulku nebo přes iptables mark. IPsec tunel je s VTI spojen také přes mark.
Router-based VPN se tedy hodí, pokud potrebujeme mít větší kontrolu nad tím, co chodí přes tunel. Například pokud máme třeba dvě IPsec brány a chceme přes routovací tabulku určovat, která se má použít.
statusallipsec statusall
Listening IP addresses:
10.10.10.1
fd51:7e6d:cb2b:0:250:56ff:fc9e:c233
Connections:
sample-with-ca-cert: %any...10.10.10.2 IKEv1/2
sample-with-ca-cert: local: [C=NL, O=Example Company, CN=john@example.org] uses public key authentication
sample-with-ca-cert: cert: "C=NL, O=Example Company, CN=john@example.org"
sample-with-ca-cert: remote: [C=CZ, O=BARI2, CN=one.bari2.eu] uses public key authentication
sample-with-ca-cert: child: 10.10.10.1/32 === 10.10.10.2/32 TUNNEL
Security Associations (1 up, 0 connecting):
sample-with-ca-cert[1]: ESTABLISHED 5 minutes ago, 10.10.10.1[C=NL, O=Example Company, CN=john@example.org]...10.10.10.2[C=CZ, O=BARI2, CN=one.bari2.eu]
sample-with-ca-cert[1]: IKEv2 SPIs: 6010310d76aa1385_i* c742b439ee7aec46_r, public key reauthentication in 2 hours
sample-with-ca-cert[1]: IKE proposal: AES_CBC_128/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_2048
sample-with-ca-cert{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: cea441f5_i cf127dbc_o
sample-with-ca-cert{1}: AES_CBC_128/HMAC_SHA1_96, 5292 bytes_i (63 pkts, 56s ago), 5376 bytes_o (64 pkts, 56s ago), rekeying in 37 minutes
sample-with-ca-cert{1}: 10.10.10.1/32 === 10.10.10.2/32
ipsec leases
Leases in pool '172.16.123.1', usage: 1/1, 1 online
172.16.123.1 online 'C=NL, O=Example Company, CN=john@example.org'
ip -s xfrm state
src 10.10.10.1 dst 10.10.10.2
proto esp spi 0xc99abce3(3382361315) reqid 1(0x00000001) mode tunnel
replay-window 32 seq 0x00000000 flag af-unspec (0x00100000)
auth-trunc hmac(sha1) 0x438b7318e495b86e5b9ab7058a57398f5efa89f8 (160 bits) 96
enc cbc(aes) 0x535db872f57ed1b2f1d6665dd1aff4c2 (128 bits)
encap type espinudp sport 4500 dport 4500 addr 0.0.0.0
lifetime config:
limit: soft (INF)(bytes), hard (INF)(bytes)
limit: soft (INF)(packets), hard (INF)(packets)
expire add: soft 2519(sec), hard 3600(sec)
expire use: soft 0(sec), hard 0(sec)
lifetime current:
84(bytes), 1(packets)
add 2017-02-23 17:03:31 use 2017-02-23 17:09:26
stats:
replay-window 0 replay 0 failed 0
src 10.10.10.2 dst 10.10.10.1
proto esp spi 0xc92e5293(3375256211) reqid 1(0x00000001) mode tunnel
replay-window 32 seq 0x00000000 flag af-unspec (0x00100000)
auth-trunc hmac(sha1) 0x12364e3e549e32de4041093899e89b1d1f760c9e (160 bits) 96
enc cbc(aes) 0xbcc9351746352a5bd5ab257e37fea49f (128 bits)
encap type espinudp sport 4500 dport 4500 addr 0.0.0.0
lifetime config:
limit: soft (INF)(bytes), hard (INF)(bytes)
limit: soft (INF)(packets), hard (INF)(packets)
expire add: soft 3022(sec), hard 3600(sec)
expire use: soft 0(sec), hard 0(sec)
lifetime current:
84(bytes), 1(packets)
add 2017-02-23 17:03:31 use 2017-02-23 17:09:26
stats:
replay-window 0 replay 0 failed 0