staging.inyokaproject.org

VPN Server einrichten der als default Gateway dienen soll

Status: Gelöst | Ubuntu-Version: Server 20.04 (Focal Fossa)
Antworten |

bugblatterbeast

Avatar von bugblatterbeast

Anmeldungsdatum:
30. Januar 2008

Beiträge: 415

Hallo,

ich möchte mir auf meinem Server einen VPN Service einrichten der nur dazu dienen soll, in öffentlichen Netzwerken (z.B. Internet-Cafes oder Hotels) eine verschlüsselte Internet-Verbindung zu haben.

Ich habe auf einem anderen Server bereits OpenVPN eingerichtet, aber das war ein anderer Anwendungsfall bei dem die Client Workstations ihre eigene Internetverbindung nutzen sollten um keinen unnötigen Traffic zu generieren und nur der Zugriff auf das Lokale Netzwerk des Servers über VPN erfolgte.

Hat jemand von Euch bereits Erfahrung mit dem jetzt geplanten Anwendungsfall? Gibt es evtl. eine Lösung die besser geeignet ist als OpenVPN?

Ansonsten würde ich erst mal wieder einen OpenVPN einrichten, eine NAT-Regel für 0.0.0.0 mit masquerade erstellen und das Default Gateway pushen.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 13293

bugblatterbeast schrieb:

Gibt es evtl. eine Lösung die besser geeignet ist als OpenVPN?

Besser geeignet nicht, ... aber gleichwertig, mit z. B. WireGuard.

bugblatterbeast

(Themenstarter)
Avatar von bugblatterbeast

Anmeldungsdatum:
30. Januar 2008

Beiträge: 415

Vielen Dank für den Hinweise lubux. Für WireGuard gibt es schon mal ein Tutorial für den geplanten Anwendungsfall. Es sieht auf den ersten Blick so aus, als wenn das deutlich weniger Arbeit wäre als etwas vergleichbares mit OpenVPN einzurichten.

Lässt sich WireGuard auch in den Network Manager integrieren? Ich habe kein vergleichbares Paket wie z.B. network-manager-openvpn für WireGuard gefunden (edit: auf dem Client meine ich natürlich /edit).

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 13293

bugblatterbeast schrieb:

Lässt sich WireGuard auch in den Network Manager integrieren?

Ja, aber (noch) nicht als Paket. Es gib ein WG-VPN-Plugin: https://linutzer.de/tutorials/elementary-os/61-wireguard-plugin-f%C3%BCr-network-manager

Das ist m. E. aber aufwendiger, im Vergleich bzgl. erstellen der 2 Text-config-Dateien (*.network, *.netdev) für systemd-networkd.

bugblatterbeast

(Themenstarter)
Avatar von bugblatterbeast

Anmeldungsdatum:
30. Januar 2008

Beiträge: 415

Dank für den Hinweis lubux.

Was anderes: Ich hatte in der Zwischenzeit schon angefangen, OpenVPN zu konfigurieren und bin nach dieser Anleitung hier vorgegangen https://wiki.ubuntuusers.de/OpenVPN/

# /usr/share/easy-rsa/easyrsa gen-dh

Note: using Easy-RSA configuration from: /root/openvpn/pki/vars

Using SSL: openssl OpenSSL 1.1.1f  31 Mar 2020
Generating DH parameters, 8192 bit long safe prime, generator 2
This is going to take a long time

Auf netgate hat jemand geschrieben ( https://docs.netgate.com/pfsense/en/latest/certificates/dh-parameters.html ):

CPU time used to generate the parameters increases significantly with length. For example, generating 1024-bit DH parameters only takes about 7 seconds on a C2758 CPU, but generating 2048-bit parameters takes 4 minutes, and generating 4096-bit parameters takes 10 minutes.

Eine C2758 CPU von der im Artikel die Rede ist hat doch nur 2.40 GHz. Der Prozess ist jetzt schon seit über fünf Stunden im Gange und ich weiß nicht wie ich herauszufinden kann, ob er jetzt kurz davor ist fertig zu werden oder ob er immer noch gerade am Anfang ist.

bugblatterbeast

(Themenstarter)
Avatar von bugblatterbeast

Anmeldungsdatum:
30. Januar 2008

Beiträge: 415

Also die DH Parameter musste ich auf meiner Workstation generieren und übertragen. Der Vorgang hat auf dem Server so lange gedauert, dass er bei der nächtlichen Zwangstrennung der Konsole noch nicht fertig war. Ich würde jedem der das mit 8k Schlüssellänge auf seinem Server machen möchte empfehlen, das mit nohup zu starten. Der Prozess läuft nur auf einem Kern und dauert bei der Schlüssellänge auch auf einem modernen Prozessor mehrere Stunden.

bugblatterbeast

(Themenstarter)
Avatar von bugblatterbeast

Anmeldungsdatum:
30. Januar 2008

Beiträge: 415

Ich habe jetzt OpenVPN laufen. Folgende Optionen waren für mein Ziel entscheidend:

in der /etc/openvpn/server.conf

push "redirect-gateway def1 bypass-dhcp"

und die NAT-Konfiguration

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Leider habe ich noch ein nicht akzeptables Problem: Es ist natürlich klar, dass der Tunnel und die NAT-Regeln nur für IPV4 funktionieren. Es ist aber leider nicht so, dass mein Client darauf verzichtet IPV6 zu verwenden. Mein Browser lädt alle Homepages am Tunnel vorbei über IPV6.

Gibt es einen Weg, das über den Network Manager zu vermeiden?

bugblatterbeast

(Themenstarter)
Avatar von bugblatterbeast

Anmeldungsdatum:
30. Januar 2008

Beiträge: 415

Ich habe jetzt mit dieser Anleitung openvpn so eingerichtet ( https://community.openvpn.net/openvpn/wiki/IPv6 ), dass es sowohl ipv4 also auch ipv6 akzeptiert.

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 10.8.0.1  netmask 255.255.255.255  destination 10.8.0.2
        inet6 fe80::f7f1:2867:7fba:1eb4  prefixlen 64  scopeid 0x20<link>
        inet6 2001:db8:0:123::1  prefixlen 64  scopeid 0x0<global>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 2013  bytes 312048 (312.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2117  bytes 1016517 (1.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Alles funktioniert jetzt schon mal ausreichend. Es funktionieren jetzt nur noch die IPV4 Verbindungen über den Tunnel. Es ist aber etwas schade, dass IPV6 jetzt im OpenVPN Dienst eingerichtet ist aber nicht funktioniert.

Ich vermute, dass meine IPV6 NAT Konfiguration noch nicht ausreichend ist:

1
2
3
ip6tables -A FORWARD -i tun0 -o eth0 -j ACCEPT
ip6tables -A FORWARD -i eth0 -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Hat jemand einen Link für eine minimal IPV6 NAT Konfiguration?

bugblatterbeast

(Themenstarter)
Avatar von bugblatterbeast

Anmeldungsdatum:
30. Januar 2008

Beiträge: 415

OK, hat sich erledigt. Ich hatte nur "net.ipv6.conf.all.forwarding = 1" vergessen.

Antworten |