So installieren und konfigurieren Sie Algo VPN Server unter Ubuntu 20.04

Algo VPN ist ein Open-Source-Software-Bündel bzw. ein Satz von Ansible-Skripten, mit denen ein WireGuard- und IPsec-VPN eingerichtet werden kann. Es wurde von Trail of Bits entwickelt, um den VPN-Installationsprozess einfach und dennoch sicher zu gestalten. Algo VPN ermöglicht es Ihnen, sich von jedem Gerät aus zu verbinden, einschließlich Windows, Linux, OSX, Android und iOS. Algo VPN unterstützt viele Cloud-Angebote, darunter Amazon, Google Cloud, Vultr, DigitalOcean, Scalway, Linode und OpenStack.

In diesem Tutorial zeigen wir Ihnen, wie Sie einen VPN-Server mit Algo VPN auf einem Ubuntu 20.04-Server einrichten.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 20.04 läuft.
  • Der Server ist mit einem Root-Passwort konfiguriert.

Erste Schritte

Aktualisieren Sie zunächst Ihre Systempakete mit dem folgenden Befehl auf die neueste Version:

apt-get update -y

Sobald alle Pakete aktualisiert sind, installieren Sie weitere Abhängigkeiten mit dem folgenden Befehl:

apt-get install git apparmor build-essential python3-dev python3-pip python3-setuptools python3-virtualenv libffi-dev libssl-dev -y

Als nächstes müssen Sie den Namensauflösungsdienst deaktivieren, damit dnsmasq funktioniert. Sie können ihn mit dem folgenden Befehl deaktivieren:

systemctl disable systemd-resolved
systemctl stop systemd-resolved
unlink /etc/resolv.conf
echo "nameserver 8.8.8.8" > /etc/resolv.conf

Sobald Sie damit fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Algo VPN installieren und konfigurieren

Laden Sie zunächst die neueste Version von Algo VPN aus dem Git-Repository mit folgendem Befehl herunter:

git clone https://github.com/trailofbits/algo.git

Als nächstes wechseln Sie in das heruntergeladene Verzeichnis und erstellen eine virtuelle Python-Umgebung mit dem folgenden Befehl:

cd algo
python3 -m virtualenv --python=/usr/bin/python3 .env

Als nächstes aktivieren Sie die virtuelle Umgebung mit dem folgenden Befehl:

source .env/bin/activate

Installieren Sie anschließend die erforderlichen Abhängigkeiten mit dem folgenden Befehl:

python3 -m pip install -U pip virtualenv
python3 -m pip install -r requirements.txt

Sobald alle Abhängigkeiten installiert sind, installieren Sie das Algo VPN mit folgendem Befehl:

./algo

Sie werden aufgefordert, den Cloud-Anbieter auszuwählen, wie unten gezeigt:

TASK [Set required ansible version as a fact] *************************************************************************************************
ok: [localhost] => (item=ansible==2.9.7)

TASK [Verify Python meets Algo VPN requirements] **********************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [Verify Ansible meets Algo VPN requirements] *********************************************************************************************
ok: [localhost] => {
    "changed": false,
    "msg": "All assertions passed"
}
[WARNING]: Found variable using reserved name: no_log

PLAY [Ask user for the input] *****************************************************************************************************************

TASK [Gathering Facts] ************************************************************************************************************************
ok: [localhost]
[Cloud prompt]
What provider would you like to use?
    1. DigitalOcean
    2. Amazon Lightsail
    3. Amazon EC2
    4. Microsoft Azure
    5. Google Compute Engine
    6. Hetzner Cloud
    7. Vultr
    8. Scaleway
    9. OpenStack (DreamCompute optimised)
    10. CloudStack (Exoscale optimised)
    11. Linode
    12. Install to existing Ubuntu 18.04 or 20.04 server (for more advanced users)
  
Enter the number of your desired provider
:
12

Type 12 and hit Enter to setup Algo VPN on Ubuntu 20.04 server. You will be asked for several questions as shown below:

TASK [Set facts based on the input] ***************************************************************************************************************************************************************************************
ok: [localhost]
[Cellular On Demand prompt]
Do you want macOS/iOS IPsec clients to enable "Connect On Demand" when connected to cellular networks?
[y/N]
:y

