WireGuardの起動
サーバー上で,
wg-quick@wg0を有効化し,
$ sudo systemctl enable wg-quick@wg0 $ sudo systemctl start wg-quick@wg0
ipコマンドでインターフェイスが生成されていることを確認しましょう。wg0.
ipコマンドでインターフェイスの状態を確認する
$ ip a (...略...) 4: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 10.0.0.1/32 scope global wg0 valid_lft forever preferred_lft forever
クライアントからVPNへの接続
クライアントからVPNへ接続するには,
VPNの接続を確立する
$ sudo wg-quick up wg0 [#] ip link add wg0 type wireguard [#] wg setconf wg0 /dev/fd/63 [#] ip -4 address add 10.0.0.2 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] ip -4 route add 10.0.0.0/24 dev wg0
サーバーと同様に,
クライアントのインターフェイスの状態を確認する
$ ip a (...略...) 4: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 10.0.0.2/32 scope global wg0 valid_lft forever preferred_lft forever
接続が確立できたら,
wgコマンドでVPN接続の状態を確認する
$ sudo wg interface: wg0 public key: (サーバーの公開鍵) private key: (hidden) listening port: 51820 peer: (クライアントの公開鍵) endpoint: クライアントのグローバルIPアドレス:クライアントのポート allowed ips: 10.0.0.2/32 latest handshake: 41 seconds ago transfer: 564 B received, 476 B sent
LAN内へのルーティングを行うには
インターネットから家庭内へのVPNの確立には成功しました。しかしこの設定だけですと,
Ubuntuはデフォルトで,
# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1 ← 行頭の # を消してコメントを解除する
sysctlコマンドを実行し,
$ sudo sysctl -p
WireGuardのサーバー設定には
サーバーのwg0.
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o wlan0 -j MASQUERADE
WireGuardを再起動すると,
$ sudo systemctl restart wg-quick@wg0 $ sudo iptables -L -n -t nat Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0
これでサーバー側の設定は完了です。
最後に,
クライアントのwg0.
AllowedIPs = 10.0.0.0/24, 192.168.1.0/24 ← LAN内で使われているIPアドレスをカンマ区切りで追記する
wg0を一度終了してから,
$ sudo wg-quick down wg0 $ sudo wg-quick up wg0
LAN内の他のサーバーやPCに,
なおAllowedIPsに0.
WireGuardには,