WireGuard シンプルでセキュアなVPNを Ubuntu にインストールしてスマホから接続

4 min
アイキャッチ

WireGuard は新しいVPN方式です。今後プロトコルの方式が変わる可能性があります。

Wireguard は最先端の暗号技術を使用する非常にシンプルで高速な VPN です。IPSec よりも高速・単純・軽量・有用であることを目指しており、面倒なことを避けています。OpenVPN と比べると高いパフォーマンスを発揮します。WireGuard は組み込みインターフェイスからスーパーコンピュータまで様々な環境に対応する汎用の VPN として設計されています。最初は Linux カーネル用にリリースされており、幅広いデプロイが可能なクロスプラットフォームになる予定です。

Archlinux

Ubuntu にWireGuardをインストール

Vultrロゴ

Vultr で動作確認

Ubuntu 16.04 / 18.04

SSHでログイン

ネットワークインターフェースを調べる

SSH

$ ifconfig

eth0 , ens3などをチェック

ifconfig

WireGuard インストール

SSH

$ sudo add-apt-repository ppa:wireguard/wireguard
Enter押す
$ sudo apt update
$ sudo apt install wireguard-dkms wireguard-tools

それぞれ認証鍵を作成

  • サーバー公開鍵 (server.pub)
  • サーバー秘密鍵 (server.key)
  • クライアント公開鍵 (sp.pub)
  • クライアント秘密鍵 (sp.key)

SSH

$ cd /etc/wireguard

$ wg genkey | tee server.key | wg pubkey > server.pub
$ wg genkey | tee sp.key | wg pubkey > sp.pub

SSH

# サーバー秘密鍵を確認
$ cat server.key
MCFbEYi9GE7REmpWMuDssURIiITkb1fK6VsY/ZPMl0A=

# クライアント公開鍵を確認
$ cat sp.pub
7lcxJZUfdx0xTKr1Mnv5sBVoWlGl313Ob0MJWgju4lc=

サーバー設定

サーバー設定ファイルを編集

ens3はifconifgで調べたネットワーク・インターフェースに合わせる

SSH

$ sudo nano /etc/wireguard/wg0.conf

<サーバー秘密鍵><クライアント公開鍵>はそれぞれ確認した文字列をコピペします。

Listenポートは任意のポートを設定してください。

 

[Interface]
PrivateKey = <サーバー秘密鍵>
ListenPort = 19999
SaveConfig = false
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE

[Peer]
PublicKey = <クライアント公開鍵>
AllowedIPs = 10.0.0.2/32

SSH

# WireGuardを起動

$ sudo wg-quick up wg0

$ sudo wg

WireGuardのステータスが表示されます。

確認

クライアント用設定ファイルの作成

SSH

# クライアント秘密鍵を確認
$ cat sp.key
9B4C0Ad5B/loI1eKrMJB1wdCdLL5MXP7H3Liw7nV1lZ=

# サーバー公開鍵を確認
$ cat server.pub
/oeZ7nkq6SA2yDrNENGRnJlg4nfE0FdNzCqqd1XN4EN=

SSH

$ sudo nano /etc/wireguard/sp.conf

同様に<クライアント秘密鍵>と<サーバー公開鍵>をコピペします。

SSH

[Interface]
PrivateKey = <クライアント秘密鍵>
Address = 10.0.0.2
DNS = 8.8.8.8

[Peer]
PublicKey = <サーバー側公開鍵>
AllowedIPs = 0.0.0.0/0
Endpoint = <サーバーIP>:19999

クライアントの設定

AndroidやiPhoneなどのクライアントアプリからQRコードを読み込んで設定できるようにします。

SSH

$ sudo apt install -y qrencode

SSH

$ cd /etc/wireguard
$ qrencode -t ansiutf8 < sp.conf
もしくは
$ qrencode -o qr.png -t ansiutf8 < sp.conf && cat qr.png

SSH

# WireGuard 再起動

$ sudo wg-quick down wg0
$ sudo wg-quick up wg0

SSH

# WireGuard自動起動

$ sudo systemctl enable [email protected]

SSH

# パケットフォワーディングを有効にする

$ sudo nano /etc/sysctl.conf

#アンコメント
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1

# 再度読み込み
$ sudo sysctl -p

ファイアウォールの設定

SSH

$ sudo ufw allow 19999/udp
$ sudo ufw enable

ルーターのポート開放をお忘れなく! UDPなので注意。

WireGuard へクライアントから接続

iPhone、Android

WireGuard

WireGuard

WireGuard Development Team無料posted withアプリーチ

アプリを開いて、「Create from QR code」からさきほどのQRコードをカメラで読み込みます。

QR読み込み

Windows、MacOS

Windows WireGuard

Mac WireGuard

今回設定した「sp.conf」の内容をそのままコピペします。

WireGuard PC

WireGuard、OpenVPN 、ShadowSocksR速度比較

日本国内でVultr 東京サーバーへ接続時

WireGuard

WG速度

OpenVPN

OpenVPN速度

ShadowSocksR

SSR速度

ZIMA

気になるガジェットやサービスをレビュー!日常生活のアップデートを目標に役に立つ情報を掲載していきます。

仕事の依頼などはお問い合わせからどうぞ。

FOLLOW

カテゴリー:
関連記事

コメントを残す

メールアドレスが公開されることはありません。