Skip to content

OpenVPN Install

About This Documentation

This site documents OpenVPN Install, a single-script solution for deploying and managing an OpenVPN server on Linux. It is kept in sync with upstream changes using check-upstream.sh, which diffs the upstream repository and produces a report used to update these pages with AI assistance — see the Upstream Changes Report.

Features

  • One-command OpenVPN server installation
  • Client management: create, revoke, renew certificates
  • Interactive and CLI modes
  • Modern cryptography: ECDSA, AES-GCM, ChaCha20, TLS 1.3
  • IPv4 and IPv6 support (dual-stack)
  • Configurable access policy: internet routing, client-to-client access, and server-side network access, independently toggled
  • Automatic firewall configuration (firewalld / nftables / iptables)
  • DNS provider selection or self-hosted Unbound
  • JSON output for automation
  • Automated testing across 20+ distributions

Quick Start

# Download the script
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh

# Interactive installation
sudo ./openvpn-install.sh interactive

# Or automated installation with defaults
sudo ./openvpn-install.sh install

After installation, the client configuration file (*.ovpn) is created in the current user's home directory.

Project Structure

openvpn-install/
├── openvpn-install.sh      # Main script (installation and management)
├── README.md               # Project documentation
├── FAQ.md                  # Frequently asked questions
├── Makefile                # Test automation
├── docker-compose.yml      # Test infrastructure
└── test/                   # Tests
    ├── Dockerfile.server
    ├── Dockerfile.client
    ├── server-entrypoint.sh
    ├── client-entrypoint.sh
    └── validate-output.sh

Documentation Map

Section Description
Compatibility Supported OS and requirements
Installation Detailed installation guide
Quick Start Common deployment scenarios
Client Management Add, revoke, renew clients
Server Management Status, certificate renewal, monitoring
CLI Reference Full command-line options reference
Network & DNS Network, port, and DNS settings
Security Encryption, certificates, TLS
Firewall firewalld, nftables, iptables configuration
FAQ Frequently asked questions