GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> OpenVPN

Einrichten eines OpenVPN-Servers mit VyOS und Viscosity

Virtuelle private Netzwerke (VPNs) können für eine Reihe sehr nützlicher Anwendungen genutzt werden. Sie können sich sicher mit jedem öffentlichen WLAN-Hotspot verbinden. Sie können Geoblocking-Einschränkungen auf Ihren bevorzugten Websites überwinden. Und Sie können sich sogar von überall auf der Welt mit Ihrem Heim- oder Büronetzwerk verbinden, als ob Sie direkt an Ihrem Schreibtisch sitzen würden. Diese Anleitung führt Sie durch den Prozess der Einrichtung Ihres eigenen OpenVPN-Servers und der Verbindung mit Ihrem Exemplar von Viscosity.

Wenn Sie Ihren eigenen OpenVPN-Server betreiben, können Sie alles, was Sie im Internet tun, verschlüsseln, sodass Sie Ihr Online-Banking sicher über das kostenlose WLAN in Ihrem Lieblingscafé erledigen können. Alles, was Sie über die VPN-Verbindung senden, wird von Ihrem Gerät verschlüsselt, bis es Ihren OpenVPN-Server zu Hause erreicht. Wenn Sie Ihren OpenVPN-Server für den Zugriff auf Ihr Heim- oder Büronetzwerk einrichten, erhalten Sie vollen Zugriff auf alle Ihre Dateien in Ihrem Netzwerk.

Diese Anleitung führt Sie durch die Schritte zum Einrichten eines OpenVPN-Servers auf einem VyOS-Host, der es Ihnen ermöglicht, von einem entfernten Standort aus sicher auf Ihr Heim-/Büronetzwerk zuzugreifen und optional Ihren gesamten Netzwerkverkehr darüber zu senden, damit Sie auf das Internet zugreifen können auch sicher.

Vorbereitung

Für diese Anleitung gehen wir von Folgendem aus:

  • Sie haben bereits die neueste Version von VyOS installiert (1.1 zum Zeitpunkt des Schreibens)
  • Ihr Konto hat sudo Privilegien für diese Installation
  • Diese Installation von VyOS ist eine Neuinstallation
  • Sie haben bereits eine Kopie von Viscosity auf Ihrem Client-Gerät installiert

Wenn Sie eine Kopie von VyOS herunterladen und installieren müssen, finden Sie eine Kopie unter http://vyos.net/wiki/Main_Page. Wir werden nicht auf die Details zum Einrichten einer VyOS-Instanz eingehen, viele Anleitungen sind online zu finden. Wenn Sie eine andere Version von VyOS verwenden, ist es sehr wahrscheinlich, dass viele oder sogar alle der in diesem Handbuch beschriebenen Schritte weiterhin gelten. Wenn Sie einen OpenVPN-Server auf einem anderen Betriebssystem einrichten möchten, lesen Sie bitte unsere anderen Anleitungen.

Wenn Sie noch keine Kopie von Viscosity auf Ihrem Client installiert haben, lesen Sie bitte diese Einrichtungsanleitung zur Installation von Viscosity (Mac | Windows).

Unterstützung

Leider können wir keinen direkten Support für die Einrichtung eines eigenen OpenVPN-Servers leisten. Wir stellen diesen Leitfaden höflich zur Verfügung, um Ihnen den Einstieg zu erleichtern und Ihre Kopie von Viscosity optimal zu nutzen. Wir haben die Schritte in diesem Handbuch gründlich getestet, um sicherzustellen, dass Sie, wenn Sie die unten aufgeführten Anweisungen befolgen, auf dem besten Weg sind, die Vorteile des Betriebs Ihres eigenen OpenVPN-Servers zu genießen.

Für weitere Informationen oder Hilfe zu VyOS stehen unter https://vyos.io/

eine Reihe von Ressourcen und Foren zur Verfügung

Erste Schritte

Wir gehen davon aus, dass Sie Ihre Netzwerkschnittstellen bereits wie folgt eingerichtet haben:

  • 'OUTSIDE' - eth0 mit dem Internet verbunden
  • 'INSIDE' - eth1 mit Ihrem lokalen Heimnetzwerk verbunden

