Ubuntu20.04にAlgoVPNServerをインストールして構成する方法

Algo VPNは、WireGuardおよびIPsecVPNのセットアップに使用されるオープンソースソフトウェアバンドルまたはAnsibleスクリプトのセットです。 これは、VPNのインストールプロセスをシンプルかつ安全にするためにTrail ofBitsによって設計されました。 Algo VPNを使用すると、Windows、Linux、OSX、Android、iOSなどの任意のデバイスから接続できます。 Algo VPNは、Amazon、Googleクラウド、Vultr、DigitalOcean、Scalway、Linode、OpenStackなどの多くのクラウドサービスをサポートしています。

このチュートリアルでは、Ubuntu20.04サーバーでAlgoVPNを使用してVPNサーバーをセットアップする方法を示します。

前提条件

  • Ubuntu20.04を実行しているサーバー。
  • ルートパスワードがサーバーに設定されます。

入門

まず、次のコマンドを使用して、システムパッケージを最新バージョンに更新します。

apt-get update -y

すべてのパッケージが更新されたら、次のコマンドを使用して他の依存関係をインストールします。

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

次に、dnsmasqを機能させるには、名前解決サービスを無効にする必要があります。 次のコマンドで無効にできます。

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

終了したら、次のステップに進むことができます。

AlgoVPNのインストールと構成

まず、次のコマンドを使用して、Gitリポジトリから最新バージョンのAlgoVPNをダウンロードします。

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

次に、ディレクトリをダウンロードしたディレクトリに変更し、次のコマンドを使用してPython仮想環境を作成します。

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

次に、次のコマンドを使用して仮想環境をアクティブ化します。

source .env/bin/activate

次に、次のコマンドを使用して、必要な依存関係をインストールします。

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

すべての依存関係がインストールされたら、次のコマンドを実行してAlgoVPNをインストールします。

./algo

以下に示すように、クラウドプロバイダーを選択するように求められます。

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]

インストールが正常に完了すると、次の出力が表示されます。

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 [email protected]       #"n",
        "    "
    ]
}

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

インストール後、次のコマンドを使用して、各VPNプロファイルの構成ファイルが表示されます。

ls configs/your-server-ip/wireguard/

次の出力にすべてのプロファイルが表示されます。

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

クライアントデバイスで上記のファイルのいずれかを使用して、AlgoVPNサーバーに接続できます。

結論

おめでとう! これで、Ubuntu20.04サーバーにAlgoVPNが正常にインストールおよび構成されました。 これで、Algo VPNサーバーに接続するようにWindows、Linux、またはAndroidデバイスを構成できます。

 

Hope this helps!

Source link