Ich nutze schon länger einen eigenen VPN Server auf Basis von OpenVPN um meinen Internettraffic in öffentlichen, nicht vertrauenswürdigen Netzwerken zu verschlüsseln. Dieser hat allerdings nur einen IPv4 Tunnel unterstützt. Meine wenig zufriedenstellende Lösung für dieses Problem war immer das deaktivieren von IPv6 in solchen Situationen, um sicherzustellen dass keine Daten über die IPv6 Verbindung am VPN vorbei gelangen.

Da ich diese Situation für nicht akzeptabel hielt habe ich schon länger versucht den Server so zu konfigurieren dass der Client auch eine IPv6 Adresse erhält und IPv6 Traffic durch den VPN Tunnel geleitet wird.

Der einfachste Weg dies zu realisieren war lange Zeit die Nutzung der OpenVPN kompatiblen VPN Software pritunl. Pritunl lässt sich schnell einrichten, lässt sich einfach über ein Webinterface konfigurieren und unterstützt auch IPv6.
Allerdings war Pritunl bei mir nie so zuverlässig wie mein alter OpenVPN Server. Außerdem vergibt Pritunl keine öffentlichen IPv6 Adressen an die Clients sondern, sondern private und leitet den Traffic via NAT über die öffentliche Adresse des Servers. Aus diesem Grund war ich mit Pritunl leider auch nicht zufrieden.

Meine Wunsch war der Aufbau eines Tunnels über IPv4 (da eine IPv4 Verbindung i.d.R. immer vorhanden ist). Außerdem sollte darüber der IPv6 Traffic getunnelt werden und die Clients sollen eine öffentliche IPv6 Adresse aus dem /64 des Servers erhalten

Aus diesem Grund habe ich, glaube ich, sämtliche Webseiten die Google zum Suchbegriff „Openvpn IPv6“ ausspuckt gelesen und viele Konfigurationen ausprobiert. Letztendlich haben mich zwei Seiten auf die richtige Spur zu einer für mich funktionierenden Konfiguration gebracht. Einmal ein Beitrag aus dem Openvpn Forum und ein Blogbeitrag auf techblog.synagila.com.

Da allerdings beide Artikel bei mit nicht 1:1 funktioniert haben, beschreibe ich hier meine Konfiguration, wie sie für mich auf einem Root-Server (Produktname) von Netcup und Ubuntu Server 16.04 funktioniert.

Ich gehe in diesem Beispiel davon aus dass folgende (fiktive) IP Adressen/Bereiche vorliegen, bzw konfiguriert sind:

Öffentliche IPv4 Adresse des Servers: 84.154.165.64
Zugeteilter IPv6 Adressbereich: 2003:6a:6b09:3a00::/64
Konfigurierte IPv6 Adresse des Servers: 2003:6a:6b09:3a00:aaaa::10
Für das VPN verwendete IPv6 Subnetz: 2003:6a:6b09:3a00:bbbb::/112

Paketinstallation

Zuerst wird Openvpn und Easy-RSA zur Schlüsselverwaltung installiert

sudo apt install openvpn easy-rsa

Schlüsselerstellung

Um die weiteren Befehle direkt ausführen zu können wird zu User root gewechselt

sudo -i

Dann werden die Beispielskripte von easy-rsa zur Schlüsselerzeugung in das Openvpnverzeichnis kopiert und dort der Ordner Keys erstellt.

cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
mkdir keys

Dann können die Standardwerte zur Schlüssel und Zertifikatserstellung in der Datei vars geändert werden, damit diese Daten bei der Erzeugung von Schlüsseln und Zertifikaten bereits voreingestellt sind. Dazu wird die Datei in einem Texteditor geöffnet und folgende Daten angepasst:

nano vars
export KEY_COUNTRY="LAND"
export KEY_PROVINCE="BUNDESLAND"
export KEY_CITY="STADT"
export KEY_ORG="ORGANISATION"
export KEY_EMAIL="name@example.com"
export KEY_OU="ABTEILUNG"

