From 5983c799042734b7176189f4030517d0fb116cde Mon Sep 17 00:00:00 2001 From: hwdsl2 Date: Sun, 26 Apr 2020 16:27:00 -0500 Subject: [PATCH] Fix IKEv2 - Apply fix for an IKEv2 regression in Libreswan - Ref: https://github.com/libreswan/libreswan/commit/90f8a09 https://github.com/libreswan/libreswan/issues/333 https://github.com/libreswan/libreswan/issues/329 --- extras/vpnupgrade.sh | 5 +++++ extras/vpnupgrade_centos.sh | 5 +++++ vpnsetup.sh | 5 +++++ vpnsetup_centos.sh | 5 +++++ 4 files changed, 20 insertions(+) diff --git a/extras/vpnupgrade.sh b/extras/vpnupgrade.sh index c34e4aa..cb8b665 100644 --- a/extras/vpnupgrade.sh +++ b/extras/vpnupgrade.sh @@ -212,6 +212,11 @@ cd "libreswan-$SWAN_VER" || exit 1 [ "$SWAN_VER" = "3.23" ] || [ "$SWAN_VER" = "3.25" ] && sed -i '/docker-targets\.mk/d' Makefile [ "$SWAN_VER" = "3.26" ] && sed -i 's/-lfreebl //' mk/config.mk [ "$SWAN_VER" = "3.26" ] && sed -i '/blapi\.h/d' programs/pluto/keys.c +if [ "$SWAN_VER" = "3.31" ]; then + sed -i '916iif (!st->st_seen_fragvid) { return FALSE; }' programs/pluto/ikev2.c + sed -i '1033s/if (/if (LIN(POLICY_IKE_FRAG_ALLOW, sk->ike->sa.st_connection->policy) \&\& sk->ike->sa.st_seen_fragvid \&\& /' \ + programs/pluto/ikev2_message.c +fi cat > Makefile.inc.local <<'EOF' WERROR_CFLAGS = USE_DNSSEC = false diff --git a/extras/vpnupgrade_centos.sh b/extras/vpnupgrade_centos.sh index 1eb9308..03650b3 100644 --- a/extras/vpnupgrade_centos.sh +++ b/extras/vpnupgrade_centos.sh @@ -221,6 +221,11 @@ cd "libreswan-$SWAN_VER" || exit 1 [ "$SWAN_VER" = "3.23" ] || [ "$SWAN_VER" = "3.25" ] && sed -i '/docker-targets\.mk/d' Makefile [ "$SWAN_VER" = "3.26" ] && sed -i 's/-lfreebl //' mk/config.mk [ "$SWAN_VER" = "3.26" ] && sed -i '/blapi\.h/d' programs/pluto/keys.c +if [ "$SWAN_VER" = "3.31" ]; then + sed -i '916iif (!st->st_seen_fragvid) { return FALSE; }' programs/pluto/ikev2.c + sed -i '1033s/if (/if (LIN(POLICY_IKE_FRAG_ALLOW, sk->ike->sa.st_connection->policy) \&\& sk->ike->sa.st_seen_fragvid \&\& /' \ + programs/pluto/ikev2_message.c +fi cat > Makefile.inc.local <<'EOF' WERROR_CFLAGS = USE_DNSSEC = false diff --git a/vpnsetup.sh b/vpnsetup.sh index 01ce889..19c7c9c 100755 --- a/vpnsetup.sh +++ b/vpnsetup.sh @@ -182,6 +182,11 @@ fi /bin/rm -rf "/opt/src/libreswan-$SWAN_VER" tar xzf "$swan_file" && /bin/rm -f "$swan_file" cd "libreswan-$SWAN_VER" || exit 1 +if [ "$SWAN_VER" = "3.31" ]; then + sed -i '916iif (!st->st_seen_fragvid) { return FALSE; }' programs/pluto/ikev2.c + sed -i '1033s/if (/if (LIN(POLICY_IKE_FRAG_ALLOW, sk->ike->sa.st_connection->policy) \&\& sk->ike->sa.st_seen_fragvid \&\& /' \ + programs/pluto/ikev2_message.c +fi cat > Makefile.inc.local <<'EOF' WERROR_CFLAGS = USE_DNSSEC = false diff --git a/vpnsetup_centos.sh b/vpnsetup_centos.sh index 5ec9444..f50f69c 100755 --- a/vpnsetup_centos.sh +++ b/vpnsetup_centos.sh @@ -180,6 +180,11 @@ fi /bin/rm -rf "/opt/src/libreswan-$SWAN_VER" tar xzf "$swan_file" && /bin/rm -f "$swan_file" cd "libreswan-$SWAN_VER" || exit 1 +if [ "$SWAN_VER" = "3.31" ]; then + sed -i '916iif (!st->st_seen_fragvid) { return FALSE; }' programs/pluto/ikev2.c + sed -i '1033s/if (/if (LIN(POLICY_IKE_FRAG_ALLOW, sk->ike->sa.st_connection->policy) \&\& sk->ike->sa.st_seen_fragvid \&\& /' \ + programs/pluto/ikev2_message.c +fi cat > Makefile.inc.local <<'EOF' WERROR_CFLAGS = USE_DNSSEC = false