One place for hosting & domains

      Installation von Node.js auf Ubuntu 18.04


      Einführung

      Node.js ist eine JavaScript-Plattform für die allgemeine Programmierung, die es Benutzern ermöglicht, schnell Netzwerkanwendungen zu erstellen. Durch die Nutzung von JavaScript am Front- und Backend ermöglicht Node.js eine gleichbleibende, integrierte Entwicklung.

      In diesem Leitfaden zeigen wir Ihnen, wie Sie mit Node.js auf einem Ubuntu 18.04 Server starten können.

      Voraussetzungen

      Dieser Leitfaden geht davon aus, dass Sie Ubuntu 18.04 verwenden. Bevor Sie beginnen, sollten Sie ein Benutzerkonto ohne Root-Berechtigung mit Sudo-Privilegien auf Ihrem System einrichten. Dazu können Sie sich den Leitfaden zur Ersteinrichtung für Ubuntu 18.04 ansehen.

      Installation der Distro-Stable Version für Ubuntu

      Ubuntu 18.04 enthält eine Version von Node.js in seinen Standard-Repositorys, die verwendet werden kann, um ein gleichbleibendes, systemübergreifendes Erlebnis zu erhalten. Zum Veröffentlichungszeitpunkt war die Version 8.10.0 in den Repositorys gültig. Das ist wahrscheinlich nicht die neueste Version, aber sollte stabil und ausreichend sein, um kurze Experimente mit der Sprache zu ermöglichen.

      Um diese Version zu erhalten, können Sie den apt Paketmanager verwenden. Aktualisieren Sie Ihren lokalen Paketindex durch die Eingabe von:

      Installieren Sie Node.js aus den Repositorys:

      Wenn das Paket in den Repositorys Ihren Bedürfnissen entspricht, müssen Sie nichts weiter tun, um Node.js einzurichten. In den meisten Fällen sollten Sie auch den Node.js Paketmanager npm installieren. Geben Sie dazu Folgendes ein:

      Damit können Sie Module und Pakete zur Verwendung mit Node.js installieren.

      Aufgrund eines Konflikts mit einem anderen Paket wird das ausführbare Programm aus den Ubuntu Repositorys anstelle von node nodejs genannt. Denken Sie daran, wenn Sie die Software ausführen.

      Um zu prüfen, welche Version von Node.js Sie nach diesen ersten Schritten installiert haben, geben Sie Folgendes ein:

      Sobald Sie wissen, welche Version von Node.js Sie aus den Ubuntu Repositorys installiert haben, können Sie entscheiden, ob Sie mit verschiedenen Versionen, Paketarchiven oder Versionsmanagern arbeiten möchten. Als Nächstes werden wir diese Elemente sowie flexible und robuste Installationsmethoden besprechen.

      Installation unter Verwendung eines PPA

      Um eine neuere Version von Node.js zu erhalten, können Sie das PPA (persönliches Paketarchiv) hinzufügen, das von NodeSource gepflegt wird. Diese enthalten aktuellere Versionen von Node.js als die offiziellen Ubuntu Repositorys, und Sie haben die Wahl zwischen Node.js v6.x (Support bis April 2019), Node.js v8.x (die aktuelle LTS-Version, Support bis Dezember 2019), Node.js v10.x (die zweite aktuelle LTS-Version, Support bis April 2021) und Node.js v11.x (die aktuelle Version, Support bis Juni 2019).

      Installieren Sie zunächst das PPA, um Zugriff auf dessen Inhalt zu erhalten. Verwenden Sie curl aus dem Stammverzeichnis, um das Installationsskript für Ihre bevorzugte Version abzurufen, und achten Sie darauf, 10.x durch Ihre bevorzugte Versionszeichenfolge zu ersetzen (sofern sich diese unterscheiden):

      • cd ~
      • curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh

      Sie können den Inhalt dieses Skripts mit nano (oder Ihrem bevorzugten Texteditor) prüfen:

      Führen Sie das Skript unter sudo aus:

      • sudo bash nodesource_setup.sh

      Das PPA wird Ihrer Konfiguration hinzugefügt und Ihr lokaler Paket-Cache automatisch aktualisiert. Nach der Durchführung des Setup-Skripts aus Nodesource können Sie das Node.js Paket auf die gleiche Art installieren, wie Sie es oben getan haben:

      Um zu prüfen, welche Version von Node.js Sie nach diesen ersten Schritten installiert haben, geben Sie Folgendes ein:

      Output

      v10.14.0

      Das nodejs Paket enthält das binäre nodejs sowie npm, daher müssen Sie npm nicht separat installieren.

      npm verwendet eine Konfigurationsdatei in Ihrem Home Verzeichnis, um Aktualisierungen zu verfolgen. Sie wird erstellt, wenn Sie npm das erste Mal ausführen. Führen Sie diesen Befehl aus, um zu verifizieren, dass npm installiert ist, und um die Konfigurationsdatei zu erstellen:

      Output

      6.4.1

      Damit bestimmte npm Pakete funktionieren (z. B. jene, deren Code aus Source erstellt werden muss), müssen Sie das build-essential Paket installieren:

      • sudo apt install build-essential

      Jetzt haben Sie die notwendigen Tools, um mit npm Paketen zu arbeiten, deren Code aus Source erstellt werden muss.

      Installation mit NVM

      Eine Alternative zur Installation von Node.js mit apt ist ein Tool namens nvm, das für „Node.js Version Manager“ steht. Nvm läuft auf der Ebene eines unabhängigen Verzeichnisses in Ihrem Stammverzeichnis anstatt auf Betriebssystemebene. Das bedeutet, dass Sie ohne Auswirkungen auf das gesamte System mehrere in sich geschlossene Versionen von Node.js installieren können.

      Durch die Kontrolle Ihrer Umgebung mit nvm können Sie auf die neuesten Versionen von Node.js zugreifen und frühere Versionen beibehalten und verwalten. Es ist jedoch ein anderes Utility als apt und die Versionen von Node.js, die Sie damit verwalten, unterscheiden sich von den Versionen, die Sie mit apt verwalten.

      Um das nvm Installationsskript von der GitHub-Seite des Projekts herunterzuladen, können Sie curl verwenden. Beachten Sie, dass sich die Versionsnummer von der hier hervorgehobenen eventuell unterscheidet:

      • curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh -o install_nvm.sh

      Untersuchen Sie das Installationsskript mit nano:

      Führen Sie das Skript mit bash aus:

      Damit wird die Software in ein Unterverzeichnis Ihres Stammverzeichnisses unter ~/.nvm installiert. Es werden auch die zur Verwendung erforderlichen Zeilen in Ihre Datei ~/.profile eingefügt.

      Um auf die nvm Funktionalität Zugriff zu erhalten, müssen Sie sich entweder ab- und wieder anmelden oder sich auf die Datei ~/.profile beziehen, damit Ihre aktuelle Sitzung über die Änderungen informiert wird:

      Wenn nvm installiert ist, können Sie isolierte Node.js Versionen installieren. Für Informationen zu den verfügbaren Versionen von Node.js geben Sie Folgendes ein:

      Output

      ... v8.11.1 (Latest LTS: Carbon) v9.0.0 v9.1.0 v9.2.0 v9.2.1 v9.3.0 v9.4.0 v9.5.0 v9.6.0 v9.6.1 v9.7.0 v9.7.1 v9.8.0 v9.9.0 v9.10.0 v9.10.1 v9.11.0 v9.11.1 v10.0.0

      Wie Sie sehen können, ist die aktuelle LTS-Version zum Zeitpunkt der Abfassung v8.11.1. Sie können die Installation vornehmen, indem Sie Folgendes eingeben:

      Nvm wechselt normalerweise auf die neueste installierte Version. Sie können nvm mitteilen, die Version zu verwenden,die sie gerade heruntergeladen haben, indem Sie Folgendes eingeben:

      Wenn Sie Node.js mit nvm installieren, wird die ausführbare Datei node genannt. Sie können die von der Shell derzeit verwendete Version sehen, indem Sie Folgendes eingeben:

      Output

      v8.11.1

      Wenn Sie mehrere Node.js Versionen haben, können Sie prüfen, welche installiert ist, indem Sie Folgendes eingeben:

      Wenn Sie eine der Versionen als Standard festlegen möchten, geben Sie Folgendes ein:

      Diese Version wird automatisch für eine neue Sitzung ausgewählt. Sie können sich auch, wie folgt, über den Alias darauf verweisen:

      Jede Version von Node.js verfolgt ihre eigenen Pakete und kann diese über npm verwalten.

      Sie können auch npm anweisen, Pakete im Verzeichnis ./node_modules des Node.js Projekts zu installieren. Verwenden Sie die folgende Syntax, um das express-Modul zu installieren:

      Wenn Sie das Modul global installieren und es anderen Projekten mit der gleichen Version von Node.js bereitstellen möchten, können Sie die Flag -g hinzufügen.

      Damit wird das Paket installiert in:

      ~/.nvm/versions/node/node_version/lib/node_modules/express
      

      Wenn Sie das Modul global installieren, können Sie Befehle aus der Befehlszeile ausführen, aber Sie müssen das Paket mit Ihrem lokalen Umfeld verbinden, damit ein Programm es aufrufen kann:

      Erfahren Sie mehr über die mit nvm zur Verfügung stehenden Optionen, indem Sie Folgendes eingeben:

      Node.js entfernen

      Je nach anvisierter Version können Sie Node.js mit apt oder nvm deinstallieren. Um die distro-stabile Version zu entfernen, müssen Sie mit dem apt-Utility auf Systemebene arbeiten.

      Um die distro-stabile Version zu entfernen, geben Sie Folgendes ein:

      Mit diesem Befehl entfernen Sie das Paket und behalten die Konfigurationsdateien bei. Das kann nützlich sein, wenn Sie das Paket später erneut installieren wollen. Wenn Sie die Konfigurationsdateien nicht zur späteren Verwendung speichern möchten, führen Sie Folgendes aus:

      Damit wird das Paket deinstalliert und die damit verbundenen Konfigurationsdateien werden entfernt.

      Als letzten Schritt können Sie alle ungenutzten Pakete entfernen, die automatisch mit dem entfernten Paket installiert wurden:

      Um eine Version von Node.js, die Sie mit nvm aktiviert haben, zu deinstallieren, bestimmen Sie zunächst, ob die Version, die Sie entfernen möchten, die aktuelle, aktive Version ist:

      Wenn die von Ihnen gewünschte Version nicht die aktuelle, aktive Version ist, können Sie Folgendes ausführen:

      • nvm uninstall node_version

      Mit diesem Befehl wird die ausgewählte Version von Node.js deinstalliert.

      Wenn die Version, die Sie entfernen möchten, die aktuelle, aktive Version** ist**, müssen Sie nvm zunächst deaktivieren, um Ihre Änderungen zu aktivieren:

      Sie können jetzt die aktuelle Version mit dem uninstall Befehl wie oben deinstallieren, wodurch alle Dateien, die mit der gewünschten Version von Node.js assoziiert sind, entfernt werden, mit Ausnahme der Cache-Dateien, die zur Neuinstallierung verwendet werden können.

      Zusammenfassung

      Sie haben verschiedene Möglichkeiten, mit Node.js die Arbeit auf Ihrem Ubuntu 18.04 Server aufzunehmen. Ihre Umstände bestimmen, welche der obigen Methoden am besten zu Ihnen passen. Obwohl die Paketversion in Ubuntus Repositorys die einfachste Methode ist, bietet nvm zusätzliche Flexibilität.



      Source link

      Installation von WordPress mit LAMP auf Ubuntu 18.04


      Eine frühere Version dieses Tutorials wurde von Justin Ellingwood verfasst

      Einführung

      WordPress ist das beliebteste CMS (Content Management System) im Internet. Damit können Sie flexible Blogs und Websites auf einem MySQL Backend mit PHP-Verarbeitung einrichten. WordPress weist eine enorm hohe Akzeptanz auf und ist eine großartige Wahl, um eine Website schnell zu erstellen und freizuschalten. Nach dem Einrichten kann fast die gesamte Verwaltung vom Web-Frontend aus erfolgen.

      In diesem Leitfaden konzentrieren wir uns auf das Einrichten einer WordPress-Instanz auf einem LAMP-Stack (Linux, Apache, MySQL und PHP) auf einem Ubuntu 18.04 Server.

      Voraussetzungen

      Um dieses Tutorial fertigzustellen, benötigen Sie Zugriff auf einen Ubuntu 18.04 Server.

      Sie müssen die folgenden Aufgaben ausführen, bevor Sie diesen Leitfaden starten können:

      • Erstellen Sie einen sudo-Benutzer auf Ihrem Server: In diesem Leitfaden verwenden wir einen Benutzer ohne Rootberechtigung mit sudo-Rechten. Sie können einen Benutzer mit sudo-Rechten erstellen, indem Sie unserem Leitfaden zur Ersteinrichtung des Ubuntu 18.04 Servers folgen.
      • Installation eines LAMP-Stacks: WordPress benötigt einen Webserver, eine Datenbank und PHP, um richtig zu funktionieren. Das Einrichten eines LAMP-Stacks (Linux, Apache, MySQL und PHP) erfüllt alle diese Anforderungen. Folgen Sie diesem Leitfaden zur Installation und Konfiguration dieser Software.
      • Sicherung Ihrer Site mit SSL: WordPress stellt dynamischen Inhalt bereit und kümmert sich um die Benutzerauthentifizierung und Berechtigung. TLS/SSL ist die Technologie, die es Ihnen ermöglicht, den Datenverkehr von Ihrer Website zu verschlüsseln, damit die Verbindung gesichert ist. Die Art, wie Sie SSL einichten, hängt davon ab, ob Sie einen Domänenamen für Ihre Site haben.
        • *Wenn Sie einen Domänenamen haben… *können Sie Ihre Website am einfachsten mit Let’s Encrypt sichern, das kostenlose, vertrauenswürdige Zertifikate bereitstellt. Folgen Sie dem Leitfaden Let’s Encrypt für Apache, um dieses Setup vorzunehmen.
        • Wenn Sie keine Domäne haben… und Sie diese Konfiguration nur zu Testzwecken oder privat verwenden, können Sie stattdessen ein selbstsigniertes Zertifikat verwenden. Damit wird die gleiche Art der Verschlüsselung bereitgestellt, aber ohne Domänenvalidierung. Folgen Sie dem Leitfaden für selbstsigniertes SSL für Apache, um dieses Setup vorzunehmen.

      Wenn Sie dieses Setup abgeschlossen haben, melden Sie sich bei Ihrem Server als sudo-Benutzer an und fahren Sie dann wie unten gezeigt fort.

      Schritt 1 – Erstellen einer MySQL-Datenbank und eines Benutzers für WordPress

      Der erste Schritt dient der Vorbereitung. WordPress verwendet MySQL, um Site- und Benutzerinformationen zu verwalten und zu speichern. Wir haben bereits MySQL installiert, müssen aber eine Datenbank und einen Benutzer für WordPress erstellen.

      Dazu melden Sie sich beim Konto MySQL Root (administrativ) an, indem Sie diesen Befehl eingeben:

      Sie werden aufgefordert, das Passwort einzugeben, das Sie für das MySQL Root-Konto festgelegt haben, als Sie die Software installiert haben.

      Zuerst können wir eine separate Datenbank erstellen, die von WordPress kontrolliert wird. Sie können ihr einen beliebigen Namen geben, aber wir nennen sie der Einfachheit halber in diesem Leitfaden wordpress. Erstellen Sie die Datenbank für WordPress, indem Sie Folgendes eingeben:

      • CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

      *Anmerkung: *Jede MySQL -Anweisung muss mit einem Semikolon (;) enden. Vergewissern Sie sich, dass dies der Fall ist, falls ein Problem auftritt.

      Als Nächstes erstellen wir ein separates MySQL-Benutzerkonto, das wir ausschließlich für die neue Datenbank verwenden werden. Aus Verwaltungs- und Sicherheitsaspekten ist es sinnvoll, Datenbanken und Konten mit nur einer Funktion zu erstellen. In diesem Leitfaden verwenden wir den Namen wordpressuser. Sie können den Namen ändern.

      Wir erstellen dieses Konto, legen ein Passwort fest und gewähren Zugriff auf die von uns erstellte Datenbank. Dazu geben wir den folgenden Befehl ein. Denken Sie daran, ein starkes Passwort für Ihren Datenbankbenutzer zu wählen:

      • GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

      Sie haben jetzt ein Datenbank- und ein Benutzerkonto, das jeweils speziell für WordPress eingerichtet wurde. Wir müssen die Rechte leeren, damit die aktuelle Instanz von MySQL die neuesten Änderungen erkennt:

      Beenden Sie MySQL, indem Sie Folgendes eingeben:

      Schritt 2 – Installation von zusätzlichen PHP-Erweiterungen

      Beim Einrichten des LAMP-Stacks benötigen wir nur eine sehr minimale Menge von Erweiterungen, damit PHP mit MySQL kommuniziert. WordPress und viele seiner Plugins nutzen zusätzliche PHP-Erweiterungen.

      Laden Sie einige der beliebtesten PHP-Erweiterungen zur Nutzung mit WordPress herunter und installieren diese, indem Sie Folgendes eingeben:

      • sudo apt update
      • sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

      Anmerkung: Jedes WordPress-Plugin hat seinen eigenen Satz an Anforderungen. Einige können die Installation zusätzlicher PHP-Pakete erfordern. Prüfen Sie Ihre Plugin-Dokumentation, um deren PHP-Anforderungen herauszufinden. Wenn sie verfügbar sind, können sie wie oben gezeigt mit apt installiert werden.

      Wir starten dann Apache neu, um diese neuen Erweiterungen im nächsten Abschnitt zu laden. Wenn Sie wieder hierher zurückkehren, um zusätzliche Plugins zu installieren, können Sie Apache jetzt neu starten, indem Sie Folgendes eingeben:

      • sudo systemctl restart apache2

      Schritt 3 – Anpassung der Apache-Konfiguration, um .htaccess Override und Rewrites zu erlauben

      Als Nächstes werden wir einige kleinere Anpassungen an unsere Apache-Konfiguration vornehmen. Basierend auf den erforderlichen Tutorials sollten Sie eine Konfigurationsdatei für Ihre Site im Verzeichnis /etc/apache2/sites-available/ haben. Als Beispiel verwenden wir /etc/apache2/sites-available/wordpress.conf, aber Sie sollten den Pfad zu Ihrer Konfigurationsdatei ggf. ersetzen.

      Außerdem verwenden wir /var/www/wordpress als Root-Verzeichnis unserer WordPress-Installation. Sie sollten das in Ihrer eigenen Konfiguration angegebene Web-Root verwenden.

      Anmerkung: Es ist möglich, dass Sie die Standardkonfiguration 000-default.conf verwenden (mit /var/www/html als Ihre Web-Root). Das ist in Ordnung, wenn Sie nur eine Website auf diesem Server hosten wollen. Ansonsten ist es am besten, die notwendige Konfiguration in logische Chunks von einer Datei pro Site aufzuteilen.

      Aktivieren von .htaccess Overrides

      Derzeit ist die Verwendung von .htaccess-Dateien deaktiviert. WordPress und viele WordPress-Plugins setzen diese Dateien weitläufig für kleine Veränderungen des Webserver-Verhaltens im Verzeichnis ein.

      Öffnen Sie die Apache-Konfigurationsdatei für Ihre Website:

      • sudo nano /etc/apache2/sites-available/wordpress.conf

      Um .htaccess-Dateien zu erlauben, müssen wir die Anweisung AllowOverride in einem Verzeichnisblock festlegen, der auf unsere Dokument-Root verweist. Fügen Sie Ihrer Konfigurationsdatei im VirtualHost-Block den folgenden Textblock hinzu, wobei Sie sichergehen müssen, dass Sie das korrekte Web-Root-Verzeichnis verwenden:

      /etc/apache2/sites-available/wordpress.conf

      <Directory /var/www/wordpress/>
          AllowOverride All
      </Directory>
      

      Wenn Sie dies abgeschlossen haben, speichern und schließen Sie die Datei.

      Aktivierung des Rewrite-Moduls

      Als Nächstes können wir mod_rewrite aktivieren, damit wir die WordPress Permalink-Funktion verwenden können:

      Aktivierung der Änderungen

      Bevor wir die von uns vorgenommenen Änderungen implementieren, sollten Sie bestätigen, dass Ihnen keine Syntaxfehler unterlaufen sind:

      • sudo apache2ctl configtest

      Die Ausgabe kann eine vergleichbare Meldung enthalten:

      Output

      AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK

      Wenn Sie die oberste Zeile ausblenden wollen, fügen Sie Ihrer Haupt- (global) Apache-Konfigurationsdatei unter /etc/apache2/apache2.conf einfach einen ServerName hinzu. Der ServerName kann die Domäne oder IP-Adresse Ihres Servers sein. Hier handelt sich allerdings nur um eine Nachricht, die die Funktionalität der Site nicht beeinträchtigt. Solange die Ausgabe Syntax OK enthält, können Sie weitermachen.

      Starten Sie Apache erneut, um Ihre Änderungen zu implementieren:

      • sudo systemctl restart apache2

      Als Nächstes laden wir WordPress selbst herunter und richten es ein.

      Schritt 4 – Herunterladen von WordPress

      Jetzt ist unsere Server-Software konfiguriert, und wir können WordPress herunterladen und einrichten. Aus Sicherheitsgründen ist es immer ratsam, die neueste Version von WordPress von der Site zu erhalten.

      Wechseln Sie in ein beschreibbares Verzeichnis und laden dann die komprimierte Version herunter, indem Sie Folgendes eingeben:

      • cd /tmp
      • curl -O https://wordpress.org/latest.tar.gz

      Extrahieren Sie die komprimierte Datei, um die WordPress-Verzeichnisstruktur zu erstellen:

      Wir werden diese Dateien gleich in unsere Dokument-Root verschieben. Zuvor können wir eine .htaccess-Stellvertreterdatei hinzufügen, damit diese für WordPress später verfügbar ist.

      Erstellen Sie die Datei, indem Sie Folgendes eingeben:

      • touch /tmp/wordpress/.htaccess

      Wir kopieren auch die Muster-Konfigurationsdatei in den Dateinamen, den WordPress tatsächlich liest:

      • cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

      Wir können auch das upgrade-Verzeichnis erstellen, damit WordPress keine Berechtigungsprobleme bekommt, wenn es nach einem Software-Update versucht, dies selbst abzuwickeln:

      • mkdir /tmp/wordpress/wp-content/upgrade

      Jetzt können wir den gesamten Inhalt des Verzeichnisses in unsere Dokument-Root kopieren. An das Ende unseres Quellverzeichnisses setzen wir einen Punkt, damit alles im Verzeichnis kopiert werden kann, einschließlich ausgeblendeter Dateien (wie die von uns erstellte .htaccess-Datei):

      • sudo cp -a /tmp/wordpress/. /var/www/wordpress

      Schritt 5 – Konfiguration des WordPress-Verzeichnisses

      Bevor wir das webbasierte WordPress Setup vornehmen, müssen wir einige Elemente in unserem WordPress-Verzeichnis anpassen.

      Anpassung des Eigentums und der Berechtigungen

      Das Wichtigste ist das Einrichten vernünftiger Dateiberechtigungen und Eigentumsrechte.

      Wir beginnen damit, das Eigentum an allen Dateien auf www-data-Benutzer und -Gruppen zu übertragen. Das ist der Benutzer, unter dem der Apache-Webserver läuft, und Apache muss WordPress-Dateien lesen und schreiben können, damit die Website verwendet werden kann und automatisch Updates ausgeführt werden können.

      Aktualisieren Sie die Eigentsumsrechte mit chown:

      • sudo chown -R www-data:www-data /var/www/wordpress

      Als Nächstes werden wir zwei find Befehle ausführen, um die richtigen Berechtigungen in den WordPress-Verzeichnissen und -Dateien einzustellen:

      • sudo find /var/www/wordpress/ -type d -exec chmod 750 {} ;
      • sudo find /var/www/wordpress/ -type f -exec chmod 640 {} ;

      Das sollten von Anfang an angemessene Berechtigungen sein. Einige Plugins und Verfahren können zusätzliche Veränderungen erfordern.

      Einrichten der WordPress-Konfigurationsdatei

      Jetzt müssen wir Änderungen an der WordPress-Hauptkonfigurationsdatei vornehmen.

      Wenn wir die Datei öffnen, werden wir zunächst einige geheime Schlüssel ändern müssen, um unsere Installation zu sichern. WordPress stellt einen sicheren Generator für diese Werte bereit, damit Sie sie sich nicht ausdenken müssen. Sie werden nur intern verwendet, d. h. komplexe, sichere Werte haben keine Auswirkungen auf die Benutzerfreundlichkeit.

      Um sichere Werte vom WordPress Secret Key Generator zu erhalten, geben Sie Folgendes ein:

      • curl -s https://api.wordpress.org/secret-key/1.1/salt/

      Sie werden eindeutige Werte erhalten, die ungefähr so aussehen:

      Warnung! Es ist wichtig, dass Sie jedes Mal eindeutige Werte anfordern. Kopieren Sie NICHT die unten aufgeführten Werte!

      Output

      define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');

      Das sind Konfigurationszeilen, die wir direkt in unsere Konfigurationsdatei einfügen können, um sichere Schlüssel einzustellen. Kopieren Sie die Ausgabe, die Sie erhalten haben.

      Öffnen Sie jetzt die WordPress-Konfigurationsdatei:

      • sudo nano /var/www/wordpress/wp-config.php

      Finden Sie den Abschnitt, der die Stellvertreterwerte für diese Einstellungen enthält. Dies sollte ungefähr so aussehen:

      /var/www/wordpress/wp-config.php

      . . .
      
      define('AUTH_KEY',         'put your unique phrase here');
      define('SECURE_AUTH_KEY',  'put your unique phrase here');
      define('LOGGED_IN_KEY',    'put your unique phrase here');
      define('NONCE_KEY',        'put your unique phrase here');
      define('AUTH_SALT',        'put your unique phrase here');
      define('SECURE_AUTH_SALT', 'put your unique phrase here');
      define('LOGGED_IN_SALT',   'put your unique phrase here');
      define('NONCE_SALT',       'put your unique phrase here');
      
      . . .
      

      Löschen Sie diese Zeilen und fügen Sie die Werte ein, die Sie aus der Befehlszeile kopiert haben:

      /var/www/wordpress/wp-config.php

      . . .
      
      define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
      define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
      define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
      define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
      define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
      define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
      define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
      define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');
      
      . . .
      

      Als Nächstes müssen wir einige der Datenbank-Verbindungseinstellungen am Anfang der Datei ändern. Sie müssen den Datenbanknamen, den Datenbankbenutzer und das zugehörige Passwort anpassen, das wir in MySQL konfiguriert haben.

      Wir müssen außerdem die Methode festlegen, die WordPress verwenden sol, um in das Dateisystem zu schreiben. Da wir dem Webserver das Recht auf beliebiges Schreiben erteilt haben, können wir die Dateisystem-Methode auf „direct“ festlegen. Wenn wir das nicht auf unsere aktuellen Einstellungen anpassen, fragt WordPress bei bestimmten Handlungen nach FTP-Anmeldeangaben.

      Diese Einstellung kann unterhalb der Datenbank-Verbindungseinstellungen oder anderswo in der Datei eingefügt werden:

      /var/www/wordpress/wp-config.php

      . . .
      
      define('DB_NAME', 'wordpress');
      
      /** MySQL database username */
      define('DB_USER', 'wordpressuser');
      
      /** MySQL database password */
      define('DB_PASSWORD', 'password');
      
      . . .
      
      define('FS_METHOD', 'direct');
      

      Wenn Sie dies abgeschlossen haben, speichern und schließen Sie die Datei.

      Schritt 6 – Abschluss der Installation über die Web-Oberfläche

      Jetzt ist die Serverkonfiguration abgeschlossen, und wir können die Installation über die Web-Oberfläche abschließen.

      Navigieren Sie im Web-Browser zum Domänenamen oder zur öffentlichen IP-Adresse Ihres Servers:

      https://server_domain_or_IP
      

      Wählen Sie die Sprache aus, die Sie verwenden möchten:

      WordPress-Sprachauswahl

      Als Nächstes kommen Sie zur Setup-Hauptseite.

      Wählen Sie einen Namen für Ihre WordPress-Website und einen Benutzernamen aus (aus Sicherheitsgründen sollten Sie kein Wort mit „admin“ wählen). Ein starkes Passwort wird automatisch erstellt. Speichern Sie dieses oder wählen Sie anderes starkes Passwort aus.

      Geben Sie Ihre E-Mail-Adresse ein und wählen Sie, ob Sie Suchmaschinen aus der Indexierung Ihrer Site ausschließen wollen:

      WordPress-Setup-Installation

      Wenn Sie weiter klicken, kommen Sie zu einer Seite, auf der Sie sich anmelden müssen:

      WordPress-Anmeldung

      Nach der Anmeldung gelangen Sie zum WordPress-Administrations-Dashboard:

      WordPress-Anmeldung

      Zusammenfassung

      WordPress sollte jetzt installiert und einsatzbereit sein! Einige häufige nächste Schritte sind die Auswahl der Permalink-Einstellungen für Ihre Posts (diese sind unter Einstellungen>Permalinks zu finden) oder die Auswahl eines neuen Designs (in Darstellung>Design). Wenn Sie WordPress das erste Mal verwenden, schauen Sie sich die Oberfläche an, um Ihre neue CMS kennenzulernen.



      Source link

      Einrichten eines OpenVPN-Servers auf Ubuntu 18.04


      Eine frühere Version dieses Tutorials wurde von Justin Ellingwood verfasst

      Einführung

      Möchten Sie sicher von Ihrem Smartphone oder Laptop auf das Internet zugreifen, wenn Sie mit einem nicht vertrauenswürdigen Netzwerk, wie dem WLAN eines Hotels oder Cafés, verbunden sind? Ein Virtual Private Network (VPN) ermöglicht die private und sichere Nutzung nicht vertrauenswürdiger Netzwerke, als ob Sie sich in einem privaten Netzwerk befinden würden. Der Datenverkehr wird vom VPN-Server ausgegeben und wird bis zum Ziel übermittelt.

      In Kombination mit HTTPS-Verbindungen können Sie mit diesem Setup Ihre WLAN-Logins und Transaktionen sichern. Sie können geografische Beschränkungen und Zensuren umgehen und Ihren Ort und jeglichen unverschlüsselten HTTP-Verkehr vom nicht vertrauenswürdigen Netzwerk abschirmen.

      OpenVPN ist eine Open-Source Secure Socket Layer (SSL) VPN-Lösung mit umfassender Funktionalität, die eine Vielzahl von Konfigurationen unterstützt. In diesem Tutorial richten Sie einen OpenVPN-Server auf einem Ubuntu 18.04 Server ein und konfigurieren dann den Zugriff von Windows, MacOS, iOS und/oder Android. Dieses Tutorial wird die Installations- und Konfigurationsschritte für jedes dieser Setups so einfach wie möglich halten.

      Anmerkung: Wenn Sie planen, einen OpenVPN-Server auf einem DigitalOcean-Droplet einzurichten, sollten Sie sich bewusst sein, dass wir, wie viele Hosting-Anbieter, Zusatzgebühren für das Überschreiten des Bandbreitenlimits verlangen können. Bedenken Sie aus diesem Grund, wie viel Datenverkehr Ihr Server verarbeiten kann.

      Siehe diese Seite für weitere Informationen.

      Voraussetzungen

      Um dieses Tutorial zu absolvieren, benötigen Sie Zugriff auf einen Ubuntu 18.04 Server, der Ihren OpenVPN-Dienst hosten kann. Sie müssen einen Benutzer ohne root-berechtigung mit sudo-Rechten konfigurieren, bevor Sie diesen Leitfaden starten können. Sie können unseren Leitfaden zur Ersteinrichtung des Servers mit Ubuntu 18.04 befolgen, um einen Benutzer mit entsprechenden Berechtigungen einzurichten. Das verknüpfte Tutorial richtet auch eine Firewall ein, und in diesem Leitfaden wird davon ausgegangen, dass sie vorhanden ist.

      Zusätzlich benötigen Sie einen separaten Computer, der als Ihre Zertifizierungsstelle (Certificate Authority, CA) dient. Während es technisch möglich ist, Ihren OpenVPN-Server oder Ihren lokalen Computer als CA zu verwenden, wird dies nicht empfohlen, da Ihr VPN dadurch gewissen Sicherheitsschwachstellen ausgesetzt ist. Gemäß der offiziellen OpenVPN-Dokumentation sollten Sie Ihre CA auf einem eigenständigen Computer ablegen, der für das Importieren und Signieren von Zertifikatsanforderungen bestimmt ist. Aus diesem Grund wird in diesem Leitfaden davon ausgegangen, dass sich Ihre CA auf einem separaten Ubuntu 18.04 Server befindet, der auch einen Benutzer ohne root-berechtigung mit sudo-Rechten und eine einfache Firewall aufweist.

      Bitte beachten Sie, dass wenn Sie beim Konfigurieren dieser Server die Passwort-Authentifizierung deaktivieren, Sie später beim Übertragen von Dateien zwischen ihnen gemäß Leitfaden Schwierigkeiten haben können. Um dieses Problem zu lösen, könnten Sie auf jedem Server die Passwort-Authentifizierung neu aktivieren. Alternativ könnten Sie für jeden Server ein SSH-Schlüsselpaar erstellen, dann den öffentlichen SSH-Schlüssel des OpenVPN-Servers zur Datei authorized_keys des CA-Computers hinzufügen und umgekehrt. Anweisungen zur Ausführung dieser Lösungen finden Sie unter Einrichten von SSH-Schlüsseln auf Ubuntu 18.04.

      Wenn diese Voraussetzungen erfüllt sind, können Sie mit Schritt 1 dieses Tutorials fortfahren.

      Schritt 1 – Installieren von OpenVPN und EasyRSA

      Aktualisieren Sie zunächst den Paketindex Ihres VPN-Servers und installieren Sie OpenVPN. OpenVPN steht in Ubuntu Standard-Repositorys zur Verfügung, damit Sie apt für die Installation verwenden können:

      • sudo apt update
      • sudo apt install openvpn

      OpenVPN ist ein TLS/SSL VPN. Das bedeutet, dass es Zertifikate verwendet, um den Verkehr zwischen Server und Clients zu verschlüsseln. Um vertrauenswürdige Zertifikate auszugeben, richten Sie Ihre eigene einfache Zertifizierungsstelle (CA) ein. Dazu laden wir die neueste Version von EasyRSA herunter, mit der wir unsere Public-Key-Infrastruktur (PKI) der CA vom offiziellen GitHub-Repository des Projekts aufbauen können.

      Wie in den Voraussetzungen erwähnt, erstellen wir die CA auf einem eigenständigen Server. Der Grund für diesen Ansatz ist folgender: Wenn ein Angreifer Ihren Server infiltrieren könnte, wäre er in der Lage, auf Ihren Private-Key der CA zuzugreifen und neue Zertifikate zu signieren, wodurch er Zugriff auf das VPN erhalten würde. Dementsprechend kann die Verwaltung der CA über einem eigenständigen Computer dazu beitragen, den Zugriff auf Ihr VPN durch unbefugte Benutzer zu verhindern. Beachten Sie auch, dass als weitere Vorsichtsmaßnahme empfohlen wird, den CA-Server ausgeschaltet zu lassen, wenn er nicht zum Signieren von Schlüsseln verwendet wird.

      Um mit dem Aufbau der CA- und PKI-Infrastruktur zu beginnen, verwenden Sie wget, um die neueste Version von EasyRSA sowohl auf Ihren CA-Computer als auch auf Ihren OpenVPN-Server herunterzuladen. Um die neueste Version zu erhalten, gehen Sie auf die Seite Releases im offiziellen EasyRSA GitHub-Projekt, kopieren Sie den Download-Link für die Datei, die in .tgz endet, und fügen Sie sie dann in den folgenden Befehl ein:

      • wget -P ~/ https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/EasyRSA-3.0.4.tgz

      Extrahieren Sie dann den Tarball:

      • cd ~
      • tar xvf EasyRSA-3.0.4.tgz

      Sie haben alle erforderliche Software auf Ihrem Server und dem CA-Computer erfolgreich installiert. Fahren Sie mit der Konfiguration der von EasyRSA verwendeten Variablen fort und richten Sie ein CA-Verzeichnis ein, aus dem Sie die für Ihren Server und die Clients benötigten Schlüssel und Zertifikate generieren, die für den Zugriff auf das VPN erforderlich sind.

      Schritt 2 – Konfiguration der EasyRSA-Variablen und Aufbau der CA

      In EasyRSA ist eine Konfigurationsdatei vorinstalliert, die Sie zum Definieren einer Anzahl von Variablen für Ihre CA bearbeiten können.

      Navigieren Sie auf Ihrem CA-Computer zum EasyRSA-Verzeichnis:

      In diesem Verzeichnis befindet sich eine Datei namens vars.example. Erstellen Sie eine Kopie dieser Datei und benennen Sie die Kopie vars ohne Datei-Erweiterung:

      Öffnen Sie diese neue Datei mit Ihrem bevorzugten Texteditor:

      Finden Sie die Einstellungen, mit denen Feldstandardeinstellungen für neue Zertifikate festgelegt werden. Dies sollte ungefähr so aussehen:

      ~/EasyRSA-3.0.4/vars

      . . .
      
      #set_var EASYRSA_REQ_COUNTRY    "US"
      #set_var EASYRSA_REQ_PROVINCE   "California"
      #set_var EASYRSA_REQ_CITY       "San Francisco"
      #set_var EASYRSA_REQ_ORG        "Copyleft Certificate Co"
      #set_var EASYRSA_REQ_EMAIL      "[email protected]"
      #set_var EASYRSA_REQ_OU         "My Organizational Unit"
      
      . . .
      

      Kommentieren Sie diese Zeilen aus und aktualisieren Sie die markierten Werte auf von Ihnen bevorzugte Werte; lassen Sie sie jedoch nicht leer:

      ~/EasyRSA-3.0.4/vars

      . . .
      
      set_var EASYRSA_REQ_COUNTRY    "US"
      set_var EASYRSA_REQ_PROVINCE   "NewYork"
      set_var EASYRSA_REQ_CITY       "New York City"
      set_var EASYRSA_REQ_ORG        "DigitalOcean"
      set_var EASYRSA_REQ_EMAIL      "[email protected]"
      set_var EASYRSA_REQ_OU         "Community"
      
      . . .
      

      Wenn Sie dies abgeschlossen haben, speichern und schließen Sie die Datei.

      Im EasyRSA-Verzeichnis befindet sich ein Skript namens easyrsa, das zum Aufruf einer Vielzahl von Aufgaben verwendet wird, die mit dem Aufbau und der Verwaltung der CA im Zusammenhang stehen. Führen Sie dieses Skript mit der Option init-pki aus, um die Public-Key-Infrastruktur auf dem CA-Server einzuleiten:

      Output

      . . . init-pki complete; you may now create a CA or requests. Your newly created PKI dir is: /home/sammy/EasyRSA-3.0.4/pki

      Rufen Sie anschließend das easyrsa-Skript erneut auf und führen die Option build-ca aus. Dadurch wird die CA erstellt und es werden zwei wichtige Dateien angelegt – ca.crt und caskey –, die die öffentlichen und privaten Seiten eines SSL-Zertifikats darstellen.

      • ca.crt ist die öffentliche Zertifikatdatei der CA, die der Server und der Client im Zusammenhang mit OpenVPN dazu verwenden, einander darüber zu informieren, dass sie demselben vertrauenswürdigen Web angehören und keinen Man-in-the-Middle-Angriff ausführten. Aus diesem Grund benötigen Ihr Server und alle Ihre Clients eine Kopie der Datei ca.crt.
      • ca.key ist der private Schlüssel, mit dem der CA-Computer Schlüssel und Zertifikate für Server und Clients signiert. Wenn ein Angreifer Zugriff auf Ihre CA und die Datei ca.key erhält, kann er Zertifikatsanforderungen signieren und Zugriff auf Ihr VPN erhalten, wodurch Ihre Sicherheit gefährdet wird. Deshalb sollte sich Ihre Datei ca.key nur auf Ihrem CA-Computer befinden und Ihr CA-Computer im Idealfall als zusätzliche Sicherheitsmaßnahme offline bleiben, wenn keine Zertifikatsanforderungen signiert werden.

      Wenn Sie nicht bei jeder Interaktion mit Ihrer CA zur Eingabe eines Passwortes aufgefordert werden möchten, können Sie den Befehl build-ca mit der Option nopass ausführen, wie folgt:

      • ./easyrsa build-ca nopass

      In der Ausgabe werden Sie aufgefordert, den *geläufigen Namen *für Ihre CA zu bestätigen:

      Output

      . . . Common Name (eg: your user, host, or server name) [Easy-RSA CA]:

      Der geläufige Name ist der Name, der verwendet wird, um im Kontext der Zertifizierungsstelle auf diesen Computer zu verweisen. Sie können als geläufigen Namen der CA eine beliebige Zeichenfolge eingeben, aber drücken Sie der Einfachheit halber die ENTER, um den Standardnamen zu akzeptieren.

      Damit ist Ihre CA bereit, Zertifikatsanforderungen zu signieren.

      Schritt 3 – Erstellen des Server-Zertifikats, Schlüssels und der Verschlüsselungsdateien

      Da Ihre CA jetzt einsatzbereit ist, können Sie auf Ihrem Server einen privaten Schlüssel und eine Zertifikatsanforderung erstellen und die Anforderung dann zwecks Signatur auf Ihre CA übertragen, wodurch das angeforderte Zertifikat erstellt wird. Sie können auch zusätzliche Dateien erstellen, die während des Verschlüsselungsprozesses verwendet werden.

      Beginnen Sie, indem Sie auf Ihrem OpenVPN-Server in das EasyRSA-Verzeichnis navigieren:

      Führen Sie dort das easyrsa-Skript mit der Option init-pki aus. Obwohl Sie diesen Befehl bereits auf dem CA-Computer ausgeführt haben, muss er hier ausgeführt werden, weil Ihr Server und die CA über separate PKI-Verzeichnisse verfügen:

      Rufen Sie dann das easyrsa-Skript erneut auf, diesmal mit der Option gen-req, gefolgt von einem geläufigen Namen für den Computer. Auch hier können Sie eine beliebige Zeichenfolge eingeben, aber es kann hilfreich sein, eine aussagekräftige Bezeichnung zu wählen. In diesem Tutorial wählen wir als geläufigen Namen des OpenVPN-Servers einfach „Server“. Achten Sie darauf, auch die Option nopass einzubeziehen. Wenn das nicht geschieht, wird die Anforderungsdatei passwortgeschützt, was später zu Berechtigungsproblemen führen könnte:

      Anmerkung: Wenn Sie hier einen anderen Namen als „Server“ wählen, müssen Sie einige der nachstehenden Anweisungen anpassen. Wenn Sie beispielsweise die erzeugten Dateien in das Verzeichnis /etc/openvpn kopieren, müssen Sie die richtigen Namen einfügen. Sie müssen auch später die Datei /etc/openvpn/server.conf ändern, um auf die richtigen .crt– und .key-Dateien zu verweisen.

      • ./easyrsa gen-req server nopass

      Dadurch wird ein privater Schlüssel für den Server und eine Zertifikatsanforderungsdatei namens server.req erstellt. Kopieren Sie den Serverschlüssel in das Verzeichnis /etc/openvpn/:

      • sudo cp ~/EasyRSA-3.0.4/pki/private/server.key /etc/openvpn/

      Mit einem sicheren Verfahren (wie SCP in unserem nachstehenden Beispiel) können Sie die Datei server.req auf Ihren CA-Computer übertragen:

      • scp ~/EasyRSA-3.0.4/pki/reqs/server.req sammy@your_CA_ip:/tmp

      Navigieren Sie als Nächstes auf Ihrem CA-Computer in das EasyRSA-Verzeichnis:

      Mit dem easyrsa-Skript wird die Datei server.req importiert, wobei der geläufige Name auf den Dateipfad folgt:

      • ./easyrsa import-req /tmp/server.req server

      Signieren Sie die Anforderung, indem Sie das easyrsa-Skript mit der Option sign-req ausführen, gefolgt vom Anforderungstyp und dem geläufigen Namen. Der Anforderungstyp kann entweder client oder server sein; achten Sie daher darauf, für die Zertifikatsanforderung des OpenVPN-Servers den Anforderungstyp server zu verwenden:

      • ./easyrsa sign-req server server

      In der Ausgabe müssen Sie verifizieren, dass die Anforderung von einer vertrauenswürdigen Quelle stammt. Geben Sie yes ein, und drücken Sie dann zur Bestätigung die ENTER:

      You are about to sign the following certificate.
      Please check over the details shown below for accuracy. Note that this request
      has not been cryptographically verified. Please be sure it came from a trusted
      source or that you have verified the request checksum with the sender.
      
      Request subject, to be signed as a server certificate for 3650 days:
      
      subject=
          commonName                = server
      
      
      Type the word 'yes' to continue, or any other input to abort.
        Confirm request details: yes
      

      Wenn Sie Ihren CA-Schlüssel verschlüsselt haben, werden Sie zu diesem Zeitpunkt zur Eingabe Ihres Passworts aufgefordert.

      Übertragen Sie dann das signierte Zertifikat im sicheren Verfahren zurück auf Ihren VPN-Server:

      • scp pki/issued/server.crt sammy@your_server_ip:/tmp

      Bevor Sie sich aus Ihrem CA-Computer abmelden, übertragen Sie auch die Datei ca.crt auf Ihren Server:

      • scp pki/ca.crt sammy@your_server_ip:/tmp

      Melden Sie sich wieder auf Ihrem OpenVPN-Server an und kopieren Sie die Dateien server.crt und ca.crt in das Verzeichnis /etc/openvpn/:

      • sudo cp /tmp/{server.crt,ca.crt} /etc/openvpn/

      Navigieren Sie dann in Ihr EasyRSA-Verzeichnis:

      Erstellen Sie dort einen starken Diffie-Hellman-Schlüssel, der während des Schlüsselaustauschs verwendet wird, indem Sie Folgendes eingeben:

      Dies kann einige Minuten dauern. Generieren Sie nach Abschluss dieses Verfahrens eine HMAC-Signatur, um die TLS-Integritätsverifizierungsfähigkeiten des Servers zu verbessern:

      • openvpn --genkey --secret ta.key

      Kopieren Sie nach Beendigung des Befehls die beiden neuen Dateien in das Verzeichnis /etc/openvpn/:

      • sudo cp ~/EasyRSA-3.0.4/ta.key /etc/openvpn/
      • sudo cp ~/EasyRSA-3.0.4/pki/dh.pem /etc/openvpn/

      Damit wurden alle von Ihrem Server benötigten Zertifikats- und Schlüsseldateien generiert. Jetzt können Sie die entsprechenden Zertifikate und Schlüssel erstellen, die Ihr Client-Computer für den Zugriff auf Ihren OpenVPN-Server verwendet.

      Schritt 4 – Generieren eines Client-Zertifikats und eines Schlüsselpaars

      Sie können zwar einen privaten Schlüssel und eine Zertifikatsanforderung auf Ihrem Client-Computer erstellen und dann zwecks Signierung zur CA senden, aber dieser Leitfaden beschreibt einen Prozess zum Generieren der Zertifikatsanforderung auf dem Server. Der Vorteil besteht darin, dass wir ein Skript erstellen können, das automatisch Client-Konfigurationsdateien generiert, die alle benötigten Schlüssel und Zertifikate enthalten. Damit können Sie vermeiden, dass Schlüssel, Zertifikate und Konfigurationsdateien an Clients übertragen werden müssen, und der Prozess des Verbindungsaufbaus zum VPN wird gestrafft.

      In diesem Leitfaden generieren wir einen einzelnen Client-Schlüssel und ein Zertifikatpaar. Wenn Sie mehr als einen Client haben, können Sie diesen Prozess für jeden Client wiederholen. Bitte beachten Sie allerdings, dass Sie für jeden Client einen eindeutigen Namenswert an das Skript übergeben müssen. In diesem Tutorial wird das erste Zertifikat/Schlüsselpaar als client1 bezeichnet.

      Beginnen Sie, indem Sie eine Verzeichnisstruktur in Ihrem Stammverzeichnis erstellen, um das Client-Zertifikat und die Schlüsseldateien zu speichern:

      • mkdir -p ~/client-configs/keys

      Da Sie das Zertifikat/die Schlüsselpaare Ihrer Clients und die Konfigurationsdateien in diesem Verzeichnis speichern, sollten Sie als Sicherheitsmaßnahme die Berechtigungen jetzt sperren:

      • chmod -R 700 ~/client-configs

      Navigieren Sie als Nächstes zurück zum EasyRSA-Verzeichnis und führen das easyrsa-Skript mit den Optionen gen-req und nopass zusammen mit dem geläufigen Namen für den Client aus:

      • cd ~/EasyRSA-3.0.4/
      • ./easyrsa gen-req client1 nopass

      Drücken Sie die ENTER, um den geläufigen Namen zu bestätigen. Kopieren Sie dann die Datei client1.key in das zuvor erstellte Verzeichnis /client-configs/keys/:

      • cp pki/private/client1.key ~/client-configs/keys/

      Als Nächstes übertragen Sie die Datei client1.req in einem sicheren Verfahren auf Ihren CA-Computer:

      • scp pki/reqs/client1.req sammy@your_CA_ip:/tmp

      Melden Sie sich bei Ihrem CA-Computer an, navigieren Sie zum EasyRSA-Verzeichnis und importieren die Zertifikatsanforderung:

      • ssh sammy@your_CA_ip
      • cd EasyRSA-3.0.4/
      • ./easyrsa import-req /tmp/client1.req client1

      Signieren Sie dann die Anforderung, wie Sie dies im vorherigen Schritt für den Server getan haben. Dieses Mal muss jedoch der Anforderungstyp client angegeben werden:

      • ./easyrsa sign-req client client1

      Geben Sie bei der Eingabeaufforderung yes ein, um zu bestätigen, dass Sie beabsichtigen, die Zertifikatsanforderung zu signieren, und dass sie aus einer vertrauenswürdigen Quelle stammt:

      Output

      Type the word 'yes' to continue, or any other input to abort. Confirm request details: yes

      Wenn Sie Ihren CA-Schlüssel verschlüsselt haben, werden Sie erneut zur Eingabe Ihres Passworts aufgefordert.

      Damit wird ein Client-Zertifikat namens client1.crt erstellt. Übertragen Sie diese Datei wieder auf den Server:

      • scp pki/issued/client1.crt sammy@your_server_ip:/tmp

      Stellen Sie mit SSH wieder eine Verbindung mit dem OpenVPN-Server her und kopieren Sie das Client-Zertifikat in das Verzeichnis /client-configs/keys/:

      • cp /tmp/client1.crt ~/client-configs/keys/

      Kopieren Sie dann auch die Dateien ca.crt und ta.key in das Verzeichnis /client-configs/keys/:

      • cp ~/EasyRSA-3.0.4/ta.key ~/client-configs/keys/
      • sudo cp /etc/openvpn/ca.crt ~/client-configs/keys/

      Damit wurden alle Zertifikate des Servers und Clients sowie alle Schlüssel generiert und in den entsprechenden Verzeichnissen auf Ihrem Server gespeichert. Es gibt noch einige Aktionen, die mit diesen Dateien ausgeführt werden müssen, aber diese werden in einem späteren Schritt beschrieben. Jetzt können Sie mit der Konfiguration von OpenVPN auf Ihrem Server fortfahren.

      Schritt 5 – Konfiguration des OpenVPN-Dienstes

      Da jetzt sowohl die Client- als auch Server-Zertifikate und die Schlüssel generiert wurden, können Sie mit der Konfiguration des OpenVPN-Dienstes beginnen, um diese Anmeldedaten zu verwenden.

      Beginnen Sie, indem Sie eine OpenVPN-Konfigurationsbeispieldatei in das Konfigurationsverzeichnis kopieren und dann dort extrahieren, um sie als Grundlage für Ihr Setup zu verwenden:

      • sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
      • sudo gzip -d /etc/openvpn/server.conf.gz

      Öffnen Sie die Konfigurationsdatei des Servers in Ihrem bevorzugten Texteditor:

      • sudo nano /etc/openvpn/server.conf

      Lokalisieren Sie den HMAC-Abschnitt, indem Sie nach der Anweisung tls-auth suchen. Diese Zeile sollte bereits auskommentiert sein, aber wenn das nicht der Fall ist, entfernen Sie das „;“, um sie auszukommentieren:

      /etc/openvpn/server.conf

      tls-auth ta.key 0 # This file is secret
      

      Als Nächstes lokalisieren Sie den Abschnitt über kryptographische Verschlüsselungen, indem Sie nach den auskommentierten cipher Zeilen suchen. Die Verschlüsselung AES-256-CBC bietet eine gute Verschlüsselungsstufe und wird ausreichend unterstützt. Diese Zeile sollte ebenfalls bereits auskommentiert sein, aber wenn das nicht der Fall ist, entfernen Sie ganz einfach das vorangestellte „;“:

      /etc/openvpn/server.conf

      cipher AES-256-CBC
      

      Fügen Sie darunter die Anweisung auth hinzu, um den Digestalgorithmus der HMAC-Nachricht zu wählen. Dafür ist SHA256 eine gute Wahl:

      /etc/openvpn/server.conf

      auth SHA256
      

      Suchen Sie als Nächstes nach der Zeile mit der Anweisung dh, die die Diffie-Hellman-Parameter definiert. Aufgrund einiger jüngster Änderungen an EasyRSA kann sich der Dateiname für den Diffie-Hellman-Schlüssel von demjenigen in der Konfigurationsbeispieldatei unterscheiden. Wenn erforderlich, ändern Sie den hier aufgeführten Datennamen, indem Sie 2048 entfernen, so dass er dem im vorherigen Schritt generierten Schlüssel entspricht:

      /etc/openvpn/server.conf

      dh dh.pem
      

      Suchen Sie abschließend die Einstellungen user und group und entfernen jeweils das „;“ am Anfang, um diese Zeilen auszukommentieren:

      /etc/openvpn/server.conf

      user nobody
      group nogroup
      

      Die Änderungen, die Sie bisher an der Beispieldatei server.conf vorgenommen haben, sind für das Funktionieren von OpenVPN notwendig. Die nachstehend aufgeführten Änderungen sind zwar optional, werden aber auch für viele häufige Anwendungsfälle benötigt.

      (Optional) DNS-Änderungen mithilfe von Push übertragen, um den gesamten Verkehrs durch das VPN umzuleiten

      Mit den obigen Einstellungen wird die VPN-Verbindung zwischen den beiden Computern erstellt, die Verbindungen werden allerdings nicht zum Einsatz des Tunnels gezwungen. Wenn das VPN für das Routen des gesamten Verkehrs verwendet werden soll, sollten Sie wahrscheinlich die DNS-Einstellungen mithilfe von Push an die Client-Computer übertragen.

      In der Datei server.conf gibt es einige Anweisungen, die Sie ändern müssen, um diese Funktionalität zu aktivieren. Lokalisieren Sie den Abschnitt redirect-gateway und entfernen das Semikolon „;“, vom Anfang der Zeile redirect-gateway, um den Kommentar zu entfernen:

      /etc/openvpn/server.conf

      push "redirect-gateway def1 bypass-dhcp"
      

      Direkt darunter befindet sich der Abschnitt dhcp-option. Entfernen Sie erneut das „;“ zu Beginn der beiden Zeilen, um die Kommentare zu entfernen:

      /etc/openvpn/server.conf

      push "dhcp-option DNS 208.67.222.222"
      push "dhcp-option DNS 208.67.220.220"
      

      Dadurch werden die Clients bei der Neukonfigurierung ihrer DNS-Einstellungen unterstützt, damit der VPN-Tunnel als Standard-Gateway verwendet werden kann.

      (Optional) Anpassung des Ports und Protokolls

      Standardmäßig verwendet der OpenVPN-Server Port 1194 und das UDP-Protokoll, um Client-Verbindungen zu akzeptieren. Wenn Sie aufgrund von restriktiven Netzwerkumgebungen, in denen sich Ihre Clients eventuell befinden, einen anderen Port verwenden müssen, können Sie die Option port ändern. Wenn Sie auf Ihrem OpenVPN-Server keine Web-Inhalte hosten, ist Port 443 eine gängige Wahl, da er üblicherweise von den Firewall-Regeln zugelassen wird.

      /etc/openvpn/server.conf

      # Optional!
      port 443
      

      Häufig ist das Protokoll auch auf diesen Port beschränkt. Wenn das der Fall ist, ändern Sie proto von UDP in TCP:

      /etc/openvpn/server.conf

      # Optional!
      proto tcp
      

      Wenn Sie das Protokoll tatsächlich in TCP ändern, müssen Sie den Wert der Anweisung explicit-exit-notify von 1 auf 0 ändern, da diese Anweisung nur von UDP verwendet wird. Wenn dies während der Verwendung von TCP nicht befolgt wird, treten beim Starten des OpenVPN-Dienstes Fehler auf:

      /etc/openvpn/server.conf

      # Optional!
      explicit-exit-notify 0
      

      Wenn Sie keinen anderen Port und kein anderes Protokoll verwenden müssen, ist es am besten, diese beiden Einstellungen in ihren Standardeinstellungen zu belassen.

      (Optional) Auf nicht standardmäßige Anmeldedaten verweisen

      Wenn Sie zuvor während des Befehls ./build-key-server einen anderen Namen ausgewählt haben, ändern Sie die Zeilen cert und key so ab, dass Sie auf die entsprechenden Dateien .crt und .key verweisen. Wenn Sie den Standardnamen „server“ verwendet haben, ist dieser bereits korrekt festgelegt:

      /etc/openvpn/server.conf

      cert server.crt
      key server.key
      

      Wenn Sie dies abgeschlossen haben, speichern und schließen Sie die Datei.

      Nachdem Sie die OpenVPN-Konfiguration Ihres Servers überprüft und alle für Ihren spezifischen Anwendungsfall erforderlichen Änderungen vorgenommen haben, können Sie damit beginnen, Änderungen am Netzwerk Ihres Servers vorzunehmen.

      Schritt 6 – Anpassung der Netzwerkkonfiguration des Servers

      Es gibt einige Aspekte der Netzwerkkonfiguration des Servers, die optimiert werden müssen, damit OpenVPN den Verkehr korrekt durch das VPN leiten kann. Als Erstes muss die IP-Weiterleitung angepasst werden, eine Methode zur Bestimmung, wohin der IP-Verkehr geleitet werden sollte. Diese Änderung ist für die von Ihrem Server bereitgestellte VPN-Funktionalität von entscheidender Bedeutung.

      Passen Sie die Standardeinstellung Ihres Servers für die IP-Weiterleitung an, indem Sie die Datei /etc/sysctl.conf ändern:

      • sudo nano /etc/sysctl.conf

      Suchen Sie dort nach der kommentierten Zeile, die net.ip4.ip_forward festlegt. Entfernen Sie das Zeichen „#“ vom Beginn der Zeile, um diese Einstellung auszukommentieren:

      /etc/sysctl.conf

      net.ipv4.ip_forward=1
      

      Wenn Sie fertig sind, speichern und schließen Sie die Datei.

      Um die Datei zu lesen und die Werte für die aktuelle Sitzung anzupassen, geben Sie Folgendes ein:

      Output

      net.ipv4.ip_forward = 1

      Wenn Sie den Leitfaden zur Ersteinrichtung des Servers mit Ubuntu 18.04 befolgt haben, der in den Voraussetzungen aufgeführt ist, sollte eine UFW-Firewall vorhanden sein. Unabhängig davon, ob Sie die Firewall verwenden, um unerwünschten Verkehr zu blockieren (was Sie fast immer tun sollten), benötigen Sie für diesen Leitfaden eine Firewall, um einen Teil des eingehenden Verkehrs zu manipulieren. Einige der Firewall-Regeln müssen geändert werden, damit Masquerading aktiviert werden kann, ein iptables-Konzept, das eine dynamische Netzwerkadressenübersetzung (NAT) bereitstellt, um Client-Verbindungen korrekt zu routen.

      Bevor die Firewall-Konfigurationsdatei geöffnet wird, um Masquerading-Regeln hinzuzufügen, müssen Sie zunächst die öffentliche Netzwerkschnittstelle Ihres Computers finden. Dazu geben Sie Folgendes ein:

      Ihre öffentliche Schnittstelle ist die in der Ausgabe dieses Befehls enthaltene Zeichenfolge, die dem Wort „dev“ folgt. Dieses Ergebnis zeigt beispielsweise die im Folgenden hervorgehobene Schnittstelle wlp11s0 an:

      Output

      default via 203.0.113.1 dev wlp11s0 proto static

      Wenn Sie die mit Ihrer Standardroute verknüpfte Schnittstelle gefunden haben, öffnen Sie die Datei /etc/ufw/before.rules, um die entsprechende Konfiguration hinzuzufügen:

      • sudo nano /etc/ufw/before.rules

      UFW-Regeln werden typischerweise mit dem Befehl ufw hinzugefügt. Regeln, die jedoch in der Datei before.rules aufgeführt sind, werden gelesen und implementiert, bevor die herkömmlichen UFW-Regeln geladen werden. Fügen Sie im oberen Teil der Datei die nachstehend hervorgehobenen Zeilen hinzu. Damit wird die Standardrichtlinie für die POSTROUTING-Kette in der Tabelle nat festgelegt und für jeden vom VPN eingehenden Verkehr ein Masquerading ausgeführt. Denken Sie daran, wlp11s0 in der nachstehenden Zeile -A POSTROUTING durch die im obigen Befehl gefundene Schnittstelle zu ersetzen:

      /etc/ufw/before.rules

      #
      # rules.before
      #
      # Rules that should be run before the ufw command line added rules. Custom
      # rules should be added to one of these chains:
      #   ufw-before-input
      #   ufw-before-output
      #   ufw-before-forward
      #
      
      # START OPENVPN RULES
      # NAT table rules
      *nat
      :POSTROUTING ACCEPT [0:0]
      # Allow traffic from OpenVPN client to wlp11s0 (change to the interface you discovered!)
      -A POSTROUTING -s 10.8.0.0/8 -o wlp11s0 -j MASQUERADE
      COMMIT
      # END OPENVPN RULES
      
      # Don't delete these required lines, otherwise there will be errors
      *filter
      . . .
      

      Wenn Sie fertig sind, speichern und schließen Sie die Datei.

      Als Nächstes müssen Sie UFW mitteilen, weitergeleitete Pakete standardmäßig zuzulassen. Dazu öffnen Sie die Datei /etc/default/ufw:

      • sudo nano /etc/default/ufw

      Lokalisieren Sie dort die Anweisung DEFAULT_FORWARD_POLICY und ändern Sie den Wert von DROP auf ACCEPT:

      /etc/default/ufw

      DEFAULT_FORWARD_POLICY="ACCEPT"
      

      Wenn Sie fertig sind, speichern und schließen Sie die Datei.

      Passen Sie dann die Firewall an, um den Verkehr zu OpenVPN zuzulassen. Wenn Sie den Port und das Protokoll in der Datei /etc/openvpn/server.conf nicht geändert haben, müssen Sie den UDP-Verkehr auf Port 1194 öffnen. Wenn Sie den Port und/oder das Protokoll modifiziert haben, ersetzen Sie die hier ausgewählten Werte.

      Sollten Sie vergessen haben, während der Ausführung des Tutorials in den Voraussetzungen den SSH-Port hinzuzufügen, fügen Sie ihn hier hinzu:

      • sudo ufw allow 1194/udp
      • sudo ufw allow OpenSSH

      Deaktivieren und reaktivieren Sie nach Hinzufügen dieser Regeln die UFW, um sie neu zu starten. Laden Sie die Änderungen von allen von Ihnen modifizierten Dateien:

      • sudo ufw disable
      • sudo ufw enable

      Ihr Server ist jetzt so konfiguriert, dass der OpenVPN-Verkehr korrekt abgewickelt werden kann.

      Schritt 7 – Starten und Aktivieren des OpenVPN-Dienstes

      Sie sind nun bereit, den OpenVPN-Dienst auf Ihrem Server zu starten. Dazu wird das systemd-Utility systemctl verwendet.

      Starten Sie den OpenVPN-Server, indem Sie Ihren Konfigurationsdateinamen als Instanzvariable nach dem systemd-Unit-Dateinamen angeben. Die Konfigurationsdatei für Ihren Server lautet /etc/openvpn/server.conf; fügen Sie also beim Aufruf am Ende Ihrer Unit-Datei @server hinzu:

      • sudo systemctl start openvpn@server

      Überprüfen Sie, ob der Dienst erfolgreich gestartet wurde, indem Sie Folgendes eingeben:

      • sudo systemctl status openvpn@server

      Bei erfolgreichem Start sieht Ihre Ausgabe in etwa wie folgt aus:

      Output

      [email protected] - OpenVPN connection to server Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled) Active: active (running) since Tue 2016-05-03 15:30:05 EDT; 47s ago Docs: man:openvpn(8) https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage https://community.openvpn.net/openvpn/wiki/HOWTO Process: 5852 ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/%i.conf --writepid /run/openvpn/%i.pid (code=exited, sta Main PID: 5856 (openvpn) Tasks: 1 (limit: 512) CGroup: /system.slice/system-openvpn.slice/[email protected] └─5856 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/server.conf --writepid /run/openvpn/server.pid

      Sie können auch prüfen, ob die OpenVPN tun0-Schnittstelle verfügbar ist, indem Sie Folgendes eingeben:

      Damit wird eine konfigurierte Schnittstelle ausgegeben:

      Output

      4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 100 link/none inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0 valid_lft forever preferred_lft forever

      Aktivieren Sie sie nach Starten des Dienstes, damit sie beim Hochfahren automatisch startet:

      • sudo systemctl enable openvpn@server

      Ihr OpenVPN-Dienst wird jetzt ausgeführt. Bevor Sie allerdings mit seiner Verwendung beginnen können, müssen Sie zunächst eine Konfigurationsdatei für den Client-Computer erstellen. Dieses Tutorial hat bereits die Erstellung von Zertifikaten/Schlüsselpaaren für Clients behandelt. Im nächsten Schritt zeigen wir, wie man eine Infrastruktur erstellt, die problemlos Client-Konfigurationsdateien generiert.

      Schritt 8 – Erstellen der Client-Konfigurationsinfrastruktur

      Das Erstellen von Konfigurationsdateien für OpenVPN-Clients kann etwas komplex sein, da jeder Client seine eigene Konfiguration haben muss, die sich mit den in der Konfigurationsdatei des Servers aufgeführten Einstellungen decken muss. Anstatt eine einzige Konfigurationsdatei zu erstellen, die nur auf einem Client verwendet werden kann, wird in diesem Schritt ein Prozess zur Erstellung einer Client-Konfigurationsinfrastruktur beschrieben, mit der Sie dynamisch Konfigurationsdateien generieren können. Sie erstellen zunächst eine „Basis“-Konfigurationsdatei und dann ein Skript, mit dem Sie je nach Bedarf eindeutige Client-Konfigurationsdateien, Zertifikate und Schlüssel generieren können.

      Beginnen Sie, indem Sie ein neues Verzeichnis anlegen, in dem Sie Client-Konfigurationsdateien in dem zuvor erstellten Verzeichnis client-configs speichern:

      • mkdir -p ~/client-configs/files

      Kopieren Sie dann ein Client-Konfigurationsbeispiel als Basiskonfiguration in das Verzeichnis client-configs:

      • cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf

      Öffnen Sie diese neue Datei mit Ihrem Texteditor:

      • nano ~/client-configs/base.conf

      Lokalisieren Sie die Anweisung remote. Damit wird der Client auf Ihre OpenVPN-Serveradresse verwiesen – die öffentliche IP-Adresse Ihres OpenVPN-Servers. Wenn Sie beschlossen haben, den Port zu ändern, auf dem der OpenVPN-Server lauscht, müssen Sie außerdem 1194 auf den von Ihnen ausgewählten Port ändern:

      ~/client-configs/base.conf

      . . .
      # The hostname/IP and port of the server.
      # You can have multiple remote entries
      # to load balance between the servers.
      remote your_server_ip 1194
      . . .
      

      Vergewissern Sie sich, dass das Protokoll mit dem Wert übereinstimmt, den Sie in der Serverkonfiguration verwenden:

      ~/client-configs/base.conf

      proto udp
      

      Als Nächstes kommentieren Sie die Anweisungen user und group aus, indem Sie das „;“ am Anfang jeder Zeile entfernen:

      ~/client-configs/base.conf

      # Downgrade privileges after initialization (non-Windows only)
      user nobody
      group nogroup
      

      Lokalisieren Sie die Anweisungen, die ca, cert und key festlegen. Kommentieren Sie diese Anweisungen aus, da Sie die Zertifikate und Schlüssel in der Datei selbst hinzufügen werden:

      ~/client-configs/base.conf

      # SSL/TLS parms.
      # See the server config file for more
      # description.  It's best to use
      # a separate .crt/.key file pair
      # for each client.  A single ca
      # file can be used for all clients.
      #ca ca.crt
      #cert client.crt
      #key client.key
      

      Kommentieren Sie auch die Anweisung tls-auth aus, da Sie der Client-Konfigurationsdatei ta.key direkt hinzufügen werden:

      ~/client-configs/base.conf

      # If a tls-auth key is used on the server
      # then every client must also have the key.
      #tls-auth ta.key 1
      

      Verwenden Sie dieselben Einstellungen für cipher und auth, die Sie in der Datei /etc/openvpn/server.conf festgelegt haben:

      ~/client-configs/base.conf

      cipher AES-256-CBC
      auth SHA256
      

      Fügen Sie dann die Anweisung key-direction an einer beliebigen Stelle in der Datei hinzu. Sie müssen diesen Wert auf „1“ festlegen, damit das VPN auf dem Client-Computer korrekt funktioniert:

      ~/client-configs/base.conf

      key-direction 1
      

      Fügen Sie schließlich einige auskommentierte Zeilen hinzu. Sie können diese Anweisungen zwar in jede Client-Konfigurationsdatei einbinden, müssen sie allerdings nur für Linux-Clients aktivieren, in deren Lieferumfang die Datei /etc/openvpn/update-resolv-conf enthalten ist. Dieses Skript verwendet das Utility resolvconf, um DNS-Informationen für Linux-Clients zu aktualisieren.

      ~/client-configs/base.conf

      # script-security 2
      # up /etc/openvpn/update-resolv-conf
      # down /etc/openvpn/update-resolv-conf
      

      Wenn Ihr Client Linux ausführt und eine Datei /etc/openvpn/update-resolv-conf enthält, kommentieren Sie diese Zeilen aus der Konfigurationsdatei des Clients aus, nachdem sie generiert wurde.

      Wenn Sie fertig sind, speichern und schließen Sie die Datei.

      Erstellen Sie dann ein einfaches Skript, das Ihre Basiskonfiguration mit dem entsprechenden Zertifikat, Schlüssel und den Verschlüsselungsdateien kompiliert. Platzieren Sie dann die generierte Konfiguration in das Verzeichnis ~/client-configs/files. Öffnen Sie eine neue Datei namens make_config.sh im Verzeichnis ~/client-configs:

      • nano ~/client-configs/make_config.sh

      Fügen Sie der Datei den folgenden Inhalt hinzu:

      ~/client-configs/make_config.sh

      #!/bin/bash
      
      # First argument: Client identifier
      
      KEY_DIR=~/client-configs/keys
      OUTPUT_DIR=~/client-configs/files
      BASE_CONFIG=~/client-configs/base.conf
      
      cat ${BASE_CONFIG} 
          <(echo -e '<ca>') 
          ${KEY_DIR}/ca.crt 
          <(echo -e '</ca>n<cert>') 
          ${KEY_DIR}/${1}.crt 
          <(echo -e '</cert>n<key>') 
          ${KEY_DIR}/${1}.key 
          <(echo -e '</key>n<tls-auth>') 
          ${KEY_DIR}/ta.key 
          <(echo -e '</tls-auth>') 
          > ${OUTPUT_DIR}/${1}.ovpn
      

      Wenn Sie fertig sind, speichern und schließen Sie die Datei.

      Bevor Sie fortfahren, markieren Sie diese Datei als ausführbar, indem Sie Folgendes eingeben:

      • chmod 700 ~/client-configs/make_config.sh

      Dieses Skript erstellt eine Kopie der von Ihnen angelegten Datei base.conf, sammelt alle für Ihren Client erstellten Zertifikate und Schlüsseldateien, extrahiert ihre Inhalte, fügt sie der Kopie der Basiskonfigurationsdatei an und exportiert alle Inhalte in eine neue Client-Konfigurationsdatei. Das bedeutet, dass alle erforderlichen Informationen an einem Ort gespeichert werden und die Konfiguration des Clients, die Zertifikate und Schlüsseldateien nicht getrennt verwaltet werden müssen. Der Vorteil besteht darin, dass Sie, falls Sie je einmal einen Client hinzufügen müssen, ganz einfach dieses Skript ausführen können, um rasch die Konfigurationsdatei zu erstellen. Dabei wird sichergestellt, dass alle wichtigen Informationen an einem einzigen, einfach zugänglichen Ort gespeichert werden.

      Bitte beachten Sie, dass bei jedem Hinzufügen eines neuen Clients neue Schlüssel und Zertifikate für ihn generiert werden müssen, bevor Sie dieses Skript ausführen und die entsprechende Konfigurationsdatei generieren können. Im nächsten Schritt können Sie die Verwendung dieses Skripts üben.

      Schritt 9 – Generieren von Client-Konfigurationen

      Durch Befolgung der Anweisungen im Leitfaden haben Sie in Schritt 4 ein Client-Zertifikat und einen Schlüssel namens client1.crt bzw. client1.key erstellt. Sie können eine Konfigurationsdatei für diese Anmeldedaten generieren, indem Sie in das Verzeichnis ~/client-configs wechseln und das am Ende des vorherigen Schrittes erstellte Skript ausführen:

      • cd ~/client-configs
      • sudo ./make_config.sh client1

      Dadurch wird eine Datei namens client1.ovpn in Ihrem Verzeichnis ~/client-configs/files erstellt:

      • ls ~/client-configs/files

      Output

      client1.ovpn

      Sie müssen diese Datei auf das Gerät übertragen, das Sie als Client verwenden wollen. Das könnte beispielsweise Ihr lokaler Computer oder ein mobiles Gerät sein.

      Die genauen Anwendungen, die zur Durchführung dieser Übertragung eingesetzt werden, hängen zwar vom Betriebssystem Ihres Geräts und Ihren persönlichen Präferenzen ab, aber die Verwendung von SFTP (SSH File Transfer Protocol) oder SCP (Secure Copy) im Backend ist ein zuverlässiges und sicheres Verfahren. Damit werden die VPN-Authentifizierungsdateien Ihres Clients über eine verschlüsselte Verbindung übertragen.

      Hier ist ein SFTP-Befehl, in dem beispielsweise client1.ovpn verwendet wird, was vom lokalen Computer (macOS oder Linux) ausgeführt werden kann. Damit wird die Datei .ovpn in Ihrem Stammverzeichnis abgelegt:

      • sftp sammy@your_server_ip:client-configs/files/client1.ovpn ~/

      Hier sind einige Tools und Tutorials für die sichere Übertragung von Dateien vom Server auf einen lokalen Computer:

      Schritt 10 – Installation der Client-Konfiguration

      Dieser Abschnitt behandelt die Installation eines Client-VPN-Profils auf Windows, macOS, Linux, iOS und Android. Keine dieser Client-Anleitungen bauen aufeinander auf. Daher können Sie je nach verwendetem Gerät direkt zur entsprechenden Anleitung navigieren.

      Die OpenVPN-Verbindung hat den gleichen Namen wie die von Ihnen benannte Datei .ovpn. In diesem Tutorial bedeutet dies, dass die Verbindung den Namen client1.ovpn erhält, was sich mit der von Ihnen erzeugten ersten Client-Datei deckt.

      Windows

      Installation

      Laden Sie die OpenVPN-Client-Anwendung für Windows von der OpenVPN-Downloadseite herunter. Wählen Sie das entsprechende Installationsprogramm für Ihre Windows-Version aus.

      Anmerkung


      OpenVPN benötigt für die Installation Administratorrechte.

      Nach der Installation von OpenVPN kopieren Sie die Datei .ovpn auf:

      C:Program FilesOpenVPNconfig
      

      Beim Starten von OpenVPN sieht es automatisch das Profil und stellt es zur Verfügung.

      Sie müssen OpenVPN bei jedem Einsatz, auch durch Administratorkonten, als Administrator ausführen. Wenn Sie nicht bei jeder Verwendung des VPN mit der rechten Maustaste klicken und *Als Administrator ausführen *auswählen möchten, müssen Sie von einem Administratorkonto aus eine Voreinstellung vornehmen. Das bedeutet auch, dass Standardbenutzer zur Verwendung von OpenVPN das Passwort des Administrators eingeben müssen. Andererseits können Standardbenutzer nur dann eine korrekte Verbindung mit dem Server herstellen, wenn die OpenVPN-Anwendung auf dem Client Administrationsrechte hat. Somit sind die höheren Berechtigungen notwendig.

      Um die OpenVPN-Anwendung so einzustellen, dass sie immer als Administrator ausgeführt wird, klicken Sie mit der rechten Maustaste auf das entsprechende Verknüpfungssymbol und gehen zu Eigenschaften. Klicken Sie im unteren Teil der Registerkarte Kompatibilität auf die Schaltfläche Einstellungen für alle Benutzer ändern. Aktivieren Sie im neuen Fenster Programm als Administrator ausführen.

      Verbindungsherstellung

      Jedes Mal, wenn Sie die OpenVPN-GUI starten, fragt Windows Sie, ob das Programm Änderungen an Ihrem Computer vornehmen darf. Klicken Sie auf Ja. Durch das Starten der OpenVPN-Client-Anwendung wird nur das Applet in die Taskleiste eingefügt, damit Sie je nach Bedarf die Verbindung mit dem VPN herstellen und trennen können; es stellt die VPN-Verbindung nicht tatsächlich her.

      Sobald OpenVPN gestartet wird, stellen Sie eine Verbindung her, indem Sie zum Taskleisten-Applet navigieren und mit der rechten Maustaste auf das OpenVPN-Applet-Symbol klicken. Dadurch wird das Kontextmenü geöffnet. Wählen Sie client1 oben im Menü (hierbei handelt es sich um Ihr client1.ovpn-Profil) und anschließend Verbinden.

      Ein Statusfenster wird geöffnet und zeigt die Protokollausgabe an, während die Verbindung hergestellt wird. Sobald der Client verbunden ist, erscheint eine Meldung.

      Trennen Sie die Verbindung mit dem VPN in der gleichen Weise: Gehen Sie zum Taskleisten-Applet, klicken Sie mit der rechten Maustaste auf das OpenVPN-Applet-Symbol, wählen Sie das Client-Profil und klicken Sie auf Verbindung trennen.

      macOS

      Installation

      Tunnelblick ist ein kostenloser Open-Source-OpenVPN-Client für macOS. Sie können das neueste Datenträgerabbild von der Tunnelblick-Downloadseite herunterladen. Doppelklicken Sie auf die heruntergeladene Datei .dmg und befolgen Sie die Aufforderungen zur Installation.

      Am Ende des Installationsprozesses fragt Tunnelblick Sie, ob Sie Konfigurationsdateien haben. Antworten Sie Ich habe Konfigurationsdateien und lassen Sie Tunnelblick den Vorgang beenden. Öffnen Sie ein Finder-Fenster und doppelklicken Sie auf client1.ovpn. Tunnelblick installiert das Client-Profil. Administratorrechte sind erforderlich.

      Verbindungsherstellung

      Starten Sie Tunnelblick, indem Sie auf das Tunnelblick-Symbol im Ordner Anwendungen doppelklicken. Nach dem Starten von Tunnelblick befindet sich oben rechts am Bildschirm in der Menüleiste ein Tunnelblick-Symbol zur Steuerung von Verbindungen. Klicken Sie auf das Symbol und dann auf den Menüpunkt Connect client1, um die VPN-Verbindung herzustellen.

      Linux

      Installation

      Wenn Sie Linux verwenden, gibt es eine Vielzahl von Tools, die Sie je nach Distribution verwenden können. Ihre Desktop-Umgebung oder Ihr Fenstermanager enthält möglicherweise auch Verbindungs-Utilitys.

      Die universellste Art der Verbindungsherstellung besteht jedoch darin, einfach die OpenVPN-Software zu verwenden.

      Unter Ubuntu oder Debian können Sie sie wie auf dem Server installieren, indem Sie Folgendes eingeben:

      • sudo apt update
      • sudo apt install openvpn

      Unter CentOS können Sie die EPEL-Repositorys aktivieren und dann installieren, indem Sie Folgendes eingeben:

      • sudo yum install epel-release
      • sudo yum install openvpn

      Konfiguration

      Überprüfen Sie, ob Ihre Distribution das Skript /etc/openvpn/update-resolv-conf enthält:

      Output

      update-resolv-conf

      Bearbeiten Sie als Nächstes die von Ihnen übertragene OpenVPN-Client-Konfigurationsdatei:

      Wenn Sie eine Datei update-resolv-conf finden konnten, kommentieren Sie die drei Zeilen aus, die Sie hinzugefügt haben, um die DNS-Einstellungen anzupassen:

      client1.ovpn

      script-security 2
      up /etc/openvpn/update-resolv-conf
      down /etc/openvpn/update-resolv-conf
      

      Wenn Sie CentOS verwenden, ändern Sie die Anweisung group von nogroup auf nobody, um sie an die verfügbaren Gruppen der Distribution anzugleichen:

      client1.ovpn

      group nobody
      

      Speichern und schließen Sie die Datei.

      Jetzt können Sie eine Verbindung zum VPN herstellen, indem Sie mit dem Befehl openvpn auf die Client-Konfigurationsdatei zeigen:

      • sudo openvpn --config client1.ovpn

      Dies sollte Sie mit Ihrem VPN verbinden.

      iOS

      Installation

      Suchen Sie im iTunes App Store nach OpenVPN Connect, der offiziellen iOS OpenVPN-Client-Anwendung, und installieren Sie sie. Um Ihre iOS-Client-Konfiguration auf das Gerät zu übertragen, schließen Sie es direkt an einen Computer an.

      Der Vorgang zum Abschließen der Übertragung mit iTunes wird hier beschrieben. Öffnen Sie iTunes auf dem Computer und klicken Sie auf iPhone > Apps. Scrollen Sie nach unten zum Abschnitt File Sharing und klicken Sie auf die OpenVPN-App. Das leere Fenster auf der rechten Seite, OpenVPN-Dokumente, dient zum Freigeben von Dateien. Ziehen Sie die Datei .ovpn in das OpenVPN-Dokumentfenster.

      iTunes zeigt das VPN-Profil, das auf dem iPhone zum Laden bereit ist

      Starten Sie jetzt die OpenVPN-App auf dem iPhone. Sie erhalten eine Benachrichtigung, dass ein neues Profil zum Import bereit ist. Tippen Sie auf das grüne Pluszeichen, um es zu importieren.

      Die OpenVPN iOS-App zeigt ein neues Profil an, das zum Import bereit ist

      Verbindungsherstellung

      OpenVPN kann jetzt mit dem neuen Profil verwendet werden. Starten Sie die Verbindung, indem Sie die Taste Connect in die Position On schieben. Trennen Sie die Verbindung, indem Sie dieselbe Taste in die Position Off schieben.

      Anmerkung


      Der VPN-Switch unter Einstellungen kann nicht zur Verbindung mit dem VPN verwendet werden. Wenn Sie es versuchen, erhalten Sie eine Mitteilung, die Verbindung nur mit der OpenVPN-App herzustellen.

      Die mit dem VPN verbundene OpenVPN iOS-App

      Android

      Installation

      Öffnen Sie den Google Play Store. Suchen und installieren Sie Android OpenVPN Connect, die offizielle Android OpenVPN-Client-Anwendung.

      Sie können das Profil .ovpn übertragen, indem Sie das Android-Gerät per USB an Ihren Computer anschließen und die Datei kopieren. Wenn Sie einen SD-Kartenleser haben, können Sie auch die SD-Karte des Geräts entfernen, das Profil auf sie kopieren und dann die Karte wieder in das Android-Gerät einlegen.

      Starten Sie die OpenVPN-App und tippen Sie auf das Menü, um das Profil zu importieren.

      Die Menüauswahl für den Import des Profils in der OpenVPN-App für Android

      Navigieren Sie dann zum Speicherort des Profils (im Screenshot wird /sdcard/Download/ verwendet), und wählen Sie die Datei aus. Die App merkt sich, dass das Profil importiert wurde.

      Die OpenVPN-App für Android, die das zu importierende VPN-Profil auswählt

      Verbindungsherstellung

      Um eine Verbindung herzustellen, tippen Sie einfach auf die Schaltfläche Verbinden. Sie werden gefragt, ob Sie der OpenVPN-Anwendung vertrauen. Wählen Sie OK, um die Verbindung herzustellen. Um die Verbindung zum VPN zu trennen, kehren Sie zur OpenVPN-App zurück und wählen Sie Trennen.

      Die OpenVPN-App für Android ist zur Verbindung mit dem VPN bereit

      Schritt 11 – Testen Ihrer VPN-Verbindung (optional)

      Anmerkung: Diese Methode zum Testen Ihrer VPN-Verbindung funktioniert nur, wenn Sie sich in Schritt 5 dafür entschieden haben, den gesamten Verkehr über das VPN zu leiten.

      Sobald alles installiert ist, wird durch eine einfache Überprüfung bestätigt, dass alles ordnungsgemäß funktioniert. Öffnen Sie einen Browser, ohne dass eine VPN-Verbindung aktiviert ist, und rufen Sie DNSLeakTest auf.

      Die Site gibt die von Ihrem Internetdienstanbieter zugewiesene IP-Adresse zurück und zeigt, wie Sie dem Rest der Welt erscheinen. Um Ihre DNS-Einstellungen über dieselbe Website zu überprüfen, klicken Sie auf Erweiterter Test. Dann erfahren Sie, welche DNS-Server Sie verwenden.

      Verbinden Sie nun den OpenVPN-Client mit dem VPN Ihres Droplets und aktualisieren Sie den Browser. Jetzt sollte eine völlig andere IP-Adresse (die Ihres VPN-Servers) angezeigt werden. So sehen Sie für die Welt aus. Erneut werden mit Erweiterter Test von DNSLeakTest Ihre DNS-Einstellungen überprüft, und es wird bestätigt, dass Sie jetzt die von Ihrem VPN per Push übertragene DSN-Resolver verwenden.

      Schritt 12 – Sperren von Client-Zertifikaten

      Gelegentlich müssen Sie möglicherweise ein Client-Zertifikat sperren, um den weiteren Zugriff auf den OpenVPN-Server zu verhindern.

      Navigieren Sie dazu zum EasyRSA-Verzeichnis auf Ihrem CA-Computer:

      Führen Sie als Nächstes das Skript easyrsa mit der Option revoke aus, gefolgt vom Namen des zu sperrenden Clients:

      Sie werden dazu aufgefordert, das Sperren durch Eingabe von yes zu bestätigen:

      Output

      Please confirm you wish to revoke the certificate with the following subject: subject= commonName = client2 Type the word 'yes' to continue, or any other input to abort. Continue with revocation: yes

      Nach Bestätigung der Aktion sperrt die Zertifizierungsstelle das Client-Zertifikat vollständig. Ihr OpenVPN-Server kann derzeit jedoch nicht prüfen, ob Zertifikate von Clients gesperrt wurden und ob ein Client weiterhin Zugriff auf das VPN hat. Um dies zu korrigieren, erstellen Sie eine Zertifikatsperrliste (Certificate Revocation List, CRL) auf Ihrem CA-Computer:

      Dadurch wird eine Datei namens crl.pem generiert. Übertragen Sie diese Datei sicher auf Ihren OpenVPN-Server:

      • scp ~/EasyRSA-3.0.4/pki/crl.pem sammy@your_server_ip:/tmp

      Kopieren Sie diese Datei auf Ihrem OpenVPN-Server in Ihr Verzeichnis /etc/openvpn/:

      • sudo cp /tmp/crl.pem /etc/openvpn

      Öffnen Sie als Nächstes die OpenVPN-Serverkonfigurationsdatei:

      • sudo nano /etc/openvpn/server.conf

      Fügen Sie am Ende der Datei die Option crl-verify hinzu, mit der der OpenVPN-Server angewiesen wird, die Zertifikatsperrliste zu überprüfen, die wir bei jedem Verbindungsversuch erstellt haben:

      /etc/openvpn/server.conf

      crl-verify crl.pem
      

      Speichern und schließen Sie die Datei.

      Starten Sie zum Abschluss OpenVPN neu, um die Zertifikatsperre zu implementieren:

      • sudo systemctl restart openvpn@server

      Der Client sollte mit den alten Anmeldedaten keine Verbindung mehr zum Server herstellen können.

      Um weitere Clients zu sperren, gehen Sie wie folgt vor:

      1. Sperren Sie das Zertifikat mit dem Befehl ./easyrsa revoke client_name
      2. Generieren Sie eine neue CRL
      3. Übertragen Sie die neue Datei crl.pem auf Ihren OpenVPN-Server und kopieren Sie sie in das Verzeichnis /etc/openvpn, um die alte Liste zu überschreiben.
      4. Starten Sie den OpenVPN-Dienst neu.

      Mit diesem Vorgang können Sie alle zuvor für Ihren Server ausgestellten Zertifikate sperren.

      Zusammenfassung

      Sie sind jetzt sicher im Internet unterwegs und schützen Ihre Identität, Ihren Standort und Ihren Datenverkehr vor Schnüfflern und Zensoren.

      Um weitere Clients zu konfigurieren, müssen Sie nur für jedes zusätzliche Gerät die Schritte 4 und 9–11 ausführen. Um den Zugriff auf Clients zu sperren, führen Sie einfach Schritt 12 aus.



      Source link