Generieren von Zertifikaten und Schlüsseln

Im nächsten Schritt generieren Sie Ihre Konfigurationen für den Server und Ihre Clients sowie die dazugehörigen Zertifikate. Sie können dies ganz einfach tun, indem Sie dem Leitfaden zum Erstellen von Zertifikaten und Schlüsseln folgen. Generieren Sie alles auf Ihrem PC oder Mac und notieren Sie sich dann den Pfad zu Ihrem Server Ordner, der erstellt wird, werden wir die Dateien hier später verwenden.

Wenn Sie den Standard-DNS-Server (10.8.0.1) verwenden, müssen Sie selbst einen DNS-Server einrichten. Anweisungen finden Sie am Ende dieses Artikels. Wir empfehlen stattdessen die Verwendung eines vorhandenen DNS-Servers, am einfachsten ist ein öffentlich verfügbarer DNS-Server wie der von Google (8.8.8.8 und 8.8.4.4).

Wir müssen nun die folgenden Dateien nach /config/auth/ kopieren Verzeichnis auf Ihrer VyOS-Appliance, das sich auf dem Server befindet Ordner, den openvpn-generate gerade erstellt hat, empfehlen wir die Verwendung von SCP. Wenn Sie mit SCP nicht vertraut sind, finden Sie in unserem Einführungshandbuch Hilfestellungen zum Übertragen von Dateien mit SCP.

  • ca.crt
  • server.crt
  • server.key
  • dh.pem

Wenn Sie SCP über die Befehlszeile verwenden, wäre ein Beispielbefehl
scp path/to/server/ca.crt [email protected]:/config/auth/

OpenVPN-Serverkonfiguration

Es gibt eine Reihe verschiedener Einstellungen, die wir in unserer OpenVPN-Serverkonfiguration anpassen müssen. Wechseln Sie im Terminal in den Konfigurationsmodus, indem Sie Folgendes eingeben:

configure

Sie sollten sehen, dass sich die Eingabeaufforderung von $ ändert zu # . Wenn Sie bei der Eingabe der folgenden Konfigurationsbefehle einen Fehler machen, können Sie einen zuvor eingegebenen Befehl entfernen, indem Sie ihn wiederholen, aber das Wort „set“ am Anfang durch das Wort „delete“ ersetzen.

Fügen Sie Folgendes in das Terminalfenster ein:

# Configure this OpenVPN instance to run as the VPN server
set interfaces openvpn vtun0 mode server

# The OpenVPN server needs to know the location of the Diffie Hellman file
#NOTE: Depending on how you generated your keys, this file name might be 'dh.pem' instead
set interfaces openvpn vtun0 tls dh-file '/config/auth/dh.pem'

# Our VPN connection will be transported over UDP
set interfaces openvpn vtun0 openvpn-option "--proto udp"

# The server needs to keep a record of client virtual IP addresses so that they
# can be reassigned if the server goes down
set interfaces openvpn vtun0 openvpn-option "--ifconfig-pool-persist ipp.txt"

# To ensure that each side of the VPN knows if the connection has been severed,
# we want to ping each side every 10 seconds. If either side fails to recieve a
# ping within 2 minutes, then it will assume the other side is down
set interfaces openvpn vtun0 openvpn-option "--keepalive 10 120"

# There can be security issues if you run the OpenVPN server as root, so we will
# downgrade the user and group
set interfaces openvpn vtun0 openvpn-option "--user nobody --group nogroup"

# To avoid attempting to access resources that may no longer be accessible on
# restart
set interfaces openvpn vtun0 openvpn-option "--persist-key --persist-tun"

# To write (and rewrite) a short summary of current VPN connections every minute
# to a file
set interfaces openvpn vtun0 openvpn-option "--status openvpn-status.log"

# The verbosity of this connection logging (displayed in the Viscosity 'Details'
#  window) can range from 0 (silent) to 9 extremely verbose. We will use the 
# default of 3
set interfaces openvpn vtun0 openvpn-option "--verb 3"

