[Test Plan] The bug can be reproduced by just running: openvpn --show-ciphers
The non-patched version returns no algorithms and the patched version should include a list of cipher algorithms like this: AES-128-CBC (128 bit key, 128 bit block) AES-128-CFB (128 bit key, 128 bit block, TLS client/server mode only) AES-128-CFB1 (128 bit key, 128 bit block, TLS client/server mode only) AES-128-CFB8 (128 bit key, 128 bit block, TLS client/server mode only) AES-128-GCM (128 bit key, 128 bit block, TLS client/server mode only) AES-128-OFB (128 bit key, 128 bit block, TLS client/server mode only) ... To make sure no regressions are introduced we can create two VMs and test a VPN connection between them both with and without FIPS enabled. For the non-FIPS case we will use a legacy cipher that is not supported in FIPS. The path to enable this legacy algorithms is the one that breaks FIPS in the first place. Non-fips case: Install server VM: sudo apt install -y openvpn easy-rsa sudo make-cadir /etc/openvpn/easy-rsa sudo -i cd /etc/openvpn/easy-rsa ./easyrsa init-pki ./easyrsa build-ca nopass # accept default value for parameter ./easyrsa gen-req myserver nopass # accept default value for parameter ./easyrsa gen-dh ./easyrsa sign-req server myserver # type yes cp pki/dh.pem pki/ca.crt pki/issued/myserver.crt pki/private/myserver.key /etc/openvpn ./easyrsa gen-req myclient nopass # accept default value for parameter ./easyrsa sign-req client myclient # type yes scp pki/ca.crt pki/issued/myclient.crt pki/private/myclient.key <user>@<client_address> cd /etc/openvpn openvpn --genkey secret ta.key scp ta.key <user>@<client_address> cat > server.conf <<EOL port 1194 proto udp dev tun ca ca.crt cert myserver.crt key myserver.key dh dh.pem topology subnet server 10.8.0.0 255.255.255.0 ifconfig-pool-persist /var/log/openvpn/ipp.txt keepalive 10 120 tls-auth ta.key 0 cipher DES-CBC # old deprecated algorithm persist-key persist-tun status /var/log/openvpn/openvpn-status.log explicit-exit-notify 1 EOL systemctl start openvpn@server Install client VM: sudo apt install -y openvpn sudo cp myclient.crt ca.crt ta.key myclient.key /etc/openvpn # these files where copied from the server sudo -i # replace <server_ip> for the server IP in the following command cat > /etc/openvpn/client.conf <<EOL client dev tun proto udp remote <server_ip> 1194 nobind persist-key persist-tun ca ca.crt cert myclient.crt key myclient.key remote-cert-tls server tls-auth ta.key 1 cipher DES-CBC # old deprecated algorithm EOL systemctl start openvpn@client After installing and starting openvpn both client and server should have a tun0 interface. It should be possible to ping the server interface from the client: ping 10.8.0.1 And from the server ping the client interface: ping 10.8.0.2 Fips case: For the fips case I removed the tls-auth option as the unpatched openvpn cannot even generate the ta.key file on fips enabled systems. The patched version can generate the key and works with tls-auth enabled. Install server VM: sudo pro attach <token> sudo pro enable fips-updates sudo reboot sudo apt install -y openvpn easy-rsa sudo make-cadir /etc/openvpn/easy-rsa sudo -i cd /etc/openvpn/easy-rsa ./easyrsa init-pki ./easyrsa build-ca nopass # accept default value for parameter ./easyrsa gen-req myserver nopass # accept default value for parameter ./easyrsa gen-dh ./easyrsa sign-req server myserver # type yes cp pki/dh.pem pki/ca.crt pki/issued/myserver.crt pki/private/myserver.key /etc/openvpn ./easyrsa gen-req myclient nopass # accept default value for parameter ./easyrsa sign-req client myclient # type yes scp pki/ca.crt pki/issued/myclient.crt pki/private/myclient.key <user>@<client_address> cd /etc/openvpn cat > server.conf <<EOL port 1194 proto udp dev tun ca ca.crt cert myserver.crt key myserver.key dh dh.pem topology subnet server 10.8.0.0 255.255.255.0 ifconfig-pool-persist /var/log/openvpn/ipp.txt keepalive 10 120 cipher AES-256-CBC # fips algorithm persist-key persist-tun status /var/log/openvpn/openvpn-status.log explicit-exit-notify 1 EOL systemctl start openvpn@server Install client VM: sudo pro attach <token> sudo pro enable fips-updates sudo reboot sudo apt install -y openvpn sudo cp myclient.crt ca.crt myclient.key /etc/openvpn # these files where copied from the server sudo -i # replace <server_ip> for the server IP in the following command cat > /etc/openvpn/client.conf <<EOL client dev tun proto udp remote <server_ip> 1194 nobind persist-key persist-tun ca ca.crt cert myclient.crt key myclient.key remote-cert-tls server cipher AES-256-CBC # fips algorithm EOL systemctl start openvpn@client After installing and starting openvpn both client and server should have a tun0 interface. It should be possible to ping the server interface from the client: ping 10.8.0.1 And from the server ping the client interface: ping 10.8.0.2 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2097688 Title: [BPO] openvpn/2.6.12 from Noble to Jammy To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/openvpn/+bug/2097688/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs