Connecting through OpenVPN with deprecated ciphers, using Docker

Caution! This is a developer horror story 👻, Halloween 2022 comes with a nightmare for those who use a VPN. OpenSSL released the version 3.0.7 as the latest stable, if you compare that we’re talking about a jump from 1.1.1 to 3.0.7 we can think that an…


This content originally appeared on DEV Community 👩‍💻👨‍💻 and was authored by Axel Navarro

Caution! This is a developer horror story 👻, Halloween 2022 comes with a nightmare for those who use a VPN. OpenSSL released the version 3.0.7 as the latest stable, if you compare that we're talking about a jump from 1.1.1 to 3.0.7 we can think that any already deprecated protocol was removed to guarantee the security of our systems! And, it happened.
Arch Linux, with its philosophy of using the latest stable release of everything, applied the OpenSSL v3 on Saturday morning November 5.

Surprise! You can't use the BF-CBC cipher on OpenVPN anymore, because it was removed from OpenSSL itself; OpenVPN plans to remove it on 2.7 but we're currently in 2.5.8 at the moment.

Downgrading the openssl package is a possible solution but not the best. Should I move my development environment to a virtual machine? 🙀 Change to an old Ubuntu version? Not for me. Here is when the hero 🦸 of this story appears to save us, and its name is Docker 🐳.

The solution

The containers can use the same network of the host, this avoids the container being network isolated, and the VPN tunnel is shared with our host system.

Creating the image

For this example I'll use a simple ovpn file, but with a few tweaks I'm sure this will work for you too.

FROM ubuntu:jammy

RUN apt update && \
  apt install -y openvpn && \
  rm -rf /var/lib/apt/lists/*

COPY profile.ovpn /etc/openvpn/client/

CMD ["openvpn", "/etc/openvpn/client/profile.ovpn"]

We based our image on Ubuntu 22.04 LTS (Jammy Jellyfish), just install the openvpn package and copy your OpenVPN configuration file inside. Maybe you need a .p12, .key, or .crt files just to copy them too.

Build the image with the following command:

docker build -t openvpn .

Starting the container

Now, we can run the container!

docker run --name vpn --cap-add=NET_ADMIN --network=host --device /dev/net/tun -it openvpn

The container needs the Linux kernel capability of network administration to create a VPN tunnel with the --cap-add=NET_ADMIN argument. Also --device /dev/net/tun gives access to the tunnel device of the host.

⚠️ Don't give kernel capabilities or access to devices if you don't trust the publisher.

Once started, the container could ask for your credentials (username and password) to establish the VPN connection and it's done! 🎉

Conclusion

Some changes can't be applied in enterprise environments without analyzing all possible scenarios, and the change of this cipher could take some time. That's where Docker could help us to continue using old software in a controlled way for specific tasks without compromising the security of our system.

I hope you don't get scared with this story, but Super-Docker saves the day, one more time. Tell me in the comments if this helped you, or if you found another solution.


This content originally appeared on DEV Community 👩‍💻👨‍💻 and was authored by Axel Navarro


Print Share Comment Cite Upload Translate Updates
APA

Axel Navarro | Sciencx (2022-11-14T12:33:19+00:00) Connecting through OpenVPN with deprecated ciphers, using Docker. Retrieved from https://www.scien.cx/2022/11/14/connecting-through-openvpn-with-deprecated-ciphers-using-docker/

MLA
" » Connecting through OpenVPN with deprecated ciphers, using Docker." Axel Navarro | Sciencx - Monday November 14, 2022, https://www.scien.cx/2022/11/14/connecting-through-openvpn-with-deprecated-ciphers-using-docker/
HARVARD
Axel Navarro | Sciencx Monday November 14, 2022 » Connecting through OpenVPN with deprecated ciphers, using Docker., viewed ,<https://www.scien.cx/2022/11/14/connecting-through-openvpn-with-deprecated-ciphers-using-docker/>
VANCOUVER
Axel Navarro | Sciencx - » Connecting through OpenVPN with deprecated ciphers, using Docker. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/11/14/connecting-through-openvpn-with-deprecated-ciphers-using-docker/
CHICAGO
" » Connecting through OpenVPN with deprecated ciphers, using Docker." Axel Navarro | Sciencx - Accessed . https://www.scien.cx/2022/11/14/connecting-through-openvpn-with-deprecated-ciphers-using-docker/
IEEE
" » Connecting through OpenVPN with deprecated ciphers, using Docker." Axel Navarro | Sciencx [Online]. Available: https://www.scien.cx/2022/11/14/connecting-through-openvpn-with-deprecated-ciphers-using-docker/. [Accessed: ]
rf:citation
» Connecting through OpenVPN with deprecated ciphers, using Docker | Axel Navarro | Sciencx | https://www.scien.cx/2022/11/14/connecting-through-openvpn-with-deprecated-ciphers-using-docker/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.