GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04でWireGuardVPNを設定する方法

WireGuardは、シンプルで使いやすいように設計された、オープンソースでセキュリティに重点を置いた仮想プライベートネットワークです。 Linux、macOS、Windows、BSD、Androidなどのさまざまなオペレーティングシステムをサポートしています。これはシンプルで汎用のVPNであり、小さなデバイスからハイエンドサーバーに簡単に導入できます。これは、クライアントサーバーモデルではなく、ポイントツーポイントのVPNサーバーです。公開鍵交換メカニズムを使用してクライアントを認証します。

軽量で高速なVPNをお探しの場合は、WireGuardVPNが最適です。このチュートリアルでは、WireGuardVPNサーバーとクライアントをUbuntu20.04にインストールする方法を示します。

前提条件
  • Ubuntu20.04サーバーを実行している2台のサーバー。
  • ルートパスワードは両方のサーバーで構成されています。
はじめに

まず、システムパッケージを最新バージョンに更新することをお勧めします。次のコマンドで更新できます:

apt-get update -y

すべてのパッケージが更新されたら、システムにIptablesをインストールする必要があります。次のコマンドでインストールできます:

apt-get install iptables -y

インストールが完了したら、次の手順に進むことができます。

WireGuardVPNサーバーをインストールする

デフォルトでは、WireGuardパッケージはUbuntu20.04のデフォルトリポジトリで利用できます。次のコマンドを実行してインストールできます:

apt-get install wireguard -y

WireGuardパッケージがインストールされたら、次のステップに進むことができます。

WireGuardサーバーを構成する

WireGuardは、WireGuardネットワーク内の各デバイス間で公開鍵を交換することで機能します。そのため、サーバーに公開鍵と秘密鍵を作成する必要があります。

WireGuardは、キーを作成してインターフェイスを管理するためのwgおよびwg-quickコマンドラインユーティリティを提供します。

次のコマンドを使用して、公開鍵と秘密鍵の両方を作成できます。

wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

両方のキーが作成されたら、次のコマンドでそれらを確認できます。

ls /etc/wireguard

次の出力が表示されます。

privatekey  publickey

次のコマンドを使用して、秘密鍵の内容を表示できます。

cat /etc/wireguard/privatekey

次の出力が表示されます。

4M1l65NIaoR2+fQ6xVnIdwj6iVjsSPDkEMuzVnbFh3A=

次のコマンドを使用して、公開鍵の内容を表示できます。

cat /etc/wireguard/publickey

次の出力が表示されます。

00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=

次に、WireGuardのネットワークインターフェイスを作成する必要があります。次のコマンドで作成できます:

nano /etc/wireguard/wg0.conf

次の行を追加します:

[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = server-private-key
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

終了したら、ファイルを保存して閉じます。

場所

  • 住所: wg0インターフェースのプライベートIPアドレス。
  • ListenPort: WireGuardのリスニングポートを指定します。
  • PrivateKey: / etc / wireguard/privatekeyファイルに保存されている秘密鍵。
  • 投稿: トラフィックがサーバーを出て、VPNクライアントにインターネットへのアクセスを許可するコマンドを指定します。また、eth0をネットワークインターフェイス名に置き換えます。

次に、秘密鍵とwg0ファイルに適切な権限を設定します。

chmod 600 /etc/wireguard/{privatekey,wg0.conf}

次に、次のコマンドを実行してwg0インターフェイスを有効にします。

wg-quick up wg0

次の出力が得られるはずです:

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

以下に示すように、systemdを使用してWireGuardサービスを開始することもできます。

systemctl start [email protected]

次に、次のコマンドを使用して、システムの再起動時にWireGuardサービスを開始できるようにします。

systemctl enable [email protected]

次に、次のコマンドを使用してWireGuardサービスのステータスを確認します。

systemctl status [email protected]

次の出力が得られるはずです:

? [email protected] - WireGuard via wg-quick(8) for wg0
     Loaded: loaded (/lib/systemd/system/[email protected]; disabled; vendor preset: enabled)
     Active: active (exited) since Thu 2020-12-10 11:42:14 UTC; 7s ago
       Docs: man:wg-quick(8)
             man:wg(8)
             https://www.wireguard.com/
             https://www.wireguard.com/quickstart/
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
    Process: 2173 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS)
   Main PID: 2173 (code=exited, status=0/SUCCESS)

