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

アイキャッチ

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

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

Archlinux

Ubuntu にWireGuardをインストール

 

Vultrロゴ

 

Vultr で動作確認

Ubuntu 16.04 / 18.04

 

SSHでSubmit

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

$ ifconfig

eth0 , ens3などをチェック

ifconfig

WireGuard インストール

$ 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)

 

$ cd /etc/wireguard

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

 

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

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

 

サーバー設定

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

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

$ 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
# WireGuardを起動

$ sudo wg-quick up wg0

$ sudo wg

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

確認

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

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

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

$ sudo nano /etc/wireguard/sp.conf
同様に<クライアント秘密鍵>と<サーバー公開鍵>をコピペします。

[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コードを読み込んで設定できるようにします。

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

# WireGuard 再起動

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

# WireGuard自動起動

$ sudo systemctl enable [email protected]

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

$ sudo nano /etc/sysctl.conf

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

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

ファイアウォールの設定

$ 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速度

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です