Personal project: Secure OpenVPN server with SSL/TLS certificate management, client configuration, and troubleshooting tools.
sudo ./install.shThat's it! The script installs and configures everything automatically.
sudo ./scripts/create-client.sh client-nameThe .ovpn file is created in /etc/openvpn/clients/client-name.ovpn
sudo ./scripts/revoke-client.sh client-namesudo ./scripts/troubleshoot.shI added several network optimizations to improve performance:
- UDP protocol: Faster than TCP, less latency
- Adaptive compression: Saves 20-40% bandwidth on compressible data
- Larger buffers: 393KB instead of default 64KB for better throughput
- Optimized keepalive: Keeps connections stable
- Modern encryption: AES-256-GCM with TLS 1.2+
These optimizations work well in practice - I've tested and used this server myself.
openvpn-server/
├── install.sh # Main installation script
├── scripts/
│ ├── setup-server.sh # Server setup
│ ├── generate-ca.sh # Certificate generation
│ ├── create-client.sh # Create clients
│ ├── revoke-client.sh # Revoke clients
│ └── troubleshoot.sh # Diagnostics
└── config/
├── server.conf # Server config
└── client-template.conf # Client template
- Linux (Debian/Ubuntu, CentOS/RHEL, or Arch Linux)
- Root/sudo access
- Internet connection
Certificates are generated automatically. Server listens on port 1194 (UDP) by default.
Personal learning project in system administration and networking.