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

Erstellen Sie Ihren eigenen kombinierten OpenVPN/WiKID-Server für ein VPN mit integrierter Zwei-Faktor-Authentifizierung mit Packer.

In früheren Tutorials haben wir OpenVPN mit Einmalpasswörtern versehen und mit Packer einen WiKID-Server erstellt. In diesem Tutorial erstellen wir einen kombinierten OpenVPN/WiKID-Server mit Packer. Packer ermöglicht es uns, VMware-, VirtualBox-, EC2-, GCE-, Docker- usw. Images mithilfe von Code zu erstellen. Beachten Sie, dass die Kombination Ihres Zwei-Faktor-Authentifizierungsservers und VPN-Servers auf einer Box möglicherweise die beste Lösung für Sie ist oder nicht. Wir mögen normalerweise Aufgabentrennung für Sicherheit und Flexibilität. Wenn Sie jedoch schnell etwas brauchen – die PCI-Prüfer kommen am Montag – oder Sie sich in einem repressiven Zustand befinden und nur für kurze Zeit eine sichere ausgehende Verbindung benötigen. Und Sie haben immer noch eine gewisse Flexibilität. Sie können dem WiKID-Server weitere Dienste hinzufügen. Sie können den OpenVPN-Server deaktivieren und stattdessen zu einem anderen VPN wechseln.

Erstellen Sie den kombinierten Server

Laden Sie zunächst Packer herunter und installieren Sie es.

Sehen Sie sich unsere Packer-Skripte von GitHub an. Die Skripte bestehen aus einer Haupt-JSON-Datei, die Packer mitteilt, was es tun soll, einem http-Verzeichnis mit Anaconda-Build-Skripten, einem Dateiverzeichnis, das in das Image hochgeladen wird, und Provisionern, die ausgeführt werden, nachdem das Image erstellt wurde. Grundsätzlich beginnt Packer mit einer Quelle wie einem ISO oder AMI, baut den Server basierend auf Anaconda (zumindest für CentOS), lädt beliebige Dateien hoch und führt dann die Provisioner aus. Packer ist in erster Linie darauf ausgerichtet, idempotente Server zu erstellen. In unserem Fall verwenden wir es, um die Befehle auszuführen, wodurch wir einen Befehl anstelle von etwa 50 ausführen können (nur für die Bereitstellung).

Vor dem Erstellen müssen Sie einige Dateien bearbeiten. Bearbeiten Sie zuerst /files/vars . Dies ist die Standard-Vars-Datei zum Erstellen der OpenVPN-Zertifikate. Geben Sie einfach Ihre Werte für die Zertifikatsfelder ein.

# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="US"
export KEY_PROVINCE="GA"
export KEY_CITY="Atlanta"
export KEY_ORG="WiKID Systems Inc"
export KEY_EMAIL="[email protected]"
export KEY_OU="WiKID Systems, Inc"

Als Nächstes müssen Sie das gemeinsame Geheimnis in /files/server bearbeiten . Diese Datei teilt PAM mit, welcher RADIUS-Server verwendet werden soll. In diesem Fall spricht es direkt mit dem WiKID-Server. Das gemeinsame Geheimnis wird verwendet, um den Radiusverkehr zu codieren. Da WiKID auf demselben Server läuft, behalten Sie localhost als Server bei:

# server[:port] shared_secret      timeout (s)
127.0.0.1       secret             3
 

Sie benötigen dieses gemeinsame Geheimnis später.

Sehen Sie sich centos-6-x86-64.json an . Sie können es so ausführen, wie es ist, aber Sie möchten vielleicht ein paar Dinge bearbeiten. Sie sollten das source_ami bestätigen (das aufgelistete ami befindet sich im Osten der USA) oder es zu einem Ihrer bevorzugten CentOS-AMIs wechseln. Wenn Sie auf VMware oder VirtualBox aufbauen, sollten Sie die iso_url auf den Speicherort der CentOS-ISO auf Ihrer Festplatte ändern und die MD5Sum aktualisieren. Möglicherweise möchten Sie die Namen und Beschreibungen bearbeiten. Möglicherweise möchten Sie auch die EC2-Region ändern. Am wichtigsten ist, dass Sie das ssh_password ändern können, das das Root-Passwort ist.

Wenn Sie mit der JSON-Datei zufrieden sind, können Sie sie mit Packer überprüfen:

$packer_location/packer verify centos-6-x86-64.json

Wenn das funktioniert, bauen Sie es. Sie können die Zielplattform in der Befehlszeile angeben:

$packer_location/packer build --only=virtualbox-iso centos-6-x86-64.json

Wenn Sie für EC2 erstellen, geben Sie die erforderlichen Anmeldeinformationen in die Befehlszeile ein:

$packer_location/packer build -var 'aws_access_key=XXXXXXXXXXXXXXXXXXXX' -var 'aws_secret_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' --only=amazon-ebs centos66.json

Wenn Sie beobachten, wie die Befehle ausgeführt werden, sehen Sie, wie ein vollständiger OpenVPN-Server komplett mit frischen Zertifikaten erstellt wird!

Konfiguriere den WiKID-Zwei-Faktor-Authentifizierungsserver

Nach der Erstellung müssen Sie das AMI starten oder die virtuelle Maschine importieren. Starten Sie VirtBox und wählen Sie Datei, Appliance importieren. Richten Sie es auf das Verzeichnis output-virtualbox-iso, das vom build-Befehl erstellt wurde, und öffnen Sie die OVF-Datei. Nehmen Sie alle gewünschten Änderungen an der virtuellen Maschine vor (z. B. Speicher oder Netzwerk) und starten Sie den Server.