# To prevent more than 10 duplicates of the same log message in a row from
# flooding the Viscosity log
set interfaces openvpn vtun0 openvpn-option "--mute 10"

# The credential files
set interfaces openvpn vtun0 tls ca-cert-file '/config/auth/ca.crt'
set interfaces openvpn vtun0 tls cert-file '/config/auth/server.crt'
set interfaces openvpn vtun0 tls key-file '/config/auth/server.key'

# The server will use the default OpenVPN port (1194)
set interfaces openvpn vtun0 openvpn-option "--port 1194"

# We need the VPN to create a tun network interface through which we can 
# route all our traffic:
set interfaces openvpn vtun0 openvpn-option "--dev vtun0"

# The VPN requires a private IP subnet. We will use the default OpenVPN IP
# subnet
set interfaces openvpn vtun0 server subnet '10.8.0.0/24'

# We want VPN clients connected to this server to be able to access any hosts
# accessible on your home network. We are assuming that your local network
# subnet is 192.168.0.x/24. If it is something else, you will need to change the
# IP address in the command below.
set interfaces openvpn vtun0 server push-route 192.168.0.0/24

# For enhanced security, set a cipher and auth hash
set interfaces openvpn vtun0 openvpn-option "--cipher AES-256-CBC"
set interfaces openvpn vtun0 openvpn-option "--auth SHA256"

# Lastly, we want to allow hosts on the home network to be able to see VPN
# clients connected to the OpenVPN server
set interfaces openvpn vtun0 openvpn-option "--client-to-client"

Achten Sie besonders auf die IP-Adresse im set interfaces openvpn vtun0 server push-route 192.168.0.0/24 . Stellen Sie sicher, dass dieses Subnetz mit Ihrem Heim-/Büro-LAN-IP-Subnetz übereinstimmt. Wenn Sie diesen VPN-Server nicht für den Zugriff auf Ihr Heim-/Büro-LAN einrichten, können Sie diese Zeile ganz überspringen.

Firewall-Regeln

Wir verwenden die standardmäßig auf VyOS installierte Firewall. Wenn Sie OpenVPN auf einem Server installieren, der bereits über ein eigenes Firewall-Setup verfügt, stellen Sie sicher, dass Sie die Regeln hinzufügen, um unseren OpenVPN-Datenverkehr zuzulassen. Wenn dies jedoch nur ein einfacher eigenständiger VyOS-Server ist, sollten die folgenden Firewall-Einstellungen ausreichen, um Ihren OpenVPN-Server zum Laufen zu bringen.

Noch im Konfigurationsmodus , fügen Sie Folgendes in das Terminalfenster ein:

# First we will set the rules for traffic passing through the server. We want
# the firewall to allow traffic for existing connections to the server, and drop 
# any new ones:
set firewall name OUTSIDE-IN default-action 'drop'
set firewall name OUTSIDE-IN rule 10 action 'accept'
set firewall name OUTSIDE-IN rule 10 state established 'enable'
set firewall name OUTSIDE-IN rule 10 state related 'enable'

# Next we will set the rules to allow the local network to talk to the outside world
set firewall name OUTSIDE-LOCAL default-action 'drop'
set firewall name OUTSIDE-LOCAL rule 10 action 'accept'
set firewall name OUTSIDE-LOCAL rule 10 state established 'enable'
set firewall name OUTSIDE-LOCAL rule 10 state related 'enable'</code>

# If you would like the ability to ping your VyOS server externally, add the following
set firewall name OUTSIDE-LOCAL rule 20 action 'accept'
set firewall name OUTSIDE-LOCAL rule 20 icmp type-name 'echo-request'
set firewall name OUTSIDE-LOCAL rule 20 protocol 'icmp'
set firewall name OUTSIDE-LOCAL rule 20 state new 'enable'