# X509 Subject Field
export KEY_NAME="server"

Damit OpenVPN die gerade geänderten Variablen bei der Erstellung der Zertifikate verwendet müssen diese in die aktuellen Umgebungsvariablen aufgenommen werden. Dieser Befehl muss dementsprechend wieder ausgeführt werden wenn später nach einem Reboot weitere Schlüssel und Zertifikate erstellt oder widerrufen werden sollen.

source ./vars

Dann werden evtl. vorhandene alte Schlüssel entfernt und die CA (certificate authority) erstellt, mit welcher anschließend die neuen Zertifikate signiert werden.

./clean-all
./build-ca

Dann können Serverschlüssel und Zertifikat erstellt werden mit

./build-key-server server

Die Abfrage nach einem Passwort kann mit Enter übersprungen werden. Die Abfragen am Ende zweimal mit „y“ bestätigen.

Dann können Zertifikate und Schlüssel für die Clients erstellt werden. Hier muss im Feld „common name“ ein Name für den Clients eingegeben werden.

./build-key clientname1
./build-key clientname2
./build-key clientname3

Nun müssen noch die Diffie-Hellman-Parameter generiert werden, mit denen Schlüssel sicher über unsichere Kanäle ausgehandelt werden können

./build-dh

Zum Schutz vor DOS Atacken kann nun noch der Signierungsschlüssel ta.key erstellt werden. Wenn dessen Nutzung konfiguriert ist werden alle Anfragen an den Server hiermit signiert. Nicht signierte Anfragen werden vom Server direkt verworfen, was Ressourcen spart und DOS Attacken vorbeugt.

openvpn --genkey --secret keys/ta.key

Die Zertifikate und Schlüssel für den Server und die Clients sind nun unter /etc/openvpn/easy-rsa/keys gespeichert.
Nun können die Schlüssel auf die entsprechenden Computer transferiert werden. Aus Sicherheitsgründen sollten auf jedem Computer nur die benötigten Dateien zu finden sein.
Der Server benötigt die server.key, server.crt, die ca.crt, dh2048.pem sowie die ta.key.

Die Clients benötigen die clientname1.key clientname1.crt die ca.crt sowie die ta.key.

OpenVPN Server konfigurieren

Als erstes wird der User „openvpn“ erstellt, welcher den OpenVPN Dienst ausführt damit dieser nicht als Root läuft.

addgroup --system --no-create-home --disabled-login --group openvpn
adduser --system --no-create-home --disabled-login --ingroup openvpn openvpn

Dann muss dem Kernel das weiterleiten von Traffic vom Client zum Internet erlaubt werden, indem die folgenden Zeilen in der /etc/sysctl.conf an Ende eingefügt, oder angepasst werden:

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.proxy_ndp = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

und die iptables Regeln für IPv4 und IPv6 gesetzt werden. Hier muss evtl. der Name des verwendeten Netzwerkinterfaces angepasst werden sowie das vom Serveranbieter zugewiesene /64 subnet angepasst werden. Dann werden folgende Befehle nacheinander ausgeführt:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A INPUT -m conntrack --ctstate INVALID -j DROP
ip6tables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp -j ACCEPT
ip6tables -A FORWARD -p ipv6-icmp -j ACCEPT
ip6tables -A FORWARD -s 2003:6a:6b09:3a00::/64 -j ACCEPT
ip6tables -A INPUT -j REJECT

Damit die Regeln nach einem Neustart wieder aktiv sind, werden die aktuellen iptables Regeln zuerst in eine Datei exportiert:

iptables-save > /etc/iptables.rules
ip6tables-save > /etc/ip6tables.rules

Diese werden dann nach einem Neustart wieder geladen, indem in die Datei
/etc/network/if-up.d/iptables mit folgendem Inhalt angelegt wird:

