WireGuardインストール(Amazon Linux2)

Getting Started(全てVPN通信)

もはやGetting Startedではないけど。。。

結論から言うと

  • IP Forward対応
  • サーバ設定変更
  • クライアント設定変更

IP Foward対応

/etc/sysctl.confに以下を記載。

net.ipv4.ip_forward=1

sysctl反映。

$ sysctl -p

サーバ設定変更

[Interface]
PrivateKey = XXXXXXXXXXXXXXX
Address = 192.168.100.1/32
ListenPort = 51821
PostUp = iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; #追記
PostDown = iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; #追記

[Peer]
PublicKey = XXXXXXXXXXXXXXX
AllowedIPs = 192.168.100.2/32

Interface:PostUpは、WireGuard起動時にグローバルIPを持っているインタフェースであるeth0にフォワードするように設定。

Interface:PostDownは、WireGuard停止時にPostUpでの設定を停止するように設定。

クライアント設定

[Interface]
PrivateKey = XXXXXXXXXXXXXXX
Address = 192.168.100.2/32
DNS = 8.8.8.8 #追記

[Peer]
PublicKey = XXXXXXXXXXXXXXX
AllowedIPs = 0.0.0.0/0 #変更
Endpoint = xxx.xxx.xxx.xxx:51821

DNSは、とりあえずGoogleの(8.8.8.8)を設定。ここを設定しないとインターネットに接続できなかった。サーバ側でデフォルトで設定できないものなのか・・・

AllowedIPsは、0.0.0.0/0に変更し、全てのパケットをサーバに送信するように設定。

上記設定でVPNをつないでみて、無事グローバルIPが変わっていれば成功!!

おまけ

今回はAWSでの対応だったので、Security GroupでUDPポート空けたけど、サクラVPSの場合は、ufwコマンドで空けないとダメなのかな・・・

$ ufw allow 51821/udp

参考記事

https://gihyo.jp/admin/serial/01/ubuntu-recipe/0614

CentOS 8 set up WireGuard VPN server – nixCraft

How do I install and set up WireGuard VPN server on a CentOS 8 Linux? How can I configure CentOS 8 as the WireGuard VPN server? WireGuard is a free, open-source modern and fast VPN with state-of-the-art cryptography. It is quicker and simpler as compared to IPSec and OpenVPN.

Ubuntu 20.04 set up WireGuard VPN server – nixCraft

How can I install and set up WireGuard VPN server on an Ubuntu 20.4 LTS Linux server? How do I configure Ubuntu 20.04 as the WireGuard VPN server? WireGuard is an open-source, free, modern, and fast VPN with state-of-the-art cryptography. It is quicker and simpler as compared to IPSec and OpenVPN.

Wireguard VPN – Forward all traffic to server

Instantly share code, notes, and snippets. Wireguard VPN – Forward all traffic to server You can’t perform that action at this time. You signed in with another tab or window. You signed out in another tab or window. Reload to refresh your session. Reload to refresh your session.

WireGuardでVPNサーバーを構築してスマホやPCから接続する手順

WireGuardはOpenVPNよりもシンプルで高速、より安全なVPNとして開発が進められており、OpenVPNに代わるVPNとして期待されています。端末間だけでなく拠点間のVPN接続にも対応しています。この記事ではWireGuardを使ってVPNサーバーを構築し、そのVPNサーバーにUbuntuやiPhoneから実際に接続してみるまでの手順をまとめます。 だいぶ前ですがOpenVPNサーバーを構築してUbuntuから接続しようとしたこともありましたが、設定が面倒だったり接続速度が遅かったりで結局使用しませんでした。ただ、WireGuardはまず設定がOpenVPNに比べて間違いなく簡単で、速度も十分です。さらにWireGuard公式のクライアントアプリがWindows、macOSに加えてiOS、Anrdoid用も配布されているので簡単に接続できます。 構築するシステムイメージ図が以下です。 WireGuardを使用してクライアント(PC、スマホ)とサーバー間をVPN接続します。クライアントは全てのトラフィックをサーバー経由にしてインターネットに接続することができます。カフェや空港などの公衆WiFiを使用する場合にも役立ちます。 以降ではWireGuardのクライアントを単にクライアント、WireGuardのサーバーを単にサーバーと呼びます。 WireGuardのざっくりした仕組みとしては、サーバー側とクライアント側それぞれにWireGuardによるVPN接続用にネットワークインターフェースを追加し、それらを使ってVPN接続します。 そしてこれらは設定ファイルを作成すれば後はWireGuardがよしなにやってくれます。 なお、WireGuardはサーバーで生成した公開鍵をクライアント側で使用し、クライアント側で使用した公開鍵をサーバー側で使用します。そのためサーバー側とクライアント側で並列して作業が必要になります。以降で説明します。 以下の環境でWireGuardによるVPN接続を構築しました。 WireGuardサーバーOS : Ubuntu 18.04 WireGuardクライアントOS : Ubuntu 18.04、iOS(Windows、macOS、Android用の公式クライアントアプリも配布されています。) WireGuardはまだ正式リリースに至っておらず、潜在的なバグを持っている可能性もあります。使用は自己責任でお願い致します。 ちなみに、WireGuardの公式ドキュメントでは、設定ファイルの作成をコマンドで順番に行っていく方法が説明されていますが、ここでは最初から設定ファイルを作成してそこに設定内容を記述していく方法を説明しています。やっていること自体は同じになります。 ここではWireGuardのサーバーとしてUbuntu 18.04を使用します。 以下でWireGuardをインストールします。 sudo add-apt-repository ppa:wireguard/wireguard sudo apt-get update sudo apt-get install wireguard 以上でWireGuardのインストールが完了です。 WireGuardが使用する秘密鍵と公開鍵を以下のコマンドで同時に生成します。 $ wg genkey | tee privatekey | wg pubkey > publickey 上記を実行すると、実行時のディレクトリに privatekeyと publickeyの2つが生成されます。 秘密鍵 privatekey