Marius Tomaschewski
055879bc1c
Changes in version 5.2.2: * Fixed a denial-of-service vulnerability triggered by an IKEv2 Key Exchange payload that contains the Diffie-Hellman group 1025. This identifier was used internally for DH groups with custom generator and prime. Because these arguments are missing when creating DH objects based on the KE payload an invalid pointer dereference occurred. This allowed an attacker to crash the IKE daemon with a single IKE_SA_INIT message containing such a KE payload. The vulnerability has been registered as CVE-2014-9221. * The left/rightid options in ipsec.conf, or any other identity in strongSwan, now accept prefixes to enforce an explicit type, such as email: or fqdn:. Note that no conversion is done for the remaining string, refer to ipsec.conf(5) for details. * The post-quantum Bimodal Lattice Signature Scheme (BLISS) can be used as an IKEv2 public key authentication method. The pki tool offers full support for the generation of BLISS key pairs and certificates. * Fixed mapping of integrity algorithms negotiated for AH via IKEv1. This could cause interoperability issues when connecting to older versions of charon. Changes in version 5.2.1: * The new charon-systemd IKE daemon implements an IKE daemon tailored for use with systemd. It avoids the dependency on ipsec starter and uses swanctl as configuration backend, building a simple and lightweight solution. It supports native systemd journal logging. * Support for IKEv2 fragmentation as per RFC 7383 has been added. Like IKEv1 fragmentation it can be enabled by setting fragmentation=yes in ipsec.conf. * Support of the TCG TNC IF-M Attribute Segmentation specification proposal. All attributes can be segmented. Additionally TCG/SWID Tag, TCG/SWID Tag ID and IETF/Installed Packages attributes can be processed incrementally on a per segment basis. OBS-URL: https://build.opensuse.org/package/show/network:vpn/strongswan?expand=0&rev=85
90 lines
1.9 KiB
Diff
90 lines
1.9 KiB
Diff
--- src/ipsec/_ipsec.in
|
|
+++ src/ipsec/_ipsec.in
|
|
@@ -44,6 +44,26 @@ export IPSEC_DIR IPSEC_BINDIR IPSEC_SBINDIR IPSEC_CONFDIR IPSEC_PIDDIR IPSEC_SCR
|
|
|
|
IPSEC_DISTRO="Institute for Internet Technologies and Applications\nUniversity of Applied Sciences Rapperswil, Switzerland"
|
|
|
|
+fipscheck()
|
|
+{
|
|
+ # when fips operation mode is not enabled, just report OK
|
|
+ read 2>/dev/null fips_enabled < /proc/sys/crypto/fips_enabled
|
|
+ test "X$fips_enabled" = "X1" || return 0
|
|
+
|
|
+ # complain when _fipscheck is missed
|
|
+ test -x "$IPSEC_DIR/_fipscheck" || {
|
|
+ echo "ipsec: please install strongswan-hmac package required in fips mode" >&2
|
|
+ return 4
|
|
+ }
|
|
+
|
|
+ # now execute it
|
|
+ $IPSEC_DIR/_fipscheck || {
|
|
+ rc=$?
|
|
+ echo "ipsec: strongSwan fips file integrity check failed" >&2
|
|
+ return $rc
|
|
+ }
|
|
+}
|
|
+
|
|
case "$1" in
|
|
'')
|
|
echo "$IPSEC_SCRIPT command [arguments]"
|
|
@@ -155,6 +175,7 @@ rereadall|purgeocsp|listcounters|resetcounters)
|
|
shift
|
|
if [ -e $IPSEC_CHARON_PID ]
|
|
then
|
|
+ fipscheck || exit $?
|
|
$IPSEC_STROKE "$op" "$@"
|
|
rc="$?"
|
|
fi
|
|
@@ -164,6 +185,7 @@ purgeike|purgecrls|purgecerts)
|
|
rc=7
|
|
if [ -e $IPSEC_CHARON_PID ]
|
|
then
|
|
+ fipscheck || exit $?
|
|
$IPSEC_STROKE "$1"
|
|
rc="$?"
|
|
fi
|
|
@@ -197,6 +219,7 @@ route|unroute)
|
|
fi
|
|
if [ -e $IPSEC_CHARON_PID ]
|
|
then
|
|
+ fipscheck || exit $?
|
|
$IPSEC_STROKE "$op" "$1"
|
|
rc="$?"
|
|
fi
|
|
@@ -206,6 +229,7 @@ secrets)
|
|
rc=7
|
|
if [ -e $IPSEC_CHARON_PID ]
|
|
then
|
|
+ fipscheck || exit $?
|
|
$IPSEC_STROKE rereadsecrets
|
|
rc="$?"
|
|
fi
|
|
@@ -213,6 +237,7 @@ secrets)
|
|
;;
|
|
start)
|
|
shift
|
|
+ fipscheck || exit $?
|
|
if [ -d /var/lock/subsys ]; then
|
|
touch /var/lock/subsys/ipsec
|
|
fi
|
|
@@ -286,6 +311,7 @@ up)
|
|
rc=7
|
|
if [ -e $IPSEC_CHARON_PID ]
|
|
then
|
|
+ fipscheck || exit $?
|
|
$IPSEC_STROKE up "$1"
|
|
rc="$?"
|
|
fi
|
|
@@ -325,6 +351,11 @@ esac
|
|
cmd="$1"
|
|
shift
|
|
|
|
+case $cmd in
|
|
+_fipscheck|_copyright|pki) ;;
|
|
+*) fipscheck || exit $? ;;
|
|
+esac
|
|
+
|
|
path="$IPSEC_DIR/$cmd"
|
|
|
|
if [ ! -x "$path" ]
|