#!/bin/sh
iptables-restore < /etc/iptables.rules
ip6tables-restore < /etc/ip6tables.rules

Diese muss dann noch ausführbar gemacht werden

chmod +x /etc/network/if-up.d/iptables

Über die Kernel Parameter wurde oben festgelegt dass der Server als NDP (Neighbor Discovery Protocol) Proxy fungiert. Die NDP Proxy Regeln für die Openvpn Clients werden indem die Datei /etc/openvpn/scripts/ndp-proxy-setup.sh mit folgendem Inhalt erstellt wird. Auch hier muss ggf. der Name des Netzwerkinterfaces geändert werden.

#!/bin/bash

action="$1"
addr="$2"
pubif="eth0"

if [[ "${addr//:/}" == "$addr" ]]
then
    # not an ipv6 address
    exit
fi

case "$action" in
    add)
        ip -6 neigh add proxy ${addr} dev ${pubif}
        ;;
    update)
        ip -6 neigh replace proxy ${addr} dev ${pubif}
        ;;
    delete)
        ip -6 neigh del proxy ${addr} dev ${pubif}
        ;;
esac

auch dieses Skript muss nun noch ausführbar gemacht werden

chmod 744  /etc/openvpn/scripts/ndp-proxy-setup.sh

Da OpenVPN aus Sicherheitsgründen nicht als root laufen soll, die oben definierten Einstellungen aber nur von root vorgenommen werden dürfen, muss dem User openvpn erlaubt werden diese eine Datei mit Rootrechten ausführen zu dürfen. Zur Konfiguration der /etc/sudoers wird diese mit dem Befehl

visudo

geöffnet und folgende Zeilen eingefügt

# OpenVPN
openvpn ALL=NOPASSWD: /etc/openvpn/scripts/ndp-proxy-setup.sh

Letztendlich muss nur noch die eigentliche Serverkonfiguration für den OpenVPN Server selbst erstellt werden. Dazu wird die Datei /etc/openvpn/server.conf mit untenstehendem Inhalt erstellt. Dabei muss an den entsprechenden Stellen wieder das /64 IPv6 Prefix welches man von seinem Serveranbieter erhalten hat angepasst werden.

port 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
topology subnet
server 10.8.0.0 255.255.255.0
server-ipv6 2a03:4000:6:11cd:bbbb::/112
ifconfig-pool-persist ipp.txt
push "route-ipv6 2000::/3 2a03:4000:6:11cd:bbbb::1 1"
script-security 2
learn-address "/usr/bin/sudo -u root /etc/openvpn/scripts/ndp-proxy-setup.sh"
push "redirect-gateway def1"
push "redirect-gateway ipv6"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0
tls-version-min 1.2
tls-cipher TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256
auth SHA512
cipher AES-256-CBC
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 6
user openvpn
group openvpn

Dann wird noch der Autostart von Openvpn über Systemd aktiviert, wobei der Teil server in diesem Befehl der Name unserer server.conf Datei ist. Wäre diese anders benannt, oder hätten wir mehrere Konfigurationen müsste der Befehl angepasst werden.

systemctl enable openvpn@server.service

Noch eine kurze Anmerkung falls die Firewall UFW verwendet wird. Diese verhindert in der Standardeinstellung dass Pakete weitergeleitet werden. Um dies zu erlauben muss in der etc/default/ufw die DEFAULT_FORWARD_POLICY auf ACCEPT geändert werden.

Um Sicherzustellen dass alle Konfigurationen übernommen wurden sollte der Server einmal mit einem beherzten „reboot“ neugestartet werden.

Client konfigurieren

Die Konfigurationsdatei client.ovpn, welche auf den Clients benötigt wird sieht wie folgend aus. Hier muss die öffentliche IPv4 Adresse des Servers angepasst werden, sowie ggf. die Namen und Pfade zu den Schlüsseln und Zertifikaten auf dem Clientcomputer.

