En generell guide for oppsett av OpenVPN på linux. openSUSE i dette tilfellet. Port 1194 (UDP) må åpnes i ruteren på server siden.
Oppsett av server
Easy-RSA, kommandolinjeinterface for Public Key Infrastructure (PKI). Brukes til å lage CA (Certificate Authorities), server og klient sertifikater, og nøkkelfiler. Kombineres ofte med OpenVPN for sikkerheten.
# Installer nødvendige pakker
zypper refresh
zypper install openvpn easy-rsa
# Lag en ny mappe og mappestruktur for easy-rsa sertifikater og nøkler
mkdir -p ~/easy-rsa
cd ~/easy-rsa
easyrsa init-pki
# Generer et nytt CA sertifikat og nøkkel-par.
# Brukes til å signere alle andre server/klient sertifikater.
# nopass = ingen passord
# Genererer filene ca.crt, private/ca.key
easyrsa build-ca nopass
# Genererer en ny CSR (certificate signing request) og
# en privat nøkkel for serveren. Dette bruker serveren
# for å indentifisere seg selv til klienter (server.crt i neste steg)
# Genererer filene private/server.key, reqs/server.req
easyrsa gen-req server nopass
# Signerer CSR med CA nøkkelen for å lage sertifikatet.
# Genererer filen issued/server.crt
easyrsa sign-req server server
# Genererer Diffie-Hellman (DH) parametere.
# Kreves for SSL/TLS kommunikasjon. Sikrer sikker
# utveksling av nøkler over en usikker kobling.
# Genererer filen dh.pem
easyrsa gen-dh
# Genererer en nøkkel for TLS autentikasjon og lagre som ta.key
openvpn --genkey secret ta.key
# Genererer et sertifikat for en klient (client1)
# Genererer filene pki/private/client1.key,
# pki/reqs/client1.req, pki/issued/client1.crt
easyrsa gen-req client1 nopass
easyrsa sign-req client client1
Nå har vi generert alle nøkler og sertifikater vi trenger, så da kan vi kopiere de inn til openvpn installasjonen, som vanligvis er /etc/openvpn. Henter også en mal for server konfigurasjon.
cp pki/ca.crt pki/issued/server.crt pki/private/server.key pki/dh.pem ta.key /etc/openvpn
cp /usr/share/doc/packages/openvpn/sample-config-files/server.conf /etc/openvpn/server.conf
Endre/legg til (hvis de ikke eksisterer) disse innstillingene i server.conf
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 1.0.0.1"
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
tls-auth /etc/openvpn/ta.key 0
auth SHA256
IPv4 forwarding må slås på. Dette er for å tillate videresending/ruting av trafikk mellom virituelle og fysiske nettverkskort.
sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
Legg til OpenVPN i brannmuren:
firewall-cmd --zone=public --add-service=openvpn --permanent
firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --reload
Vi kan nå aktivere og starte openvpn serveren:
systemctl enable openvpn@server
systemctl start openvpn@server
Oppsett av klient
Last ned nyeste klient fra openvpn
Last ned ca.crt, ta.key, client1.crt, client1.key fra serveren flytt de til en ny mappe.
Opprett en ny fil i denne mappen også, kall den "client1.ovpm", og sett følgende innstillinger:
client
dev tun
proto udp
remote IP/DOMENE 1194
resolv-retry infinite
nobind
persist-key
persist-tun
cipher AES-256-CBC
auth SHA256
verb 3
ca ca.crt
cert client1.crt
key client1.key
tls-auth ta.key 1
Åpne klienten og last inn ovpn-filen.
Oppsett av klient på iPhone
Embed innholdet av filene direkte i konfigurasjonsfilen. Eksempel:
client
dev tun
proto udp
remote IP/DOMENE 1194
resolv-retry infinite
nobind
persist-key
persist-tun
cipher AES-256-CBC
auth SHA256
verb 3
key-direction 1
<ca>
-----BEGIN CERTIFICATE-----
INNHOLD AV ca.crt
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
INNHOLD AV client1.crt
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
INNHOLD AV client1.key
-----END PRIVATE KEY-----
</key>
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
INNHOLD AV ta.key
-----END OpenVPN Static key V1-----
</tls-auth>
Viktig å definere key-direction 1 før <tls-auth> blokken.
Feilsøking
Øk verbositeten i server.conf. Sjekk feilmeldinger live med:
journalctl -u openvpn@server -f