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

Einrichten eines OpenVPN-Servers mit CentOS 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 CentOS-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 CentOS 7 installiert . Weitere Informationen finden Sie in unserem Red Hat-Leitfaden für CentOS 8.
  • Sie haben root Zugriff auf diese Installation
  • Kennen Sie den Namen Ihrer Netzwerkschnittstellen (Anweisungen gleich unten)
  • Diese Installation von CentOS ist eine Neuinstallation
  • Sie haben bereits eine Kopie von Viscosity auf Ihrem Client-Gerät installiert

Wenn Sie eine Kopie von CentOS herunterladen und installieren müssen, finden Sie eine Kopie unter https://www.centos.org/download/. Wir werden nicht auf die Details zum Einrichten einer CentOS-Instanz eingehen, viele Anleitungen sind online zu finden. Wenn Sie eine andere Version von CentOS ausführen, gelten sehr wahrscheinlich viele oder sogar alle der in diesem Handbuch beschriebenen Schritte weiterhin. 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).

Um den Namen Ihrer primären Netzwerkschnittstelle (WAN-Zugriff) zu erhalten, führen Sie Folgendes auf Ihrem CentOS-Server aus:
ip route | grep default | awk 'NR==1 {print $(NF-4)}'

Wenn Sie über eine zweite Netzwerkschnittstelle für den Zugriff auf Maschinen in Ihrem lokalen Netzwerk verfügen, benötigen Sie beim Einrichten der Firewall und des Routings auch deren Namen.

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 eines eigenen OpenVPN-Servers zu genießen.

Weitere Informationen oder Hilfe zu CentOS finden Sie in den Community-Foren unter https://www.centos.org/forums/

Zugriff auf die Befehlszeilenschnittstelle

Die in diesem Handbuch beschriebenen Schritte werden über die Befehlszeilenschnittstelle (d. h. Terminal) auf Ihrem CentOS-Server ausgeführt. Wenn Sie diesen Server remote ausführen, müssen Sie die SSH-Anwendung verwenden, um eine sichere Verbindung zwischen Ihrem Client-Gerät und dem Server herzustellen (um sich mit „SSH in“ Ihren Server einzuloggen). Wenn Sie Ihren OpenVPN-Server auf einem Virtual Private Server (VPS) einrichten, kennen Sie möglicherweise nur die Weboberfläche. Viele VPS-Anbieter bieten zusätzlich zum Webinterface einen SSH-Zugang. Wenden Sie sich für Einzelheiten bitte an Ihren VPS-Anbieter.

Wenn Sie neu bei SSH sind, haben wir einige Anweisungen in unserem Einführungsleitfaden.

CentOS-Desktop

Wenn Sie lokalen Zugriff auf Ihren CentOS-Server haben, können Sie die Schritte dieser Anleitung direkt ausführen, ohne sich per SSH beim Server anzumelden. Die Schritte müssen in einem Terminalfenster ausgeführt werden, daher besteht der erste Schritt darin, ein Terminalfenster in CentOS mit Root-Zugriff zu öffnen. Öffnen Sie auf dem Desktop die Terminal-App, indem Sie oben links auf das Dropdown-Menü „Anwendungen“ klicken und „Terminal“ aus den Favoriten auswählen aufführen. Dies öffnet ein Terminalfenster, von dem aus wir mit dem Rest der Einrichtung fortfahren können.

Nachdem Sie nun Zugriff auf das Terminal auf dem CentOS-Server haben, müssen Sie den Benutzer auf root ändern. Geben Sie in das Terminalfenster ein:

su root

Geben Sie dann Ihr Root-Passwort ein, wenn Sie dazu aufgefordert werden. Sie werden sehen, dass Sie jetzt beim Root-Konto angemeldet sind.

Erste Schritte

Nachdem Sie sich bei root angemeldet haben, müssen wir sicherstellen, dass die Repository-Liste von CentOS auf dem neuesten Stand ist, indem Sie Folgendes eingeben:

yum update -y

Dadurch werden die vorinstallierten Pakete durchlaufen und aktualisiert. Wenn Updates gefunden werden, werden Sie gefragt, ob Sie fortfahren möchten. Bestätigen Sie dies, indem Sie y eingeben . Möglicherweise werden Sie darüber informiert, dass Sie nach Abschluss der Paketaktualisierungen neu starten müssen. Melden Sie sich in diesem Fall nach dem Neustart wieder als root am Terminal an.

Als nächstes müssen wir EPEL (Extra Packages for Enterprise Linux) installieren, da dieses das OpenVPN-Paket enthält.