TASK [Cellular On Demand prompt] ******************************************************************************************************************************************************************************************
ok: [localhost]
[Wi-Fi On Demand prompt]
Do you want macOS/iOS IPsec clients to enable "Connect On Demand" when connected to Wi-Fi?
[y/N]
:y

TASK [Wi-Fi On Demand prompt] *********************************************************************************************************************************************************************************************
ok: [localhost]
[Trusted Wi-Fi networks prompt]
List the names of any trusted Wi-Fi networks where macOS/iOS IPsec clients should not use "Connect On Demand"
(e.g., your home network. Comma-separated value, e.g., HomeNet,OfficeWifi,AlgoWiFi)
:HomeNet

TASK [Trusted Wi-Fi networks prompt] **************************************************************************************************************************************************************************************
ok: [localhost]
[Compatible ciphers prompt]
Do you want the VPN to support Windows 10 or Linux Desktop clients? (enables compatible ciphers and key exchange, less secure)
[y/N]
:y

TASK [Compatible ciphers prompt] ******************************************************************************************************************************************************************************************
ok: [localhost]
[Retain the CA key prompt]
Do you want to retain the CA key? (required to add users in the future, but less secure)
[y/N]
:y

TASK [Retain the CA key prompt] *******************************************************************************************************************************************************************************************
ok: [localhost]
[DNS adblocking prompt]
Do you want to install an ad blocking DNS resolver on this VPN server?
[y/N]
:y

TASK [DNS adblocking prompt] **********************************************************************************************************************************************************************************************
ok: [localhost]
[SSH tunneling prompt]
Do you want each user to have their own account for SSH tunneling?
[y/N]
:N
Enter the IP address of your server: (or use localhost for local installation):
[localhost]
:
localhost
TASK [local : pause] **************************************************************************************************************************
ok: [localhost]

TASK [local : Set the facts] ******************************************************************************************************************
ok: [localhost]
[local : pause]
What user should we use to login on the server? (note: passwordless login required, or ignore if you're deploying to localhost)
[root]
:
root

Enter the public IP address or domain name of your server: (IMPORTANT! This is used to verify the certificate)
[45.58.38.120]

Wenn die Installation erfolgreich abgeschlossen wurde, sollten Sie die folgende Ausgabe erhalten:

TASK [debug] **********************************************************************************************************************************
ok: [localhost] => {
    "msg": [
        [
            "\"#                          Congratulations!                            #\"",
            "\"#                     Your Algo server is running.                     #\"",
            "\"#    Config files and certificates are in the ./configs/ directory.    #\"",
            "\"#              Go to https://whoer.net/ after connecting               #\"",
            "\"#        and ensure that all your traffic passes through the VPN.      #\"",
            "\"#                     Local DNS resolver 172.18.7.104                   #\"",
            ""
        ],
        "    \"#        The p12 and SSH keys password for new users is 7OEfSUZt0       #\"\n",
        "    \"#        The CA key password is g5AvcHzZygjV@4AN       #\"\n",
        "    "
    ]
}

PLAY RECAP ************************************************************************************************************************************
localhost                  : ok=125  changed=39   unreachable=0    failed=0    skipped=53   rescued=0    ignored=0   

Nach der Installation sollten Sie die Konfigurationsdatei für jedes VPN-Profil mit dem folgenden Befehl sehen:

ls configs/your-server-ip/wireguard/

Sie sollten alle Profile in der folgenden Ausgabe sehen:

apple  desktop.conf  desktop.png  laptop.conf  laptop.png  phone.conf  phone.png  user1.conf  user1.png

Sie können jede der oben genannten Dateien auf Ihrem Client-Gerät verwenden, um sich mit dem Algo VPN-Server zu verbinden.

Fazit

Herzlichen Glückwunsch! Sie haben Algo VPN erfolgreich auf dem Ubuntu 20.04 Server installiert und konfiguriert. Sie können nun Ihr Windows-, Linux- oder Android-Gerät konfigurieren, um sich mit dem Algo VPN-Server zu verbinden.

Das könnte dich auch interessieren …