この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
mae3xx_ope:use_wireguard_vpn:start [2019/05/30 15:08] admin |
mae3xx_ope:use_wireguard_vpn:start [2019/11/29 15:32] (現在) admin |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
====== WireGuard VPN の利用 ====== | ====== WireGuard VPN の利用 ====== | ||
- | [[https://www.wireguard.com/|{{:mae3xx_ope:use_wireguard_vpn:wireguard_logo.png|WireGuard - extremely simple yet fast and modern VPN}}]] | + | [[https://www.wireguard.com/|{{:mae3xx_ope:use_wireguard_vpn:wireguard_logo.png?800|WireGuard - extremely simple yet fast and modern VPN}}]] |
v4.1.0 および v2.9.4rc7 から、[[https://www.wireguard.com/|WireGuard]] VPN を追加しました。\\ | v4.1.0 および v2.9.4rc7 から、[[https://www.wireguard.com/|WireGuard]] VPN を追加しました。\\ | ||
ライン 17: | ライン 17: | ||
また、他の VPN (IPSec, OpenVPN 等) と比較して**設定が非常に簡単**なので、設定で悩まされることなく VPN 環境を構築可能です。 | また、他の VPN (IPSec, OpenVPN 等) と比較して**設定が非常に簡単**なので、設定で悩まされることなく VPN 環境を構築可能です。 | ||
+ | |||
+ | ※ v4.4.0β12 から、[[.wireguard_webui:start]]((現状 1ピアのみ、クライアント側としての利用を想定))を用意しました。 | ||
\\ | \\ | ||
ライン 48: | ライン 50: | ||
<code> | <code> | ||
+ | root@server:/etc/wireguard# umask 077 | ||
root@server:/etc/wireguard# wg genkey | tee privatekey | wg pubkey > publickey | root@server:/etc/wireguard# wg genkey | tee privatekey | wg pubkey > publickey | ||
root@server:/etc/wireguard# ls -l | root@server:/etc/wireguard# ls -l | ||
ライン 239: | ライン 242: | ||
\\ | \\ | ||
- | ===== FAQ ===== | + | ===== TIPS ===== |
==== MA-E3xx で PPP 経由で自動接続させる ==== | ==== MA-E3xx で PPP 経由で自動接続させる ==== | ||
+ | |||
+ | === v4.x 系(Ubuntu 18.04LTS) の場合 === | ||
+ | |||
+ | systemd の service (wg-quick@.service) を有効化することで対応可能です。 | ||
+ | |||
+ | <code> | ||
+ | root@plum:~# systemctl enable wg-quick@wg0 | ||
+ | Created symlink /etc/systemd/system/multi-user.target.wants/wg-quick@wg0.service → /lib/systemd/system/wg-quick@.service. | ||
+ | root@plum:~# | ||
+ | </code> | ||
+ | |||
+ | \\ | ||
+ | |||
+ | === v2.x 系(Ubuntu 14.04LTS) の場合 === | ||
/etc/ppp/ip-up.d/ に wg-quick を呼び出すスクリプトを作成しておくことで、PPP 接続と同時に WireGuard 接続することができます。 | /etc/ppp/ip-up.d/ に wg-quick を呼び出すスクリプトを作成しておくことで、PPP 接続と同時に WireGuard 接続することができます。 | ||
ライン 261: | ライン 278: | ||
サーバー側の "Peer" セクションを追加することで対応可能です。 | サーバー側の "Peer" セクションを追加することで対応可能です。 | ||
- | |||
- | \\ | ||
<file config /etc/wireguard/wg0.conf> | <file config /etc/wireguard/wg0.conf> | ||
ライン 287: | ライン 302: | ||
</file> | </file> | ||
+ | \\ | ||
+ | |||
+ | ==== 拠点間接続をする ==== | ||
+ | |||
+ | "Peer" の "AllowedIPs" にネットワークをカンマ区切りで設定することで可能となります。 | ||
+ | |||
+ | == 172.16.0.0/16 へのルーティングを有効化する場合 == | ||
+ | |||
+ | <file config /etc/wireguard/wg0.conf> | ||
+ | [Interface] | ||
+ | PrivateKey = eJIfe+fVRyhAHf1IKN0IyKLTauAgpwo0LbqqgFXP/0Y= | ||
+ | Address = 10.100.0.1 | ||
+ | ListenPort = 51820 | ||
+ | |||
+ | [Peer] | ||
+ | PublicKey = LU9wj74KIc5ND+F76Amw9GyrLrwgLmBT9JOxTEaPqAY= | ||
+ | AllowedIPs = 10.100.0.10/32, 172.16.0.0/16 | ||
+ | </file> | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== LAN 内の機器に WireGuard 経由でアクセスしたい ==== | ||
+ | |||
+ | LAN 内の機器にリモートからアクセスしたいけど、LAN 内の機器のルーティング変更はさせてもらえない、とか \\ | ||
+ | ルーティングを変更するのは面倒くさい、、、とか、ありますね。 | ||
+ | |||
+ | {{:mae3xx_ope:use_wireguard_vpn:wireguard_03.png?1000|}} | ||
+ | |||
+ | \\ | ||
+ | |||
+ | MA-E3xx 側の WireGuard 設定ファイルに、PostUp/PreDown で WireGuard のアドレスをソースとしたパケットに対する MASQUERADE ルールを追加するだけで可能です。 | ||
+ | |||
+ | <file config /etc/wireguard/wg0.conf> | ||
+ | [Interface] | ||
+ | PrivateKey = kEZJD3XwR4C93FQV4k3kxKXZN4lb3BteQ8QmidevC08= | ||
+ | Address = 10.100.0.10 | ||
+ | PostUp = iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -j MASQUERADE | ||
+ | PreDown = iptables -t nat -D POSTROUTING -s 10.100.0.0/24 -j MASQUERADE | ||
+ | |||
+ | [Peer] | ||
+ | PublicKey = 27XZDfokt17uJZ+pvGXIRqLk2RMiPk55d12rzdDzAVY= | ||
+ | EndPoint = www.example.jp:51820 | ||
+ | AllowedIPs = 10.100.0.0/24 | ||
+ | PersistentKeepAlive = 30 | ||
+ | </file> | ||
+ | |||
+ | \\ | ||
+ | |||
+ | サーバー側には LAN 内のアドレスへのルーティングを追加しておきます。 | ||
+ | |||
+ | <file config /etc/wireguard/wg0.conf> | ||
+ | [Interface] | ||
+ | PrivateKey = CGqjI+42V0TFA699Rf5SRd/+HWmUnwFudhh+vjToGWw= | ||
+ | ListenPort = 51820 | ||
+ | Address = 10.100.0.1 | ||
+ | |||
+ | [Peer] | ||
+ | # MA-E3xx | ||
+ | PublicKey = PgXan/MXjXWQkwesEqkVUN1ggg6XyB8f86yr96ZiDio= | ||
+ | AllowedIPs = 10.100.0.10/32, 192.168.253.0/24 | ||
+ | </file> | ||
+ | |||
+ | ※ MA-E3xx の LAN、192.168.253.0/24 へのルーティングを追加しています。 | ||
+ | |||
+ | === テスト === | ||
+ | |||
+ | Internet 上のサーバー側から LAN 内の機器にアクセス可能か試してみます。 | ||
+ | |||
+ | <code> | ||
+ | root@server:~# traceroute 192.168.253.2 | ||
+ | traceroute to 192.168.253.2 (192.168.253.2), 30 hops max, 60 byte packets | ||
+ | 1 10.100.0.10 (10.100.0.10) 1117.021 ms 1116.872 ms 1116.762 ms | ||
+ | 2 192.168.253.2 (192.168.253.2) 1116.687 ms * 1116.487 ms | ||
+ | </code> | ||
+ | |||
+ | <code> | ||
+ | root@server:~# ping -c 5 192.168.253.2 | ||
+ | PING 192.168.253.2 (192.168.253.2) 56(84) bytes of data. | ||
+ | 64 bytes from 192.168.253.2: icmp_seq=1 ttl=63 time=610 ms | ||
+ | 64 bytes from 192.168.253.2: icmp_seq=2 ttl=63 time=47.5 ms | ||
+ | 64 bytes from 192.168.253.2: icmp_seq=3 ttl=63 time=45.4 ms | ||
+ | 64 bytes from 192.168.253.2: icmp_seq=4 ttl=63 time=43.7 ms | ||
+ | 64 bytes from 192.168.253.2: icmp_seq=5 ttl=63 time=70.6 ms | ||
+ | |||
+ | --- 192.168.253.2 ping statistics --- | ||
+ | 5 packets transmitted, 5 received, 0% packet loss, time 4006ms | ||
+ | rtt min/avg/max/mdev = 43.751/163.511/610.198/223.556 ms | ||
+ | </code> | ||
+ | |||
+ | 問題なくアクセスできることが確認できました。 | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ==== 今回作成したサーバーにスマートフォンでアクセスする ==== | ||
+ | |||
+ | クライアント用の設定を作成し、iPhone, Android アプリ用に設定を QR コードで出力することができます。 | ||
+ | |||
+ | [参考] [[https://wiki.debian.org/Wireguard#A3._Import_by_reading_a_QR_code_.28most_secure_method.29|Mobile clients Configuration - Debian Wiki]] | ||
+ | |||
+ | {{:mae3xx_ope:use_wireguard_vpn:wireguard_02.png?400|これはダミー設定なので実際に使用することはできません。}} | ||
+ | |||
+ | \\ | ||