yum install epel-release -y

Jetzt, da wir die erweiterten Pakete haben, können wir OpenVPN installieren. Geben Sie Folgendes in das Terminal ein:

yum install openvpn -y

Generieren von Konfigurationen, 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. Sie können entweder dem Abschnitt für Linux mit dem RPM-Installationsprogramm von CentOS 7 folgen und Ihre Client-Konfigurationen vom Server kopieren (wir empfehlen dies) oder alles auf Ihrem PC oder Mac generieren und den Server kopieren Ordner, der auf Ihrem CentOS-Server generiert wird.

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).

Nachdem Sie Ihre Konfigurationen generiert haben, müssen Sie die Serverkonfiguration auf Ihren Server übertragen oder Ihre Clientkonfigurationen von Ihrem Server übertragen. Wenn Sie lokalen Zugriff haben, ist ein USB-Laufwerk am einfachsten. Falls nicht, finden Sie in unserem Einführungshandbuch Hilfestellungen zum Übertragen von Dateien mit SCP.

IP-Weiterleitung

Um unsere Anfragen durch das VPN weiterzuleiten, möchten wir, dass sich der OpenVPN-Server wie ein Router verhält. Daher müssen wir die IP-Weiterleitung aktivieren.

  1. Im Terminal können wir die IP-Weiterleitung auf dem CentOS-Server aktivieren, indem wir Folgendes eingeben:
    echo 1 > /proc/sys/net/ipv4/ip_forward
  2. Um sicherzustellen, dass Hosts im Heim-/Büronetzwerk den VPN-Server finden können, müssen wir dafür sorgen, dass der Server auf alle ARP-Anfragen antwortet:
    echo 1 > /proc/sys/net/ipv4/conf/ens33/proxy_arp
    wobei ens33 ist die Netzwerkschnittstelle des Heim-/Büronetzwerks, wenn Sie zwei Netzwerkschnittstellen haben, oder andernfalls Ihre primäre Netzwerkschnittstelle (WAN) (weitere Informationen finden Sie im Abschnitt „Vorbereitung“).
  3. Bei jedem Neustart des Servers werden diese Befehle rückgängig gemacht. Um sicherzustellen, dass dies nicht passiert, müssen wir die Datei sysctl.conf ändern:
    nano /etc/sysctl.conf
  4. Fügen Sie die folgenden Zeilen am Ende dieser Datei hinzu:
    net.ipv4.ip_forward = 1
    und
    net.ipv4.conf.ens33.proxy_arp = 1
  5. Drücken Sie ctrl + x Nano verlassen. Speichern Sie die Änderungen, wenn Sie dazu aufgefordert werden.
  6. Um die an der Datei sysctl.conf vorgenommenen Änderungen zu aktivieren, geben Sie Folgendes ein:
    sysctl -p /etc/sysctl.conf

DNS-Server

Wenn Sie vorhaben, den gesamten Netzwerkverkehr über Ihren VPN-Server zu verschlüsseln, wird empfohlen, Ihren eigenen DNS-Server zu aktivieren.

  1. Um den DNS-Server zu installieren, geben Sie Folgendes ein:
    yum install bind bind-utils bind-libs bind-chroot
  2. Um die Weiterleitungsregeln für unseren DNS-Server einzurichten, ändern wir die Konfigurationsdatei:
    nano /etc/named.conf
  3. Oben sehen Sie eine geklammerte Sammlung von Anweisungen mit der Bezeichnung Optionen . Fügen Sie die folgenden zwei Zeilen am Ende der Liste der Optionen ein:
    forwarders {8.8.8.8;8.8.4.4;}; #IP of upstream nameservers
    forward only; #rely completely on our upstream nameservers
    wo wir die DNS-Server von Google verwenden (es steht Ihnen frei, den DNS-Auflösungsdienst Ihrer Wahl zu verwenden).
  4. Fügen Sie das VPN-Subnetz (10.8.0.0/24) zum Mithören hinzu und allow-query Parameter oben in den Optionen, sodass sie jetzt so aussehen:
    ...
    listen-on port 53 { 10.8.0.0/24;127.0.0.1; };
    ...
    allow-query {10.8.0.0/24;localhost; };
    ...
  5. Drücken Sie ctrl + x Nano verlassen. Speichern Sie die Änderungen, wenn Sie dazu aufgefordert werden.
  6. Setzen Sie die Berechtigungen der conf-Datei auf 644:
    chmod 644 /etc/named.conf