client
dev tun
proto udp
remote 84.154.165.64 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-CBC
tls-version-min 1.2
tls-cipher TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256
auth SHA512
comp-lzo
verb 6
explicit-exit-notify

Anschließend kann im Terminal eine Verbindung zum OpenVPN Server aufgebaut werden mit:

sudo openvpn /pfad/zur/client.conf

Um zu testen ob das VPN funktioniert kann z.B. die Seite http://test-ipv6.com aufgerufen werden. Die erkannte IPv4 Adresse muss nun die öffentliche IP des Servers sein. Die erkannte IPv6 Adresse muss aus dem Pool des Servers stammen.

Zur Konfiguration von weiteren (grafischen) Clients möchte ich gerne auf meine älteren Artikel verweisen.

OpenVPN Client unter Ubuntu (Desktop) einrichten

OpenVPN Client unter Windows einrichten (in dieser Konfiguration ungetestet)

OpenVPN Client unter Android einrichten

Dieser Text ist lizensiert unter einer Creative Commons Namensnennung 4.0 International Lizenz

19 Comments

  1. Interessant, hab vielen Dank für deine Anleitung! Ich hatte vor ca. einem Jahr schon mal selbst einen Versuch unternommen, um OpenVPN unter OpenWRT auf meinem Router ans Laufen zu bekommen. Leider hat das trotz mehrmaliger Anläufe nicht funktioniert, wahrscheinlich auch, weil die Anleitungen und Ansätze sich teilweise stark wiedersprechen und ja doch einige Komponenten in einander greifen müssen:
    https://wiki.openwrt.org/doc/howto/vpn.openvpn
    https://wiki.openwrt.org/inbox/vpn.howto
    https://wiki.openwrt.org/doc/howto/vpn.server.openvpn.tun

  2. Ich überlegte schon länger, mir sowas mal zu bauen. Herzlichen Dank! Ob ich es nun wirklich mal angehe, weiß ich zwar immer noch nicht genau, aber es reduziert zumindest schon deutlich meine bisherige Ablehnung, die sich aus dem drohenden, hohen Aufwand ergab, das alles in meiner spärlichen Freizeit durchzuarbeiten und auszuprobieren.

  3. Hallo,

    danke für die Anleitung. Leider bekomme ich keine Verbindung zum Server hin.
    Der Client für Android gibt folgende Meldung aus:

    2017-03-26 17:41:06 TCP/UDP: Preserving recently used remote address: [AF_INET]81.169.168.7:1194
    2017-03-26 17:41:06 Socket Buffers: R=[212992->212992] S=[212992->212992]
    2017-03-26 17:41:06 MANAGEMENT: CMD ’needok ‚PROTECTFD‘ ok‘
    2017-03-26 17:41:06 UDP link local (bound): [AF_INET][undef]:1194
    2017-03-26 17:41:06 UDP link remote: [AF_INET]81.169.168.7:1194
    2017-03-26 17:41:06 MANAGEMENT: >STATE:1490542866,WAIT,,,,,,
    2017-03-26 17:42:06 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
    2017-03-26 17:42:06 TLS Error: TLS handshake failed
    2017-03-26 17:42:06 TCP/UDP: Closing socket
    2017-03-26 17:42:06 SIGUSR1[soft,tls-error] received, process restarting

    http://pastebin.com/pMu1FvZN

  4. Super Anleitung. Freue mich schon das auszuprobieren. Werde mich zurückmelden. Wenn’s klappt würde ich direkt mal den Ubuntuusers.de-Artikel zu OpenVPN anpassen.

  5. Daniel Wilhelm

    1A Anleitung! Top!
    Musste nur die Cipher Liste anpassen wegen zu alter OpenVPN Client Version.
    Wenn du Donations via PayPal nimmst, sag bitte Bescheid!

    Grüße,
    Daniel

  6. Hi,
    danke für die Anleitung. Suche schon seit einem Jahr nach so etwas.

    Für mich war die Konfiguration jedoch minimal anders, da mein Client auf iOS läuft und immer folgenden Fehler geworfen hat: „tun_prop_route_error: route destinations other than vpn_gateway or net_gateway are not supported“

    Konnte den fehler durch Ändern von
    – push „route-ipv6 2000::/3 2a03:4000:6:11cd:bbbb::1 1“
    in
    – push „route-ipv6 2000::/3“
    beheben.

    Vielleicht hilft diese Info ja jemandem.

    Viele Grüße

  7. Anonymous

    Hallo!

    Danke für die gute Anleitung! Auf neueren Systemen gibt es einige Änderungen:
    (hier am Beispiel von Ubuntu 18.04)

    1.)
    vor „source ./vars“ noch einen Sym-Link anlegen:
    cd /etc/openvpn/easy-rsa/
    ln -s openssl-1.0.0.cnf openssl.cnf

    2.)
    anstelle von /etc/network/if-up.d/iptables die Datei anlegen:
    /etc/networkd-dispatcher/routable.d/20-iptables-openvpn

    3.)
    anstelle von „visudo“ die Datei /etc/sudoers.d/10-openvpn anlegen:
    # OpenVPN
    openvpn ALL=NOPASSWD: /etc/openvpn/scripts/ndp-proxy-setup.sh

    4.)
    Ich habe die iptables-/ip6tables-Regeln in einer Datei vorbereitet,
    die ich nach Bedarf editiere und verfeinere:

    #!/bin/sh
    #—– Anfang der Datei —–
    #———————– iptables ———————–
    iptables -t nat -F
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    # Ports in den Tunnel umleiten
    iptables -t nat -A PREROUTING -p tcp -d 84.154.165.64 –dport 22 -j DNAT –to 10.8.0.2 # SSH
    iptables -t nat -A PREROUTING -p tcp -d 84.154.165.64 –dport 25 -j DNAT –to 10.8.0.2 # SMTP
    iptables -t nat -A PREROUTING -p tcp -d 84.154.165.64 –dport 80 -j DNAT –to 10.8.0.2 # http
    iptables -t nat -A PREROUTING -p tcp -d 84.154.165.64 –dport 443 -j DNAT –to 10.8.0.2 # https
    iptables -t nat -A PREROUTING -p tcp -d 84.154.165.64 –dport 587 -j DNAT –to 10.8.0.2 # submission (postfix)
    iptables -t nat -A PREROUTING -p tcp -d 84.154.165.64 –dport 993 -j DNAT –to 10.8.0.2 # IMAPS
    iptables -t nat -A PREROUTING -p tcp -d 84.154.165.64 –dport 4190 -j DNAT –to 10.8.0.2 # managesieve

    #———————– ip6tables ———————–
    ip6tables -F
    ip6tables -A INPUT -i lo -j ACCEPT

    ip6tables -A INPUT -m conntrack –ctstate INVALID -j DROP
    ip6tables -A INPUT -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT
    ip6tables -A FORWARD -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT
    ip6tables -A INPUT -p ipv6-icmp -j ACCEPT
    ip6tables -A INPUT -p tcp –dport 22 -j ACCEPT # erlaube SSH zum Host
    ip6tables -A FORWARD -p ipv6-icmp -j ACCEPT
    ip6tables -A FORWARD -s 2003:6a:6b09:3a00::/64 -j ACCEPT # Alle Pakete aus /64 weiterleiten
    ip6tables -A FORWARD -s 2003:6a:6b09:3a00:8888::/112 -j ACCEPT # Alle Pakete aus dem OpenVPN /112 nach draußen erlauben
    # erlaube eingehende Ports zu den openVPN-Clients…
    ip6tables -A FORWARD -d 2003:6a:6b09:3a00:8888::/112 -p tcp –dport 22 -j ACCEPT # SSH
    ip6tables -A FORWARD -d 2003:6a:6b09:3a00:8888::/112 -p tcp –dport 25 -j ACCEPT # smtp
    ip6tables -A FORWARD -d 2003:6a:6b09:3a00:8888::/112 -p tcp –dport 80 -j ACCEPT # http
    ip6tables -A FORWARD -d 2003:6a:6b09:3a00:8888::/112 -p tcp –dport 443 -j ACCEPT # https
    ip6tables -A FORWARD -d 2003:6a:6b09:3a00:8888::/112 -p tcp –dport 587 -j ACCEPT # submission (posfix)
    ip6tables -A FORWARD -d 2003:6a:6b09:3a00:8888::/112 -p tcp –dport 993 -j ACCEPT # imaps
    ip6tables -A FORWARD -d 2003:6a:6b09:3a00:8888::/112 -p tcp –dport 4190 -j ACCEPT # managesieve
    ip6tables -A INPUT -j REJECT

    iptables-save > /etc/iptables.rules
    ip6tables-save > /etc/ip6tables.rules
    #—– ENDE der Datei —–

    Ich habe auch diverse Ports auf dem Server in den Tunnel umgebogen, damit
    die entsprechenden Dienste auf dem Client laufen können.

    5.) in der server.cnf:
    # 4x DNS-Server angeben…
    push „dhcp-option DNS 8.8.8.8“
    push „dhcp-option DNS 8.8.4.4“
    push „dhcp-option DNS6 2001:4860:4860::8888“
    push „dhcp-option DNS6 2001:4860:4860::8844“
    verb 3 # reicht im normalen Betrieb

    Wenn man einen Provider mit gutem DNS hat,
    kann man natürlich auch dessen Server eintragen.

    6.)
    auf dem Client aktiviert man das openvpn (sobald man sich sicher ist, dass es
    richtig konfiguriert ist) mit:
    systemctl enable openvpn@client.service

    7.)
    Und nicht vergessen: Im Anschluss mit nmap einen Portscan machen und überprüfen,
    ob aus dem Internet auch wirklich nur die gewünschten Ports erreichbar sind!

    • Niko

      Vielen Dank fürs Dokumentieren der Änderungen.

  8. keineAhnungIchbinUnkreativ;P

    Auch von mir ein Herzliches Dankeschön für diese Anleitung! War wirklich gefühlt die einzige im ganzen Internet, die funktioniert hat 🙂

    Da ich firehol als Firewall einsetze, hier meine Konfiguration dafür:


    # generell für IPV6
    ipv6 interface any v6interop proto icmpv6
    client ipv6neigh accept
    client ipv6mld accept
    server ipv6neigh accept
    client ipv6mld accept
    client ipv6router accept
    policy return

    #IN=tun0 OUT=ens3
    router4 openvpn2internet inface tun0 outface ens3
    masquerade
    route all accept

    router6 openvpn2internet inface tun0 outface ens3
    route all accept

    router openvpn2openvpn inface tun0 outface tun0
    route all accept

    interface tun0 openvpn
    server all accept
    client all accept

  9. 0berfoerster

    Super Sache,

    habe meinen bestehende server.conf mit den ipv6 Daten ergänzt und funktioniert tadellos.

    Vielen Dank

  10. Hi,
    Vielen Dank für dieses Tutorial. Mit kleinen Anpassungen aus den Kommentaren läuft es auch unter Stretch wunderbar.
    Allerdings bekomme ich auf dem Server selber keine funktionierende ipv6 Verbindung hin. Habe das von netcup bereitgestellte /64 Subnet in 2 /65 geteilt. Im vpn läuft alles wunderbar.

    • Niko

      Hallo, ich muss mal ganz dumm fragen, hat dein Server denn eine IPv6 Adresse? Ich weiß nicht wie es aktuell ist, aber eine Zeitlang waren Vserver bei Netcup standardmäßig nur mit einer IPv4 Adresse konfiguriert. Die Einstellungen für v6 musste man dann selbst vornehmen.

      • Anonymous

        die IPV6 konfig für den Server muss in der Tat selbst erstellt werden. Habe ich natürlich gemacht.

  11. Ich finde Dein Tutorial sehr gut, hat mir viel Arbeit abgenommen.
    Jetzt hätte ich eine Frage, hast Du in dem Kontext schon einmal mit Wireguard experimentiert?

    • Niko

      Ich habe bisher keine Erfahrung mit Wireguard. Wenn ich wieder einen VPN-Server aufsetzten würden, dann würde ich das sicher mit Wireguard testen.

  12. Bei mir klappt es leider nicht.

    ich habe:

    https://github.com/angristan/openvpn-install configuriert mit IPV6

    External Server IP = 2001:8d8:1800:8486::1
    Internal OVPN Server IP = fd42:42:42:42::1
    Internal OVPN Client IP = fd42:42:42:42::1000

    und

    sudo ip6tables -F &&
    sudo ip6tables -A INPUT -i lo -j ACCEPT &&
    sudo ip6tables -A INPUT -m conntrack –ctstate INVALID -j DROP &&
    sudo ip6tables -A INPUT -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT &&
    sudo ip6tables -A FORWARD -m conntrack –ctstate RELATED,ESTABLISHED -j ACCEPT &&
    sudo ip6tables -A INPUT -p ipv6-icmp -j ACCEPT &&
    sudo ip6tables -A INPUT -p tcp –dport 22 -j ACCEPT &&
    sudo ip6tables -A FORWARD -p ipv6-icmp -j ACCEPT &&
    sudo ip6tables -A FORWARD -s 2001:8d8:1800:8486::1 -j ACCEPT &&
    sudo ip6tables -A FORWARD -s fd42:42:42:42::1000 -j ACCEPT &&
    sudo ip6tables -A FORWARD -d fd42:42:42:42::1000 -p tcp –dport 22 -j ACCEPT &&
    sudo ip6tables -A FORWARD -d fd42:42:42:42::1000 -p tcp –dport 25 -j ACCEPT &&
    sudo ip6tables -A FORWARD -d fd42:42:42:42::1000 -p tcp –dport 80 -j ACCEPT &&
    sudo ip6tables -A FORWARD -d fd42:42:42:42::1000 -p tcp –dport 443 -j ACCEPT &&
    sudo ip6tables -A FORWARD -d fd42:42:42:42::1000 -p tcp –dport 587 -j ACCEPT &&
    sudo ip6tables -A FORWARD -d fd42:42:42:42::1000 -p tcp –dport 993 -j ACCEPT &&
    sudo ip6tables -A FORWARD -d fd42:42:42:42::1000 -p tcp –dport 4190 -j ACCEPT &&
    sudo ip6tables -A INPUT -j ACCEPT

    Leider kann ich keine SSH Verbindung mit meinem Client über 2001:8d8:1800:8486::1 aufbauen. Bitte dringend um Hilfe.

  13. Hallo Niko,

    Herzlichen dank für die genaue Einleitung. Ist es eigentlich möglich dies hier zu erreichen obwohl man nur eine einzige IPv6 von dem Provider erhalten hat, anstatt einem vollen /64? Als Beispiel gelten VPS von Linode oder OVH, wo man nur eine einzige IPv6 erhält.

    Ich frage mich ob man in diesem Sinne eine IPv6 ULA anlegen kann:

    auto lo:1
    iface lo:1 inet6 static
    address fd42:42:42::1
    netmask 64
    autoconf 1

    Vielen Dank

    • Niko

      Hallo Houman,

      vor diesem Problem stand ich bisher noch nicht und habe mich nicht damit beschäftigt.