Melden Sie sich mit root/wikid oder wie auch immer Sie das Root-Passwort wie in der JSON-Datei festgelegt haben. Wir werden den WiKID-Server mit der Schnellstart-Konfigurationsoption konfigurieren. Kopieren Sie die Datei in das aktuelle Verzeichnis:

cp /opt/WiKID/conf/sample-quick-setup.properties wikid.conf

Bearbeiten Sie wikid.conf gemäß diesen Anweisungen. Verwenden Sie die externe IP-Adresse Ihres Servers oder Ihrer EC2-Instance mit Nullen als Domaincode. Aus 54.163.165.73 wird also 054163165073. Verwenden Sie für den RADIUS-Host den localhost und das gemeinsame Geheimnis, das Sie in /files/server erstellt haben oben:

information for setting up a RADIUS host
radiushostip=127.0.0.1
radiushostsecret=secret
; *NOTE*: YOU SHOULD REMOVE THIS SETTING AFTER CONFIGURATION FOR SECURITY
  

Wenn Sie sich auf einer VM befinden, können Sie das Netzwerk konfigurieren, indem Sie Folgendes ausführen:

wikidctl setup

Auf EC2 können Sie einfach den WiKID-Server konfigurieren:

wikidctl quick-setup configfile=wikid.conf

Sie werden sehen, dass Konfigurationsinformationen vorbeiscrollen. Starten Sie den WiKID-Server:

wikidctl start

Sie werden nach der Passphrase gefragt, die Sie in wikid.conf festgelegt haben. Navigieren Sie zur WIKIDAdmin-Oberfläche unter https://yourserver.com/WiKIDAdmin/ und Sie sollten sehen, dass Ihre Domain erstellt, Ihr Radius-Netzwerk-Client konfiguriert und alle erforderlichen Zertifikate ausgefüllt sind.

Bevor Sie den Server verlassen, sollten Sie Ihren Benutzernamen als Konto auf dem Server mit 'useradd $username' hinzufügen. Es muss kein Passwort hinzugefügt werden.

Registrieren Sie den WiKID-Software-Token

Laden Sie ein WiKID-Software-Token herunter oder installieren Sie eines für iOS oder market://search?q=pname:com.wikidsystems.android für Android aus den App Stores.

Starten Sie den Token und wählen Sie „Domain hinzufügen“. Geben Sie den Domänenkennungscode ein, den Sie in wikid.conf festgelegt haben, und Sie sollten zweimal aufgefordert werden, Ihre PIN festzulegen. Wenn Sie dies tun, erhalten Sie einen Registrierungscode zurück. Gehen Sie zur Web-Benutzeroberfläche von WiKIDAdmin und klicken Sie auf die Registerkarte „Benutzer“ und dann auf „Manually Validate a User“. Klicken Sie auf Ihren Registrierungscode und geben Sie Ihren Benutzernamen ein. Dieser Prozess ordnet das Token (und die ausgetauschten Schlüssel) dem Benutzer zu.

VPN-Client einrichten

Laden Sie die Datei „ca.crt“ auf den Client herunter:

scp -i ~/Downloads/wikid.pem [email protected]:/etc/openvpn/ca.crt .

Bearbeiten Sie die OpenVPN-Datei client.conf. Stellen Sie den Remote-Server als Ihren kombinierten WiKID/OpenVPN-Server ein:

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

Kommentieren Sie die Zeilen für das Zertifikat und den Schlüssel aus. Bleibt nur noch die CA. Da wir WiKID verwenden, um den Benutzer zu authentifizieren und zu identifizieren, werden sie nicht benötigt.

ca ca.crt
#cert client.crt
#key client.key
 

Sagen Sie dem Client am Ende der Datei, dass er nach einem Passwort fragen soll:

auth-user-pass

Starten Sie nun den OpenVPN-Client:

sudo openvpn client.conf

Sie werden nach einem Benutzernamen und einem Passwort gefragt. Fordern Sie einen Passcode von Ihrem WiKID-Token an und geben Sie ihn in das Passwortfeld ein. Ihnen sollten Zugriffsrechte gewährt werden.

Verwandte:

  • WiKID - Zwei-Faktor-Authentifizierungsserver
  • OpenVPN
  • Verpacker

OpenVPN
  1. Konfigurieren Sie Ihren OpenVPN-Server unter Linux

  2. Installieren Sie OpenVPN auf Ihrem Linux-PC

  3. So konfigurieren Sie sudo für die Zwei-Faktor-Authentifizierung mit pam-radius unter Ubuntu und CentOS

  4. OpenVPN - Sichern Sie Ihre Serververwaltung mit einer Multiplattform-VPN-Verbindung

  5. 7 Vorteile der Verwendung von Virtual Private Server für Ihr Unternehmen

Richten Sie Ihren eigenen WireGuard VPN-Server auf Debian 11 &Debian 10 ein

Erstellen von Zertifikaten und Schlüsseln für Ihren OpenVPN-Server

Einrichten eines OpenVPN-Servers mit Okta Single Sign-on Web Authentication und Viscosity

So erstellen Sie Ihren eigenen IPsec-VPN-Server unter Linux

So erstellen Sie Ihr eigenes VPN – Detaillierte Anweisungen

DIY NAS Freenas Server - Erstellen Sie Ihr eigenes NAS mit Freenas