Skip to content

OpenVPN Install

OpenVPN Install is a single-script solution for deploying and managing an OpenVPN server on Linux.

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)
  • 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