**This is an old revision of the document!**
VPN
Allgemein
Das VPN ist primär dafür gedacht, um Remote-Hands eine direkte Verbindung auf die VOC-Infrastruktur auf einem Event zu ermöglichen. Darüber hinaus kann das VPN auch dazu genutzt werden, um Live-Streams direkt von den Encoder PCs's zu ziehen. Traffic der nicht direkt aus oder in folgende Netze geht, wird nicht durch das VPN geleitet: 10.73.0.0/16
und 10.8.0.0/16
.
Folgende VPN-Clients sind für spezielle Subnetze zuständig:
router.lan.c3voc.de
: 10.73.0.0/24, 10.73.111.0/24wrt1.lan.c3voc.de
: 10.73.1.0/24wrt2.lan.c3voc.de
: 10.73.2.0/24wrt3.lan.c3voc.de
: 10.73.3.0/24wrt4.lan.c3voc.de
: 10.73.4.0/24wrt5.lan.c3voc.de
: 10.73.5.0/24
Konfiguriert werden die entsprechenden Subnetzzugehörigkeiten auf mng.ber.c3voc.de /etc/openvpn/clients/wrt${i}@mng.ber.c3voc.de
mit dem iroute
Befehl.
Tweaks
Router IP vergeben
Um den WRT auch zum default GW (10.73.0.254) des jeweiligen Subnetzes zu machen kann man entweder das Interface router
im LUCI-Webinterface aktivieren (Network - Interfaces - ROUTER - Connect) oder folgendes als root
auf den jeweiliegem WRT ausführen:
uci set network.router.enabled=1; uci commit; ifup router
<note warning>Um Konflikte zu vermeiden, sollte darauf geachtet werden, dass die IP-Adresse 10.73.0.254
nicht automatisch konfiguriert wird, sondern nur bei Bedarf.</note>
Weiteren Traffic durch das VPN routen
Auf mng.ber.c3voc.de ist ein NAT für das Subnet 10.8.0.0/16
eingerichtet. Damit kann nach Bedarf auch das VPN als Endpunkt für Internet-Traffic genutzt werden.
Szenario 1:
Auphonic IP ist im Event-Netz für ausgehende Verbindungen gesperrt. Um den Auphonic-Traffic mit durch das VPN zu routen, muss auf dem zuständigen WRT folgende Route per Konsole hinzugefügt werden:
ip route add $auphonicip via 10.8.0.1 dev tun0
oder *
route add $auphonicip gw 10.8.0.1 dev tun0
Neuen VPN Client konfigurieren
Auf dem VPN-Server
neuen Key erstellen
Der VPN-Server ist aktuell mng.ber.c3voc.de. Sämtliche Keys die für das OpenVPN mit easy-rsa2 verwaltet werden befinden sich in dem git-Repository git@mng.ber.c3voc.de:openvpn-ca
. Dieses Repository lokal auschecken und neuen Key generieren:
source vars ./build-key <hostname> # alle Nachfragen müssen mit 'y' bestätigt werden
Anschließend Änderungen commiten (ohne erstellten private key), pushen und das ausgecheckte Repository wieder lokal löschen. Alternativ Permissions anpassen chmod 600 keys/*key
.
Änderungen auf dem VPN-Server anwenden:
sudo -E su cd /etc/openvpn/easy-rsa2 git pull origin master chmod 600 keys/*key
Spezielle Server-Konfiguration für den Client anpassen
Jeder Client bekommt bestimmte routen per default gepushed. Um einzustellen, welcher Client welche Routen bekommt, werden unter /etc/openvpn/clients
entsprechende Dateien gepflegt. Der Name der Dateien ist identisch mit dem Common-Name des Client-Zertifikats:
cd /etc/openvpn/clients ln -s default_clients <client> /etc/init.de/openvpn restart # Achtung das kickt leider alle Clients :/
Auf dem Client
OpenVPN client installieren z.B.:
aptitude install openvpn vim /etc/openvpn/voc.conf
/etc/openvpn/voc.conf
anpassen:
; general client dev tun topology subnet ; connection remote 195.54.164.163 port 1194 proto udp keepalive 10 30 resolv-retry infinite link-mtu 1400 mssfix 0 ; crypto cipher AES-128-CBC ; certificates key /etc/openvpn/<client>.key # TODO: change me ca /etc/openvpn/ca.crt cert /etc/openvpn/<client>.crt # TODO: change me tls-auth /etc/openvpn/ta.key 1 ; auth tls-cipher "DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA" tls-client auth SHA512 remote-cert-tls server ; logging verb 0
Folgende Daten müssen lokal in das /etc/openvpn/
-Verzeichnis kopiert werden:
ta.key
ca.crt
<hostname>.key
<hostname>.crt
Anschließend Permissions anpassen und OpenVPN-Client starten:
chmod 600 /etc/openvpn/*.key service openvpn start tail -f /var/log/daemon.log
Client Zertifikat widerrufen
Auf dem VPN-Server in den Ordner /etc/openvpn/easy-rsa2/
wechseln und das revoke-full
wie folgt aufrufen:
source vars ./revoke-full <client CN>
Die letzte Zeile der anschließenden Ausgabe sollte lauten: error 23 at 0 depth lookup:certificate revoked
. Änderungen zum Git-Server commiten sowie crl.pem
kopieren:
cp /etc/openvpn/easy-rsa2/keys/crl.pem /etc/openvpn/crl.pem
OpenVPN-Server neustarten.