概要
この記事では、Dockerを使用してWireguardVPNサーバーをインストールする手順を紹介します。 Wireguardは、OpenVPN以外のもう1つの優れたVPNオプションです。 Wireguardにはまだ公式のDockerイメージがないため、linuxserver.ioのWireguard Dockerイメージを使用します–この投稿で使用されている正確なイメージ:Docker Hub(およびGithubページ)
この手順はOpenVPNでもカバーされています。この投稿で確認できます。
要件:
- Dockerがインストールされて実行されています。
Dockerのインストールについては、この投稿を参照するか、公式ドキュメントを確認してください。
Ubuntu、Debian、Raspbianなどのディストリビューションを実行している場合は、公式のDockerクイックインストールスクリプトを使用できます:
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
次に、必要に応じて、Dockerグループにユーザーを追加します。これは、sudoを使用せずにdockerコマンドを実行する場合です。
sudo usermod -aG docker <username>
ファイアウォール構成
ファイアウォールを実行している場合(これを強くお勧めします)、Wireguardのポートを開く必要があります。そうしないと、Wireguardサーバーとの接続を確立できなくなります。
UFW
sudo ufw allow 51820
IPTABLES
sudo iptables -I INPUT -p tcp -m tcp --dport 51820 -j ACCEPT or sudo iptables -A INPUT -p tcp -m tcp --dport 51820 -j ACCEPT
Dockerイメージをインストールして実行します
以下に、環境変数が設定されたDockerコマンドを示します(これらは例であり、同様に説明されています):
docker run -d \ --name wireguard \ --cap-add=NET_ADMIN \ --cap-add=SYS_MODULE \ -e PUID=1000 -e PGID=1000 \ -e TZ=Europe/London \ -e SERVERURL=wireguard.yourdomain.com \ -e PEERS=laptop,tablet,phone \ -e PEERDNS=auto \ -p 51820:51820/udp \ -v wireguard_config:/config \ -v /lib/modules:/lib/modules \ --sysctl="net.ipv4.conf.all.src_valid_mark=1" \ --restart=unless-stopped \ linuxserver/wireguard
説明された環境変数:
名前ワイヤーガード –これはwireguardコンテナに設定した名前です
cap-add =NET_ADMIN&cap-add =SYS_MODULE –この変数は、ホストサーバーでコンテナーに昇格されたアクセス許可を提供し、ホストのカーネルを管理し、ホストのネットワークインターフェイスと対話できるようにします(VPNへの通信を確立する場合に必要です)。
e PUID =1000 -e PGID =1000 –ユーザーと権限グループ(sudoユーザーと同じグループ)を指定する変数
e TZ =Europe / London –サーバーのタイムゾーン(これに応じて設定)
e SERVERURL =vpn.yourdomain.com –サーバーのドメイン名(FQDN)。ドメインはオプションですが、少なくともサーバーのパブリックIPアドレスを設定する必要があります(これは、クライアントデバイスがサーバーを見つけて通信できるようにするために必要です)。自動で構成を設定することもできます。
e PEERS =laptop、tablet、phone –クライアントデバイスのVPNへのクライアント接続を構成する変数(基本的にはクライアントデバイスの数)
e PEERDNS =auto –ドメインリゾルバーを構成するための変数
p 51820:51820 / udp –コンテナで公開するポートと、VPNトラフィックに使用するホストサーバーでリッスンするポート。
vwireguard_config:/ config&v / lib / modules:/ lib / modules –ホストサーバーにマウントし、それらを使用してWireguard構成とファイルを保存するボリュームディレクトリ
sysctl =” net.ipv4.conf.all.src_valid_mark =1” –もう1つの重要な変数。コンテナがコンテナ外のネットワークと通信できるように、ネットワークレベルでカーネルパラメータを有効にすることです。つまり、コンテナはインターネットアクセスを取得できます。
restart =unless-stopped –コンテナが停止するたびに再起動する
linuxserver / wireguard –使用するDockerイメージ
作曲家バージョン
注 –これには、docker-composeがインストールされ、実行されている必要があります
version: "2.1" services: wireguard: image: linuxserver/wireguard container_name: wireguard cap_add: - NET_ADMIN - SYS_MODULE environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SERVERURL=vpn.domain.com # domain optional, public IP is required at least - SERVERPORT=51820 - PEERS=3 # number of peers - PEERDNS=auto #optional volumes: - /lib/config:/config - /lib/modules:/lib/modules ports: - 51820:51820/udp sysctls: - net.ipv4.conf.all.src_valid_mark=1 restart: unless-stopped
クライアントの接続
ピア構成の確認
Wireguardコンテナを起動するとすぐに、Wireguardはすべてのクライアント接続構成を作成します。次のコマンドで構成を確認できます:
docker logs wireguard
または
docker exec -it wireguard /app/show-peer peer-number
この出力は、QRコードも出力するため、接続を簡単かつ迅速に設定できます。これは、Wireguardアプリを介してQRコードをスキャンできるスマートデバイスに最も便利です。したがって、スマートデバイスの場合は、Wireguardアプリをダウンロードし、QRコードをスキャンするだけで、すぐに接続できるようになります。
Wireguardクライアントのインストールとピア構成の取得
Linuxデバイス(PCとラップトップ)では、クライアントのセットアップが少し異なります。クライアントのインストールと構成はすべてターミナルを介して行われます。まず、Wireguardのインストール:
sudo apt install wireguard
Wireguardクライアントは、他のディストリビューションやWindowsでも利用できます。他のクライアントのクライアントが必要な場合は、ドキュメントを確認してください。
次に、Wireguardインターフェースを作成します:
ip link add dev wg0 type wireguard
次のコマンドで存在するかどうかを再確認します:ip-a。これで問題が発生した場合、wireguard docsには他の方法もあり、トラブルシューティングについて説明しています。
次のようになります:
今のところそのままにして、サーバーに移動します。最初にサーバーから直接ピア構成を取得し、構成をコピーしてLinuxクライアントデバイスに貼り付ける必要があります。
ピア構成のデフォルトの場所は次の場所にあります:
/var/lib/docker/volumes/wireguard_config/_data/
(必要に応じて)コピーしてバックアップするか、ピア構成に直接アクセスできます。
sudo cp /var/lib/docker/volumes/wireguard_config/_data/peer*/*.conf ~
これにより、すべてのピア構成がホームディレクトリにコピーされ、ホームディレクトリにcat:
を使用してファイルが印刷されます。sudo cat peer_laptop.conf or sudo nano peer_laptop.conf
または、ピア構成に直接アクセスします:
sudo cat /var/lib/docker/volumes/wireguard_config/_data/peer_laptop/peer_laptop.conf
sudoコマンドでもpermissiondeniedエラーが発生した場合は、rootとしてのみ構成にアクセスできることを意味します。その場合は、rootとして– sudo suでログインし、sudoを使用せずに以前のコマンドのいずれかを再度実行します。
クライアントインターフェイスの構成と接続の確立
構成をコピーしたら、Linuxデバイスに戻り、ピア構成ファイルを作成します(例として、ホームディレクトリに構成を作成します):
sudo nano wireguard-vpn.conf
ピア設定を貼り付け、保存して終了します。
最後に、このコマンドを実行してwireguardインターフェースを自動構成し、アクティブ化すると、サーバーに自動的に接続されます。
sudo wg-quick up wireguard-vpn.conf
– ip aとvpnサーバーへのping、またはwhat’smyipserviceで再確認できます。
切断するには、同じコマンドをもう一度実行しますが、引数を下にします:
sudo wg-quick down wireguard-vpn.conf
概要
この投稿で取り上げたのは、Dockerを使用してWireguardVPNサーバーをインストールする方法の手順です。この方法はセットアップがかなり速く、クライアントを追加または削除したい場合は簡単に調整できます。ただし、OpenVPNを使用したソリューションをさらに好む場合は、このリンクでOpenVPNを使用した同じ手順があります
どうもありがとうございました…