# If you would like the ability to SSH into your server externally (without a VPN connected), add the following
# NOTE - This can be a security risk and is not recommended
set firewall name OUTSIDE-LOCAL rule 30 action 'drop'
set firewall name OUTSIDE-LOCAL rule 30 destination port '22'
set firewall name OUTSIDE-LOCAL rule 30 protocol 'tcp'
set firewall name OUTSIDE-LOCAL rule 30 recent count '4'
set firewall name OUTSIDE-LOCAL rule 30 recent time '60'
set firewall name OUTSIDE-LOCAL rule 30 state new 'enable'
set firewall name OUTSIDE-LOCAL rule 31 action 'accept'
set firewall name OUTSIDE-LOCAL rule 31 destination port '22'
set firewall name OUTSIDE-LOCAL rule 31 protocol 'tcp'
set firewall name OUTSIDE-LOCAL rule 31 state new 'enable'

# Allow external connections to the OpenVPN port. This will allow you to VPN to your server
# from somewhere outside your local network (like a coffee shop)
set firewall name OUTSIDE-LOCAL rule 40 action 'accept'
set firewall name OUTSIDE-LOCAL rule 40 destination port '1194'
set firewall name OUTSIDE-LOCAL rule 40 protocol 'udp'

# Apply these firewall policies:
set interfaces ethernet eth0 firewall in name 'OUTSIDE-IN'
set interfaces ethernet eth0 firewall local name 'OUTSIDE-LOCAL'

# Lastly, we need to enable NAT masquerade:
set nat source rule 100 outbound-interface 'eth0'
set nat source rule 100 source address '10.8.0.0/24'
set nat source rule 100 translation address 'masquerade'
set nat source rule 200 outbound-interface 'eth1'
set nat source rule 200 source address '10.8.0.0/24'
set nat source rule 200 translation address 'masquerade'

DNS-Server

Wenn Sie vorhaben, den gesamten Netzwerkverkehr über Ihren VPN-Server zu verschlüsseln, wird empfohlen, Ihren eigenen DNS-Server zu aktivieren. VyOS hat standardmäßig eine DNS-Weiterleitung installiert, mit der wir unseren eigenen DNS-Server für die VPN-Verbindung bereitstellen können, um DNS-bezogene Angriffe zu verhindern.

Noch im Konfigurationsmodus , fügen Sie Folgendes in das Terminalfenster ein:

# We will set the DNS forwarder to store 100 lookups locally, to speed up 
# repeated DNS requests:
set service dns forwarding cache-size '100'

# DNS queries will be resolved coming from the local network:
set service dns forwarding listen-on 'eth1'

# DNS queries will be resolved coming from our VPN connection:
set service dns forwarding listen-on 'vtun0'

# We will use the Google DNS servers (you are free to use your DNS resolution
# service of choice):
set service dns forwarding name-server '8.8.8.8'
set service dns forwarding name-server '8.8.4.4'

Nachdem wir die Konfiguration abgeschlossen haben, speichern Sie die Änderungen, indem Sie Folgendes in das Terminal eingeben:

commit;save

und Konfigurationsmodus verlassen:

exit

Router-Setup

Wenn Ihr VyOS-Server direkt erreichbar ist , dann können Sie diesen Abschnitt überspringen . Es muss kein Router konfiguriert werden.

Wenn sich Ihr VyOS-Server jedoch hinter einem Router befindet (z. B. in Ihrem Heim-WLAN), müssen Sie Ihren Router so konfigurieren, dass er VPN-Datenverkehr zulässt. Aufgrund der vielen verschiedenen Router-Modelle und Netzwerkkonfigurationen können wir keine Schritt-für-Schritt-Anleitung zur Einrichtung Ihres Routers für die Zulassung von VPN-Datenverkehr bereitstellen. Es gibt jedoch einige Einstellungen, die Sie wahrscheinlich ändern müssen, daher werden wir sie hier skizzieren.

Da der Router den gesamten Datenverkehr zu und von Ihrem OpenVPN-Server leitet, müssen Sie eine Portweiterleitung einrichten damit der OpenVPN-Server von außen erreichbar ist. Die Portweiterleitung befindet sich möglicherweise unter dem Abschnitt in Ihrer Router-Verwaltungsoberfläche mit dem Namen „Virtual Servers“. Im Allgemeinen sollten Sie den an den Router eingehenden Datenverkehr über den OpenVPN-Port (1194) weiterleiten. Sie müssen eine Regel einrichten, um jeglichen UDP-Verkehr auf diesen Ports an die lokale IP-Adresse Ihres OpenVPN-Servers zu senden (die wahrscheinlich im Bereich 192.168.0.x liegt).

