OpenVPN:Server Configuration: Difference between revisions
Appearance
Minor update - troubleshooting guide: OpenVPN Server Configuration (15 sections) (configuration) |
Document OpenVPN VPN-only web admin and monitor UIs |
||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
This document describes the OpenVPN server configuration and setup. | This document describes the OpenVPN server configuration and setup. | ||
| Line 89: | Line 87: | ||
* '''<code>tls-crypt tc.key</code>''': Additional encryption layer | * '''<code>tls-crypt tc.key</code>''': Additional encryption layer | ||
* '''<code>status /var/log/openvpn-status.log</code>''' + '''<code>status-version 1</code>''': Status file for openvpn-monitor (overrides systemd <code>--status-version 2</code>) | |||
* '''<code>management 127.0.0.1 8989</code>''': Localhost management interface for ovpn-admin live clients | |||
== Web Admin & Monitor (VPN-only) == | |||
{| class="wikitable" | |||
|- | |||
| UI || URL || Service | |||
|- | |||
| ovpn-admin || http://10.8.0.1:8085 || <code>ovpn-admin.service</code> | |||
|- | |||
| openvpn-monitor || http://10.8.0.1:8086 || Docker <code>/var/www/openvpn-monitor</code> | |||
|} | |||
See [[OpenVPN:Web Admin|OpenVPN:Web Admin]]. | |||
== Network Configuration == | == Network Configuration == | ||
| Line 135: | Line 150: | ||
<pre class="lang-bash"> | <pre class="lang-bash"> | ||
= Check if port is listening = | ==== Check if port is listening ==== | ||
ss -ulnp | grep 1194 | ss -ulnp | grep 1194 | ||
= Check firewall rules = | == Check firewall rules == | ||
iptables -L INPUT -n -v | grep 1194 | iptables -L INPUT -n -v | grep 1194 | ||
ufw status | grep 1194 # if using ufw | ufw status | grep 1194 # if using ufw | ||
| Line 159: | Line 174: | ||
<pre class="lang-bash"> | <pre class="lang-bash"> | ||
= Start OpenVPN = | ==== Start OpenVPN ==== | ||
systemctl start openvpn | systemctl start openvpn | ||
= Stop OpenVPN = | == Stop OpenVPN == | ||
systemctl stop openvpn | systemctl stop openvpn | ||
= Restart OpenVPN = | == Restart OpenVPN == | ||
systemctl restart openvpn | systemctl restart openvpn | ||
= Reload configuration (graceful) = | == Reload configuration (graceful) == | ||
systemctl reload openvpn | systemctl reload openvpn | ||
</pre> | </pre> | ||
| Line 175: | Line 190: | ||
<pre class="lang-bash"> | <pre class="lang-bash"> | ||
systemctl is-enabled openvpn | systemctl is-enabled openvpn | ||
= Output: enabled = | == Output: enabled == | ||
</pre> | </pre> | ||
Latest revision as of 15:30, 16 October 2026
This document describes the OpenVPN server configuration and setup.
Network Details
[edit]- Server IP: 10.8.0.1 (on tun0 interface)
- VPN Network: 10.8.0.0/24
- Public IP: 87.106.61.62
- Port: 1194 (UDP)
- Protocol: UDP
Server Files Location
[edit]All OpenVPN server files are located in /etc/openvpn/server/:
server.conf- Main server configuration
ca.crt- Certificate Authority certificate
ca.key- Certificate Authority private key
server.crt- Server certificate
server.key- Server private key
dh.pem- Diffie-Hellman parameters
tc.key- TLS-Crypt key (for additional security)
crl.pem- Certificate Revocation List
ipp.txt- IP address persistence file
easy-rsa/- Easy-RSA directory for certificate management
Server Configuration File
[edit]The main configuration is in /etc/openvpn/server/server.conf:
local 87.106.61.62 port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key dh dh.pem auth SHA512 tls-crypt tc.key topology subnet server 10.8.0.0 255.255.255.0 push "redirect-gateway def1 bypass-dhcp" ifconfig-pool-persist ipp.txt push "dhcp-option DNS 212.227.123.16" push "dhcp-option DNS 212.227.123.17" push "block-outside-dns" keepalive 10 120 user nobody group nogroup persist-key persist-tun verb 3 crl-verify crl.pem explicit-exit-notify client-config-dir /etc/openvpn/ccd script-security 2 up /etc/openvpn/iptables-restore.sh
Key Configuration Options
[edit]local 87.106.61.62: Binds to the VPS public IP address
port 1194: Standard OpenVPN port (UDP)
server 10.8.0.0 255.255.255.0: Defines the VPN subnet
push "redirect-gateway def1 bypass-dhcp": Routes all client traffic through VPN
client-config-dir /etc/openvpn/ccd: Directory for per-client configurations
crl-verify crl.pem: Certificate revocation list for security
tls-crypt tc.key: Additional encryption layer
status /var/log/openvpn-status.log+status-version 1: Status file for openvpn-monitor (overrides systemd--status-version 2)
management 127.0.0.1 8989: Localhost management interface for ovpn-admin live clients
Web Admin & Monitor (VPN-only)
[edit]| UI | URL | Service |
| ovpn-admin | http://10.8.0.1:8085 | ovpn-admin.service
|
| openvpn-monitor | http://10.8.0.1:8086 | Docker /var/www/openvpn-monitor
|
See OpenVPN:Web Admin.
Network Configuration
[edit]VPN Interface
[edit]The VPN creates a TUN interface (tun0):
ip addr show tun0
Output:
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500
inet 10.8.0.1/24 scope global tun0
IP Address Assignment
[edit]- Server: 10.8.0.1
- Clients: 10.8.0.2 - 10.8.0.254 (dynamically assigned)
- Synology NAS: Typically 10.8.0.2 (may be static via CCD)
Routing
[edit]The server uses iptables for NAT and routing:
NAT Rules:
iptables -t nat -L -n -v
Key Rules:
- SNAT: Masquerades VPN client traffic (10.8.0.0/24) to VPS public IP
- MASQUERADE: Allows VPN clients to access internet through VPS
Firewall Configuration
[edit]Required Ports
[edit]Ensure UDP port 1194 is open:
==== Check if port is listening ==== ss -ulnp | grep 1194 == Check firewall rules == iptables -L INPUT -n -v | grep 1194 ufw status | grep 1194 # if using ufw
iptables Rules
[edit]The OpenVPN server uses an iptables restore script (/etc/openvpn/iptables-restore.sh) that runs when the VPN starts.
Service Management
[edit]Service Status
[edit]Check OpenVPN service status:
systemctl status openvpn
Start/Stop/Restart
[edit]==== Start OpenVPN ==== systemctl start openvpn == Stop OpenVPN == systemctl stop openvpn == Restart OpenVPN == systemctl restart openvpn == Reload configuration (graceful) == systemctl reload openvpn
The OpenVPN service is enabled to start on boot:
systemctl is-enabled openvpn == Output: enabled ==
Related Documentation
[edit]- [Client Configuration](client-configuration.md) - Client setup
- [User Management](user-management.md) - Managing users
- [Certificate Management](certificate-management.md) - Certificate management
- Troubleshooting - Server troubleshooting