Wenn Sie ein getunneltes VPN via IPv4 aufsetzen, Ihr Rechner aber parallel über eine gültige IPv6-Konfiguration verfügt, kann sich Ihr kompletter Internetverkehr via IPv6 am sicheren Tunnel vorbeimogeln, was natürlich nicht passieren darf. Hier gibt es zwei Optionen: Zum einen lässt sich IPv6 während einer aktiven VPN-Verbindung abschalten, was den kompletten Internet-Traffic auf IPv4 zwingt und durch den Tunnel schickt. Der etwas komplexere, aber korrekte Weg ist natürlich, passende IPv6-Routen auf dem OpenVPN-Server anzulegen und damit den IPv6-Traffic über den VPN-Tunnel zu senden (6over4-Tunneling).
Für unseren Workshop rollen wir eine virtuelle Maschine mit CentOS 7 als VPN-Server auf der Google-Cloud-Plattform aus und richten das VPN via TCP-Port 443 ein. Wer in ein bestehendes Unternehmens- oder Heim-LAN tunneln möchte, kann dort eine VM oder einen Server bereitstellen – ein Raspberry PI genügt. Sie müssen dann aber sicherstellen, dass das System entweder über eine feste IP-Adresse oder einen FQDN (etwa mit DynDNS) von außen erreichbar ist. Die entsprechenden IP-Forwarding- und Port-Forwarding-Rules für den VPN-Zugang müssen auf dem Router bestehen.
Für unseren VPN-Server genügt eine günstige "n1-standard"-VM mit 3,75 GByte RAM, einer vCPU und einer 10 GByte Root-Disk. Da wir in unserem Szenario einen eigenen DynDNS-Dienst betreiben, bekommt der Cloudserver einen festen FQDN. Somit funktioniert die VPN-Clientkonfiguration unabhängig von den wechselnden IP-Adressen des Cloudservers. Googles CentOS-7-VMs integrieren von Haus aus das EPEL-Repository. Wer CentOS manuell installiert, muss dies mit
»yum install epel-release
«
erledigen. Alle benötigten Pakete für den VPN-Server installieren Sie mit
yum install openvpn easy-rsa -y
Der Server und der Clouddienst benötigen zunächst passende Firewallregeln, um den VPN-Traffic via Port 443 auf das System zu lassen. Damit das VPN funktioniert, muss der Server zudem IPv4-Forwarding zulassen – eine Funktion, die Google bei Cloudservern per Vorgabe abschaltet. Diese Einstellung finden Sie in der Datei "/etc/sysctl.d/11-gce-network-security.conf". In ihr ändern Sie den Parameter "net.ipv4.ip_forward=0" auf "net.ipv4.ip_forward=1". Bei einem manuell installierten CentOS schreiben Sie den Parameter einfach ans Ende der Datei "/etc/sysctl.d/99-sysctl.conf". Da die Konfiguration erst nach einem Neustart greift, setzen Sie den Parameter interaktiv über das Kommando
sysctl net.ipv4.ip_forward=1
Zudem muss die Firewall des Rechners den ausgehenden IP-Traffic des Tunnels maskieren, was das Kommando
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
erledigt, wenn Sie iptables nutzen oder
firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o eth0 -j MASQUERADE
mit Firewalld.