WireGuardインストール(Amazon Linux2)

Getting Started(ローカルVPN)

気を取り直して、

  • サーバ設定
  • クライアント設定

の順でやっていきます。

サーバ設定

※作業はrootでやってよいでしょう。

事前にちゃんとインストールができていれば、やることは4つ!

  • 秘密鍵作成
  • 公開鍵作成
  • 設定ファイル作成
  • デーモン設定

秘密鍵作成(/etc/wireguard/server.prv)

$ wg genkey > server.prv

公開鍵作成(/etc/wireguard/server.pub)

$ wg pubkey < server.prv > server.pub

設定ファイル作成(/etc/wireguard/wg0.conf)

[Interface]
PrivateKey = XXXXXXXXXXXXXXX
Address = 192.168.100.1/32
ListenPort = 51821

Interface:PrivateKeyは、上記[秘密鍵作成]で作成した秘密鍵の文字列。

Interface:Addressは、ネットワークアドレスも決まってしまうので、適切に決める必要あり。今回は、トライアルなのでこんな感じ。

Interface:ListenPortは、あえてデフォルトを使わない。

デーモン設定

登録
systemctl enable wg-quick@wg0
起動
systemctl start wg-quick@wg0
停止
systemctl stop wg-quick@wg0
確認
systemctl status wg-quick@wg0

デーモンに登録する文字列=wg-quick@[作成した設定ファイル名の拡張子まで(wg0)]

クライアント設定

サーバ側同様、設定ファイルを作るのが重要!

  • 秘密鍵作成
  • 公開鍵作成
  • 設定ファイル作成

秘密鍵作成([ご自由に]/client.prv)

wg genkey > client.prv

公開鍵作成([ご自由に]/client.pub)

wg pubkey < client.prv > client.pub

※作成したパブリックキーをサーバ設定に反映させてあげる必要あり。

[Interface]
PrivateKey = XXXXXXXXXXXXXXX
Address = 192.168.100.1/32
ListenPort = 51821

[Peer]
PublicKey = XXXXXXXXXXXXXXX
AllowedIPs = 192.168.100.2/32

Peer:PublicKeyは、ここで作成した公開鍵の文字列。

Peer:AllowedIPsは、同じネットワークアドレス内のIPを指定。ここをAllにすればどこからのアクセスでも大丈夫なのか!?

設定ファイル作成([ご自由に]/dev-wg-client.conf)

[Interface]
PrivateKey = XXXXXXXXXXXXXXX
Address = 192.168.100.2/32

[Peer]
PublicKey = XXXXXXXXXXXXXXX
AllowedIPs = 192.168.100.0/24
Endpoint = xxx.xxx.xxx.xxx:51821

Interface:PrivateKeyは、上記[秘密鍵作成]で作成した秘密鍵の文字列。

Interface:Addressは、サーバ側で設定したAllowedIPsの値を指定。

Peer:PublicKeyは、サーバ設定の[公開鍵作成]で作成した公開鍵の文字列。

Peer:AllowedIPsは、一旦ローカル接続としたいので、サーバ設定のInterface:Addressで設定したIPのネットワークアドレスを指定。

Peer:Endpointは、グローバルIP+サーバ設定で指定したListenPort。

※Macの場合

‎WireGuard

‎WireGuard is a fast, modern, and secure VPN tunnel. This app allows users to manage and use WireGuard tunnels. The app can import new tunnels from archives and files, or you can create one from scratch. It is currently undergoing rapid development, and we are listening to our users in implementing n…

をインストールして、設定ファイルをImportしてあげるだけ。

これでサーバに向けたPingが通れば無事VPN接続完了!

$ ping 192.168.100.1
PING 192.168.100.1 (192.168.100.1): 56 data bytes
64 bytes from 192.168.100.1: icmp_seq=0 ttl=255 time=32.191 ms
64 bytes from 192.168.100.1: icmp_seq=1 ttl=255 time=16.265 ms