Version 5.8.0 » History » Version 3
Tobias Brunner, 09.05.2019 17:54
build-certs documented
1 | 1 | Tobias Brunner | h1. Version 5.8.0 |
---|---|---|---|
2 | 1 | Tobias Brunner | |
3 | 2 | Tobias Brunner | * The @systemd@ service units have been renamed. The modern unit, which was called _strongswan-swanctl_, |
4 | 2 | Tobias Brunner | is now called _strongswan_ (the previous name is configured as alias in the unit, for which a symlink is |
5 | 2 | Tobias Brunner | created when the unit is enabled). The legacy unit is now called _strongswan-starter_. |
6 | 2 | Tobias Brunner | |
7 | 2 | Tobias Brunner | * Support for XFRM interfaces (available since Linux 4.19) has been added, which are intended to |
8 | 2 | Tobias Brunner | replace VTI devices (they are similar but offer several advantages, for instance, they are not bound |
9 | 2 | Tobias Brunner | to an address or address family). |
10 | 2 | Tobias Brunner | IPsec SAs and policies are associated with such interfaces via interface IDs that can be configured in |
11 | 2 | Tobias Brunner | [[swanctl.conf]] (dynamic IDs may optionally be allocated for each SA and even direction). It's possible to |
12 | 2 | Tobias Brunner | use separate interfaces for in- and outbound traffic (or only use an interface in one direction and regular |
13 | 2 | Tobias Brunner | policies in the other). |
14 | 2 | Tobias Brunner | Interfaces may be created dynamically via [[updown]]/[[vici]] scripts, or statically before or after establishing |
15 | 2 | Tobias Brunner | the SAs. Routes must be added manually as needed (the daemon will not install any routes for outbound |
16 | 2 | Tobias Brunner | policies with an interface ID). |
17 | 2 | Tobias Brunner | When moving XFRM interfaces to other network namespaces they retain access to the SAs and policies |
18 | 2 | Tobias Brunner | installed in the original namespace, which allows providing IPsec tunnels for processes in other network |
19 | 2 | Tobias Brunner | namespaces without giving them access to the IPsec keys or IKE credentials. |
20 | 2 | Tobias Brunner | More information can be found on the page about [[RouteBasedVPN#XFRM-Interfaces-on-Linux|route-based VPNs]]. |
21 | 2 | Tobias Brunner | |
22 | 2 | Tobias Brunner | * Initiation of childless IKE_SAs is supported ("RFC 6023":https://tools.ietf.org/html/rfc6023). If enabled and supported by the responder, |
23 | 2 | Tobias Brunner | no CHILD_SA is established during IKE_AUTH. Instead, all CHILD_SAs are created with CREATE_CHILD_SA |
24 | 2 | Tobias Brunner | exchanges. This allows using a separate DH exchange even for the first CHILD_SA, which is otherwise |
25 | 2 | Tobias Brunner | created during IKE_AUTH with keys derived from the IKE_SA's key material. |
26 | 2 | Tobias Brunner | The [[swanctl]] @--initiate@ command may be used to initiate only the IKE_SA via @--ike@ option if @--child@ is |
27 | 2 | Tobias Brunner | omitted and the peer supports this extension. |
28 | 2 | Tobias Brunner | |
29 | 2 | Tobias Brunner | * The [[NetworkManager]] backend and plugin support IPv6. |
30 | 2 | Tobias Brunner | |
31 | 2 | Tobias Brunner | * The new _wolfssl_ plugin is a wrapper around the "wolfSSL":https://github.com/wolfSSL/wolfssl crypto library. Thanks to Sean Parkinson of |
32 | 2 | Tobias Brunner | wolfSSL Inc. for the initial patch. |
33 | 2 | Tobias Brunner | |
34 | 2 | Tobias Brunner | * IKE SPIs may optionally be labeled via the _charon.spi_mask|label_ options in [[strongswan.conf]]. This feature |
35 | 2 | Tobias Brunner | was extracted from _charon-tkm_, however, now applies the mask/label in network order. |
36 | 2 | Tobias Brunner | |
37 | 2 | Tobias Brunner | * The _openssl_ plugin supports ChaCha20-Poly1305 when built with OpenSSL 1.1.0. |
38 | 2 | Tobias Brunner | |
39 | 2 | Tobias Brunner | * The PB-TNC finite state machine according to section 3.2 of "RFC 5793":https://tools.ietf.org/html/rfc5793 was not correctly implemented |
40 | 2 | Tobias Brunner | when sending either a @CRETRY@ or @SRETRY@ batch. These batches can only be sent in the "Decided" state |
41 | 2 | Tobias Brunner | and a @CRETRY@ batch can immediately carry all messages usually transported by a @CDATA@ batch. It is |
42 | 2 | Tobias Brunner | currently not possible to send a @SRETRY@ batch since full-duplex mode for PT-TLS transport is not supported. |
43 | 2 | Tobias Brunner | |
44 | 2 | Tobias Brunner | * Instead of marking IPv6 virtual IPs as deprecated, the _kernel-netlink_ plugin now uses address labels to |
45 | 2 | Tobias Brunner | avoid that such addresses are used for non-VPN traffic (commit:00a953d090). |
46 | 2 | Tobias Brunner | |
47 | 2 | Tobias Brunner | * The _agent_ plugin now creates sockets to the ssh/gpg-agent dynamically and does not keep them open, |
48 | 2 | Tobias Brunner | which otherwise might prevent the agent from getting terminated. |
49 | 2 | Tobias Brunner | |
50 | 2 | Tobias Brunner | * To avoid broadcast loops the [[forecast]] plugin now only reinjects packets that are marked or received from |
51 | 2 | Tobias Brunner | the configured interface. |
52 | 2 | Tobias Brunner | |
53 | 2 | Tobias Brunner | * UTF-8 encoded passwords are supported via EAP-MSCHAPv2, which internally uses an UTF-16LE |
54 | 2 | Tobias Brunner | encoding to calculate the NT hash (#3014). |
55 | 2 | Tobias Brunner | |
56 | 2 | Tobias Brunner | * Properly delete temporary drop policies (used when updating IP addresses of SAs) if manual priorities are |
57 | 2 | Tobias Brunner | used, which was broken since version:5.6.2 (commit:8e31d65730). |
58 | 2 | Tobias Brunner | |
59 | 2 | Tobias Brunner | * Avoid overwriting _start_action_ when parsing the inactivity timeout in the _vici_ plugin (#2954). |
60 | 2 | Tobias Brunner | |
61 | 2 | Tobias Brunner | * Fixed the automatic termination of reloaded _vici_ connections with _start_action=start_, which was broken |
62 | 2 | Tobias Brunner | since version:5.6.3 (commit:71b22c250f). |
63 | 2 | Tobias Brunner | |
64 | 2 | Tobias Brunner | * The lookup for shared secrets for IKEv1 SAs via [[sql]] plugin should now work better (commit:6ec9f68f32). |
65 | 2 | Tobias Brunner | |
66 | 2 | Tobias Brunner | * Fixed a race condition in the trap manager between installation and removal of a policy (commit:69cbe2ca3f). |
67 | 2 | Tobias Brunner | |
68 | 2 | Tobias Brunner | * Compilation of the _kernel-netlink_ plugin has been fixed on old kernels (< 2.6.39), which was caused |
69 | 2 | Tobias Brunner | by the HW offload changes (commit:c7f579fa17). |
70 | 2 | Tobias Brunner | |
71 | 3 | Tobias Brunner | * The IPsec stack detection and module loading in [[ipsecstarter|starter]] has been removed (it wasn't enforced anyway |
72 | 3 | Tobias Brunner | and loading modules doesn't seem necessary, also KLIPS hasn't been supported for a long time and |
73 | 3 | Tobias Brunner | PF_KEY will eventually be removed from the Linux kernel, commit:ba817d2917). |
74 | 3 | Tobias Brunner | |
75 | 2 | Tobias Brunner | * Several IKEv2 protocol details are now handled more strictly: Unrequested virtual IPs are ignored, |
76 | 1 | Tobias Brunner | @CFG_REPLY@ payloads are ignored if no @CFG_REQUEST@ payloads were sent, a @USE_TRANSPORT_MODE@ notify |
77 | 3 | Tobias Brunner | received from the responder is checked against the local configuration. |
78 | 3 | Tobias Brunner | |
79 | 3 | Tobias Brunner | * The keys and certificates used by the scenarios in the [[TestingEnvironment|testing environment]] are now generated |
80 | 3 | Tobias Brunner | dynamically. Running the @testing/scripts/build-certs@ script after creating the base and root images |
81 | 3 | Tobias Brunner | uses the [[ipsecpki|pki]] utility installed in the latter to create the keys and certificates for all the CAs and in some |
82 | 3 | Tobias Brunner | cases for individual scenarios. These credentials are stored in the source tree, not the image, so this has |
83 | 3 | Tobias Brunner | to be called only once even if the images are later rebuilt. The script automatically (re-)rebuilds the guest |
84 | 3 | Tobias Brunner | images as that generates fresh CRLs and signs the DNS zones. The only keys/certificates currently not |
85 | 3 | Tobias Brunner | generated are the very large ones used by the {{tc(ikev2/rw-eap-tls-fragments)}} scenario. |