tweet:2020:0611_01
no way to compare when less than two revisions
差分
このページの2つのバージョン間の差分を表示します。
前のリビジョン | |||
— | tweet:2020:0611_01 [2020/06/11 19:29] (現在) – [WireGuardのconfiguration] seirios | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== FreeBSDでWireGuard ====== | ||
+ | OpenVPNも悪くないのだが、やっぱり「証明書の更新」がなかなかに厳しい。というわけで、WireGuardを試してみる。 | ||
+ | |||
+ | ===== WireGuardとOpenVPNの比較 ===== | ||
+ | |||
+ | TBD | ||
+ | |||
+ | ===== Network構造(Site-to-Site VPN) ===== | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | 10.1.1.0/ | ||
+ | 10.255.255.0/ | ||
+ | |||
+ | Site A < | ||
+ | </ | ||
+ | |||
+ | * Site A と Site B をVPNで結ぶ | ||
+ | * Site AのNetworkは10.1.1.0/ | ||
+ | * VPNR-AのGlobal Addressは 192.0.2.1、VPNR-BのGlobal Addressは 198.51.100.1 | ||
+ | * Tunnel Networkは、10.255.255.0/ | ||
+ | * VPNR-AのTunnel IP Addressは10.255.255.1、VPNR-BのTunnel IP Addressは10.255.255.2 | ||
+ | * WireGuardの待ち受けポートを**UDP/ | ||
+ | |||
+ | とする。 | ||
+ | |||
+ | ===== WireGuardのInstall ===== | ||
+ | |||
+ | FreeBSD以外へのInstallは、いくらでも記事があるので、ここでは割愛。 | ||
+ | |||
+ | - FreeBSDをRouterにする | ||
+ | * (CMD) sysctl -w net.inet.ip.forwarding=1 | ||
+ | * (rc.conf) gateway_enable=" | ||
+ | - Packet filterを利用している場合、適当にUDP/ | ||
+ | - Wireguardをinstallする | ||
+ | * '' | ||
+ | - 起動時にWireguardが動作するようにrc.confに以下を追記 | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | これで、Install完了 | ||
+ | |||
+ | ===== WireGuardのconfiguration ===== | ||
+ | |||
+ | - 鍵を作成 | ||
+ | * VPNR-A | ||
+ | * < | ||
+ | # cd / | ||
+ | # wg genkey | tee A.private.key | wg pubkey > A.public.key | ||
+ | # cat A.private.key | ||
+ | 1StlE/ | ||
+ | # cat A.public.key | ||
+ | wla6Straum0tHReu+woMm/ | ||
+ | </ | ||
+ | * VPNR-B | ||
+ | * < | ||
+ | # cd / | ||
+ | # wg genkey | tee B.private.key | wg pubkey > B.public.key | ||
+ | # cat B.private.key | ||
+ | Xy8vOTORR2TrAAS3STRAY+TYVrAi+ROOTruId2tHlIPA= | ||
+ | # cat B.public.key | ||
+ | 7CYhEISH9She0WRUo0WrA+1tRAY/ | ||
+ | </ | ||
+ | - 設定ファイルを作成 | ||
+ | * VPNR-A:/ | ||
+ | * < | ||
+ | # Wireguard configuration. | ||
+ | [Interface] | ||
+ | Privatekey = 1StlE/ | ||
+ | Address = 10.255.255.1/ | ||
+ | ListenPort = 65534 | ||
+ | |||
+ | [Peer] | ||
+ | PublicKey = 7CYhEISH9She0WRUo0WrA+1tRAY/ | ||
+ | AllowedIPs = 10.255, | ||
+ | Endpoint = 192.0.2.1: | ||
+ | |||
+ | </ | ||
+ | * VPNR-B:/ | ||
+ | * < | ||
+ | # Wireguard configuration. | ||
+ | [Interface] | ||
+ | Privatekey = Xy8vOTORR2TrAAS3STRAY+TYVrAi+ROOTruId2tHlIPA= | ||
+ | Address = 10.255.255.2/ | ||
+ | ListenPort = 65534 | ||
+ | |||
+ | [Peer] | ||
+ | PublicKey = wla6Straum0tHReu+woMm/ | ||
+ | AllowedIPs = 10.255.255.1/ | ||
+ | Endpoint = 198.51.100.1: | ||
+ | </ | ||
+ | |||
+ | ===== Wireguardの起動他 ===== | ||
+ | |||
+ | * Wireguardの起動 | ||
+ | * '' | ||
+ | * Wireguardの状態確認 | ||
+ | * '' | ||
+ | * Interfaceの状態、peerの状態などが出力される | ||
+ | * wireguardのversion確認 | ||
+ | * '' | ||
+ | * 他に、wg-quickコマンドもあるが、今回は割愛 | ||
+ | * Wireguardの停止 | ||
+ | * '' | ||
+ | |||
+ | ===== 注意 ===== | ||
+ | * [Node A]のdefault routeがVPNR-Aを向いている かつ [Node B]のdefault routeがVPNR-Bを向いている(もしくはstatic routeが切られている)場合に、[Node A]と[Node B]がVPNトンネル経由で通信できる。 | ||
+ | * WireGuardは、L3 Tunnelを掘るためのApplicationなので、OpenVPNやSoftEtherのようなL2 VPNを掘ることはできない。 | ||
+ | * WireGuardは通信にUDPを利用するので、PacketFilter Firewallの設定が難しいことがある。 |
tweet/2020/0611_01.txt · 最終更新: 2020/06/11 19:29 by seirios