Dec 10 11:42:14 ubuntu2004 systemd[1]: Starting WireGuard via wg-quick(8) for wg0...
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip link add wg0 type wireguard
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] wg setconf wg0 /dev/fd/63
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip -4 address add 10.0.0.1/24 dev wg0
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip link set mtu 1420 up dev wg0
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Dec 10 11:42:14 ubuntu2004 systemd[1]: Finished WireGuard via wg-quick(8) for wg0.

次のコマンドを使用して、wg0インターフェイスのステータスを確認することもできます。

wg show wg0

次の出力が得られるはずです:

interface: wg0
  public key: 00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=
  private key: (hidden)
  listening port: 51820

次のコマンドを使用して、wg0インターフェイスのIPアドレスステータスを取得できます。

ip a show wg0

次の出力が得られるはずです:

13: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none 
    inet 10.0.0.1/24 scope global wg0
       valid_lft forever preferred_lft forever

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

IP転送を有効にする

次に、サーバーでIP転送を有効にして、VPNクライアントとインターネット間でパケットをルーティングする必要があります。ファイル/etc/sysctl.confを編集して有効にできます:

nano /etc/sysctl.conf

次の行を変更します:

net.ipv4.ip_forward=1

ファイルを保存して閉じてから、次のコマンドを実行して構成の変更を適用します。

sysctl -p

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

WireGuardクライアントのインストールと構成

まず、WireGuardパッケージをクライアントマシンにインストールする必要があります。次のコマンドでインストールできます:

apt-get install wireguard -y

WireGuardパッケージをインストールした後、次のコマンドを使用して秘密鍵と公開鍵を作成します。

wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

両方のキーを作成したら、新しい構成ファイルを作成する必要があります。

次のコマンドで作成できます:

nano /etc/wireguard/wg0.conf

次の行を追加します:

[Interface]
PrivateKey = client-private-key
Address = 10.0.0.2/24

[Peer]
PublicKey = server-public-key
Endpoint = server-ip-address:51820
AllowedIPs = 0.0.0.0/0

終了したら、ファイルを保存して閉じます。

場所

  • 住所: wg0インターフェースのプライベートIPアドレス。
  • PrivateKey: クライアントマシンで秘密鍵を指定します。
  • PublicKey: サーバーマシンの公開鍵を指定します。
  • エンドポイント: サーバーのIPアドレスを指定します。
  • 許可されたIP: 許可されるIPアドレスのリストを指定します。

次に、サーバーマシンにクライアントの公開鍵とIPアドレスを追加する必要があります。

サーバーマシンで、次のコマンドを実行して両方を追加します。

wg set wg0 peer client-public-key allowed-ips 10.0.0.2

次に、クライアントマシンでwg0インターフェイスを起動する必要があります。

クライアントマシンで、次のコマンドを実行してインターフェイスを表示します。

wg-quick up wg0

次の出力が得られるはずです:

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.2/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] wg set wg0 fwmark 51820

この時点で、クライアントマシンはWireGuardVPNサーバーに接続されています。次のコマンドで接続状態を確認できます:

wg

次の出力が得られるはずです:

interface: wg0
  public key: 3FXBDpAO4Vado1tDjLtVQt+JnOCa+W2piLeFYQ8KyB4=
  private key: (hidden)
  listening port: 38830
  fwmark: 0xca6c

peer: 00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=
  endpoint: 69.87.216.36:51820
  allowed ips: 0.0.0.0/0
  latest handshake: 41 seconds ago
  transfer: 5.27 KiB received, 12.97 KiB sent
結論

おめでとうございます!これで、Ubuntu20.04サーバーにWireGuardVPNサーバーとクライアントが正常にインストールおよび構成されました。これで、クライアントマシンからのトラフィックはサーバーマシンを経由してルーティングされるはずです。これで、匿名でインターネットを閲覧し、データを非公開にすることができます。


Ubuntu
  1. CentOS8でWireguardVPNを設定する方法

  2. UbuntuでWireGuardVPNを設定する方法(ステップバイステップガイド)

  3. Ubuntu22.04でWireGuardを設定する方法

  1. Ubuntu – Ubuntuで静的IPを設定する方法は?

  2. CentOS8でWireGuardVPNを設定する方法

  3. Ubuntu に Git をインストールしてセットアップするにはどうすればよいですか?

  1. Ubuntu 20.04/18.04にRedisをインストールする方法

  2. Wireguardを使用してUbuntu20.04でVPNを作成する方法

  3. Ubuntu18.04でOpenVPNサーバーをセットアップする方法