Falls Sie eine Portweiterleitung eingerichtet haben, notieren Sie sich bitte auch Ihre externe WAN-IP-Adresse . Dies ist die IP-Adresse, die Ihrem Router von Ihrem Internet Service Provider (ISP) zugewiesen wurde. Diese Adresse wird benötigt, wenn Sie Ihre Verbindung unten in Viscosity konfigurieren.

Die andere wichtige Routereinstellung, die Sie berücksichtigen müssen, ist das statische Routing. Da Sie ein VPN eingerichtet haben, wird Datenverkehr mit einer Quell- oder Ziel-IP im Bereich 10.8.0.x an Ihren Router gesendet. Dieser Datenverkehr muss über statisches Routing verfügen, um sicherzustellen, dass der Router weiß, wie er die 10.8. 0.x IP-Adresse in eine Adresse, die sie versteht (z. B. 192.168.0.x). Daher müssen Sie eine statische Routing-Regel einrichten, die die folgenden Eigenschaften hat:

Ziel:10.8.0.0Subnetzmaske:255.255.255.0Standard-Gateway:Ihre-Server-IP

wobei Ihre-Server-IP ist die IP-Adresse Ihres OpenVPN-Servers im lokalen Netzwerk (etwas im Bereich 192.168.0.x).

Einrichten der Viskosität

Der letzte Schritt ist die Einstellung der Viskosität. Dank openvpn-generate ist dies so einfach wie das Importieren und Verbinden.

Importieren

Kopieren Sie Ihre *.visz-Datei, die Sie mit openvpn-generate erstellt haben, auf Ihren Mac oder Windows-Computer, auf dem Viscosity installiert ist, und doppelklicken Sie auf die Datei. Sie sollten eine Eingabeaufforderung sehen, dass die Konfiguration erfolgreich importiert wurde.

Bearbeiten Sie nach dem Import Ihre Verbindung und gehen Sie zur Registerkarte Erweitert. Fügen Sie die folgenden zwei Befehle in neuen Zeilen hinzu:

cipher AES-256-CBC
auth SHA256

Herstellen und Verwenden Ihrer VPN-Verbindung

Sie können jetzt eine Verbindung herstellen. Klicken Sie auf das Viskositätssymbol in der macOS-Menüleiste oder der Windows-Taskleiste, um das Viskositätsmenü zu öffnen, wählen Sie die importierte Verbindung aus und Viscosity stellt eine Verbindung her.

Um zu überprüfen, ob das VPN betriebsbereit ist, können Sie das Fenster „Details“ im Menü „Viskosität“ öffnen. Dadurch können Sie Verbindungsdetails, Datenverkehr und das OpenVPN-Protokoll anzeigen.



Das war's, Sie haben Ihren eigenen OpenVPN-Server eingerichtet. Herzlichen Glückwunsch, Sie können jetzt die Vorteile des Betriebs Ihres eigenen OpenVPN-Servers genießen!


OpenVPN
  1. So richten Sie einen OpenVPN-Server unter Ubuntu 22.04 ein und konfigurieren ihn

  2. So installieren und hosten Sie einen OpenVPN-Server mit Docker

  3. Einrichten eines Verschleierungsservers mit Obfsproxy und Viscosity

  4. OpenVPN-Server unter Ubuntu 20.04 installieren und einrichten

  5. Installieren und konfigurieren Sie den OpenVPN-Server FreeBSD 12

Einrichten eines OpenVPN-Servers mit Sophos UTM und Viscosity

Einrichten eines OpenVPN-Servers mit Sophos XG und Viscosity

Einrichten eines OpenVPN-Servers mit Synology und Viscosity

Einrichten eines OpenVPN-Servers mit Tomato-Router und Viscosity

Einrichten eines OpenVPN-Servers mit Ubiquiti EdgeRouter (EdgeOS) und Viscosity

Einrichten eines OpenVPN-Servers mit Ubuntu und Viscosity