Da diese conf-Datei fehleranfällig ist, können wir sie überprüfen, indem wir Folgendes eingeben:

named-checkconf /etc/named.conf

Wenn Ihre Konfigurationsdatei keine Fehler enthält, gibt dieser Befehl nichts zurück.

  1. Öffnen Sie die Liste der Nameserver:
    nano /etc/resolv.conf
  2. Stellen Sie den Server-Resolver so ein, dass er auf sich selbst zeigt:
    nameserver 127.0.0.1
  3. Drücken Sie ctrl + x Nano verlassen. Speichern Sie die Änderungen, wenn Sie dazu aufgefordert werden.
  4. Wenn Ihr CentOS-Server auf einem Router mit einem DHCP-Dienst ausgeführt wird, müssen Sie sicherstellen, dass die Datei „resolv.conf“ bei der DHCP-Lease-Erneuerung nicht überschrieben wird. Geben Sie Folgendes ein:
    nano /etc/sysconfig/network-scripts/ifcfg-ens33
    Ersetzen Sie ens33 durch den Namen Ihrer primären Netzwerkschnittstelle, falls dieser anders ist (weitere Informationen finden Sie im Abschnitt „Vorbereitung“)
  5. Stellen Sie sicher, dass die folgenden drei Parameter gesetzt sind:
    BOOTPROTO=dhcp
    PEERDNS=no
    TYPE=Ethernet
  6. Drücken Sie ctrl + x Nano verlassen. Speichern Sie die Änderungen, wenn Sie dazu aufgefordert werden.
  7. Um den DNS-Server zu starten, geben Sie Folgendes ein:
    systemctl start named
  8. Automatisches Starten des DNS-Servers beim Systemstart aktivieren:
    systemctl enable named

Das war's, der DNS-Server ist jetzt eingerichtet.

Firewall-Regeln

Wir werden die standardmäßige firewalld verwenden Firewall standardmäßig auf CentOS installiert. 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 CentOS-Server ist, sollten die folgenden Firewall-Einstellungen ausreichen, um Ihren OpenVPN-Server zum Laufen zu bringen.

  1. Lassen Sie openvpn zu service:
    firewall-cmd --permanent --add-service=openvpn
    firewall-cmd --add-service=openvpn
  2. Stellen Sie den OpenVPN-Server so ein, dass er Maskerade bereitstellt:
    firewall-cmd --permanent --add-masquerade
    firewall-cmd --add-masquerade
  3. OpenVPN-Port (1194) zulassen:
    firewall-cmd --permanent --add-port=1194/udp
  4. Starten Sie die Firewall mit diesen neuen Einstellungen neu:
    firewall-cmd --reload

Starten des OpenVPN-Servers

An dieser Stelle sind die Grundlagen abgeschlossen. Ihre Serverkonfiguration und Dateien sollten auf Ihren Server kopiert werden, von wo Sie sie generiert haben.

Kopieren Sie zunächst die Serverkonfigurationsdateien in das OpenVPN-Verzeichnis:

sudo cp /path/to/configs/server/* /etc/openvpn/

Starten Sie nun Ihren Server und aktivieren Sie ihn auch nach einem Neustart.

systemctl -f enable [email protected]
systemctl start [email protected]

Um den Serverstatus zu prüfen, geben Sie ein:

systemctl -l status [email protected]

Darauf sollte es mit dem Status antworten und in Grün sollten Sie sehen:

...
Active: active (running)
...

Ihr OpenVPN-Server ist jetzt betriebsbereit und bereit für die Verbindung.

Router-Setup

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

Wenn sich Ihr CentOS-Server jedoch hinter einem Router befindet (z. B. in Ihrem Heim-WLAN), müssen Sie Ihren Router so konfigurieren, dass er VPN-Verkehr 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 mit den folgenden Eigenschaften einrichten:

Destination: 10.8.0.0
Subnet mask: 255.255.255.0
Default gateway: your-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.

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 installieren Sie OpenVPN-Server und -Client mit Easy-RSA 3 unter CentOS 7

  2. So installieren Sie OpenVPN-Server und -Client mit Easy-RSA 3 auf CentOS 8

  3. Einrichten eines NFS-Servers und -Clients unter CentOS 7.2

  4. Einrichten eines Verschleierungsservers mit Obfsproxy und Viscosity

  5. OpenVPN-Server auf Fedora 29/CentOS 7 installieren und einrichten

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

Einrichten eines OpenVPN-Servers mit VyOS und Viscosity