hardware:event-vpngw

VPN

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/24
  • wrt1.lan.c3voc.de: 10.73.1.0/24
  • wrt2.lan.c3voc.de: 10.73.2.0/24
  • wrt3.lan.c3voc.de: 10.73.3.0/24
  • wrt4.lan.c3voc.de: 10.73.4.0/24
  • wrt5.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.

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 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 :/

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

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.

  • hardware/event-vpngw.1467474308.txt.gz
  • Last modified: 2016/07/02 17:45
  • by andi