OpenVPN-i paigaldamine serverisse: seadistus nullist 2026
Käivita serveris ühe käsuga (kontrolli enne skripti sisu allpool):
curl -sSL https://cp.lv/scripts/openvpn-na-servere.sh | sudo bash…või wgetiga:
wget -qO- https://cp.lv/scripts/openvpn-na-servere.sh | sudo bashSkripti sisu openvpn-na-servere.sh:
#!/usr/bin/env bash
# Manual OpenVPN setup: CA, certificates, server config (Ubuntu/Debian)
set -euo pipefail
RSA_DIR=/etc/openvpn/easy-rsa
WAN_IF=$(ip route list default | awk '{print $5; exit}')
export EASYRSA_BATCH=1
# 1. Install the packages
sudo apt update && sudo apt install -y openvpn easy-rsa
# 2. Certificate authority and keys (non-interactive)
sudo make-cadir "$RSA_DIR"
cd "$RSA_DIR"
sudo -E ./easyrsa init-pki
sudo -E ./easyrsa build-ca nopass
sudo -E ./easyrsa gen-req server nopass
sudo -E ./easyrsa sign-req server server
sudo -E ./easyrsa gen-dh
sudo openvpn --genkey secret /etc/openvpn/ta.key
sudo cp pki/ca.crt pki/dh.pem pki/issued/server.crt pki/private/server.key /etc/openvpn/
# 3. Server config (quoted 'EOF' writes the directives verbatim)
sudo tee /etc/openvpn/server.conf > /dev/null << 'EOF'
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
server 10.9.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
keepalive 10 120
cipher AES-256-GCM
user nobody
group nogroup
persist-key
persist-tun
verb 3
EOF
# 4. Forwarding, NAT and firewall
echo "net.ipv4.ip_forward = 1" | sudo tee /etc/sysctl.d/99-openvpn.conf
sudo sysctl -p /etc/sysctl.d/99-openvpn.conf
sudo iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o "$WAN_IF" -j MASQUERADE
sudo ufw allow 1194/udp || true
# 5. Start
sudo systemctl enable --now openvpn@server
echo "Done: OpenVPN listens on 1194/udp. Create a client with easyrsa gen-req."
Kõige kiiremini saab OpenVPN-i püsti valmisskriptiga: see paigaldab paketid, loob sertifitseerimiskeskuse, genereerib serveri konfiguratsiooni ja esimese kliendi .ovpn-profiili. Allpool on nii automaatne viis kui ka käsitsi seadistus easy-rsa abil, et mõista, mis kapoti all toimub.
Millal valida OpenVPN
OpenVPN on ajaproovile vastu pidanud, töötab nii TCP kui UDP peal ja läbib hõlpsasti karmid tulemüürid (port 443/TCP maskeerub HTTPS-iks). Kui vaja on maksimaalset ühilduvust ja blokeeringutest möödapääsu, on see kindel valik. Kiiruse ja lihtsuse pärast valitakse sagedamini WireGuard.
Nõuded: VPS 1 vCPU ja 512 MB RAM-iga, Ubuntu/Debian, root-ligipääs, avalik IPv4.
Kiire viis: skript
Populaarne ja läbiproovitud skript seab kõik üles interaktiivses režiimis:
apt update && apt install -y curl
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
./openvpn-install.sh
Skript küsib IP-d, protokolli (soovituslik on UDP), porti (vaikimisi 1194) ja DNS-i. Lõpuks ilmub kodukausta fail <nimi>.ovpn — see on valmis kliendiprofiil.
Uue kliendi lisamiseks hiljem käivitage skript uuesti — see pakub menüü.
Käsitsi seadistamine
1. samm. Pakettide paigaldamine
apt update
apt install -y openvpn easy-rsa
2. samm. Sertifitseerimiskeskus
make-cadir /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
./easyrsa init-pki
./easyrsa build-ca nopass
3. samm. Serveri sertifikaat ja võtmed
./easyrsa gen-req server nopass
./easyrsa sign-req server server
./easyrsa gen-dh
openvpn --genkey secret /etc/openvpn/ta.key
Kopeerige vajalikud failid:
cp pki/ca.crt pki/dh.pem pki/issued/server.crt pki/private/server.key /etc/openvpn/
4. samm. Serveri konfiguratsioon
Avage /etc/openvpn/server.conf redaktoris (sudo nano /etc/openvpn/server.conf) ja lisage sisu:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
server 10.9.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
keepalive 10 120
cipher AES-256-GCM
user nobody
group nogroup
persist-key
persist-tun
verb 3
Või looge konfiguratsioon tervikuna ühe käsuga — kopeerige ja kleepige konsooli (jutumärgid 'EOF' kirjutavad direktiivid sõna-sõnalt):
sudo tee /etc/openvpn/server.conf > /dev/null << 'EOF'
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
server 10.9.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
keepalive 10 120
cipher AES-256-GCM
user nobody
group nogroup
persist-key
persist-tun
verb 3
EOF
5. samm. Edastus ja tulemüür
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-openvpn.conf
sysctl -p /etc/sysctl.d/99-openvpn.conf
iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o eth0 -j MASQUERADE
ufw allow 1194/udp
Asendage eth0 oma välise liidesega (ip route list default).
6. samm. Käivitamine
systemctl enable --now openvpn@server
systemctl status openvpn@server
Kliendiprofiili genereerimine
Looge kliendi võti:
cd /etc/openvpn/easy-rsa
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1
Pange .ovpn kokku, põimides sertifikaadid siltide <ca>, <cert>, <key>, <tls-auth> vahele, ja määrake:
client
dev tun
proto udp
remote <teie_VPS_IP> 1194
cipher AES-256-GCM
key-direction 1
Saatke fail seadmesse ja importige see OpenVPN Connecti klienti.
Võrdlus WireGuardiga
| Parameeter | OpenVPN | WireGuard |
|---|---|---|
| Kiirus | Keskmine | Kõrge |
| Blokeeringutest möödapääs | Suurepärane (TCP/443) | Keskmine |
| Konfiguratsiooni lihtsus | Keerulisem | Lihtsam |
| Protokoll | TCP/UDP | UDP |
Kliendi ligipääsu tühistamine
Kui kliendi võti on kompromiteeritud, tühistage sertifikaat ja uuendage tühistusnimekirja (CRL):
cd /etc/openvpn/easy-rsa
./easyrsa revoke client1
./easyrsa gen-crl
cp pki/crl.pem /etc/openvpn/
Lisage faili server.conf rida ja taaskäivitage teenus:
crl-verify crl.pem
systemctl restart openvpn@server
Nüüd ei saa tühistatud profiil enam ühenduda, ülejäänud kliendid töötavad edasi.
Turvalisuse tugevdamine
Mõned praktikad, mis tasub kohe kasutusele võtta:
- piirake võtmete õigusi:
chmod 600 /etc/openvpn/server.key /etc/openvpn/ta.key; - käivitage deemon privileegideta kasutaja alt (
user nobody,group nogroup— juba konfiguratsioonis); - kasutage ainult kaasaegset šifrit
AES-256-GCMja parameetrittls-auth, mis kaitseb skaneerimise eest; - sulgege tulemüüriga kõik peale VPN-i ja SSH pordi.
Kontroll ja diagnostika
Veenduge, et teenus kuulab õiget porti:
ss -tulpn | grep 1194
Ühenduste ja vigade logid:
journalctl -u openvpn@server -f
Kontrollige, et liides tun0 on loodud:
ip a show tun0
Kui klient ühendub, aga internetti ei pääse, on põhjus peaaegu alati puuduv IP-edastus või vale liides MASQUERADE-reeglis.
Korduma kippuvad küsimused
UDP või TCP? UDP on kiirem ja soovituslik vaikevalik. TCP porti 443 kasutage siis, kui operaator blokeerib VPN-i.
Kuidas tühistada kliendi ligipääs?
./easyrsa revoke client1, seejärel ./easyrsa gen-crl ja teenuse taaskäivitus.
Miks pärast ühendumist internetti pole? Kontrollige IP-edastust ja MASQUERADE-reeglit õige liidesega.
Kas porti saab muuta 443-ks?
Jah, muutke konfiguratsioonis port ja proto tcp ning avage port tulemüüris — nii on VPN-i raskem blokeerida.
Skript või käsitsi seadistus? Skript on kiire ja turvaline tüüpülesannete jaoks. Käsitsi seadistus annab peene kontrolli.
Vajate serverit VPN-i jaoks? Vaadake VPS turvalisuse ja VPN-i jaoks ja VPS-i renti. Seadistame teie eest — Serverite haldus.