ozon08/openvpn-server

By ozon08

Updated 6 days ago

Fast Docker container with OpenVPN Server living inside.

Image
Networking
Security
0

1.1K

ozon08/openvpn-server repository overview

ozon08/openvpn-server

Fast Docker container with OpenVPN Server living inside.

Forked from d3vilh/openvpn-server with security hardening, updated dependencies, and improved Docker configuration.

Quick Start

git clone https://github.com/ozon08/openvpn-server
cd openvpn-server
cp .env.example .env        # add your admin credentials
docker compose up -d

Environment variables

VariableDescription
TRUST_SUBTrusted subnet — full access to home network and internet (default: 10.0.70.0/24)
GUEST_SUBGuest subnet — internet only, no access to home network (default: 10.0.71.0/24)
HOME_SUBYour home/private subnet (default: 192.168.88.0/24)

Admin credentials (OPENVPN_ADMIN_USERNAME, OPENVPN_ADMIN_PASSWORD) are stored in a .env file — never hardcoded in docker-compose.yml.

Volumes

PathDescription
./pkiPKI certificates and keys
./clientsGenerated .ovpn client profiles
./configEasyRSA vars and client config template
./staticclientsStatic IP assignments per client
./logOpenVPN log files
./server.confOpenVPN server configuration

Security highlights (v0.6.3)

  • privileged: true removed from the openvpn container — Docker's default seccomp/AppArmor profiles are active, restricting dangerous syscalls (defense-in-depth vs. CVE-2026-31431 / Copy Fail and similar kernel LPEs)
  • tls-auth enforced server-side — packets without valid HMAC are dropped
  • Management interface binds to 127.0.0.1 only
  • No privileged mode for either container
  • RSA key size 4096 bit
  • TLS minimum version 1.3 for clients
  • Admin credentials stored in .env, excluded from Git

Ports

PortProtocolDescription
1194UDPOpenVPN
8080TCPOpenVPN UI (optional)

Tag summary

Content type

Image

Digest

sha256:8a34f301c

Size

11.1 MB

Last updated

6 days ago

docker pull ozon08/openvpn-server