GNU/Linux >> Linux の 問題 >  >> Panels >> Docker

Dockerを使用してWireguardVPNサーバーをインストールする

概要

この記事では、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を使用した同じ手順があります

どうもありがとうございました…


Docker
  1. DockerコンテナにApacheを使用してModSecurityをインストールする

  2. Dockerを使用してOpenVPNサーバーをインストールしてホストする方法

  3. Dockerを使用してJenkinsをインストールする方法

  1. Nagios3.4でMySQLサーバーを監視する

  2. LinuxサーバーにDockerを使用してNextcloudをインストールする方法

  3. Nginx を使用して Ubuntu 20.04 に phpMyAdmin をインストールする

  1. MacOSにSQLServerをインストールする方法

  2. UbuntuでDockerを使用してONLYOFFICE8.9.0をインストールする方法

  3. Ubuntu16.04でのShinkenによるサーバー監視