![見出し画像](https://assets.st-note.com/production/uploads/images/58286265/rectangle_large_type_2_747c01587ac19e1e49de8c01adfd2fad.png?width=1200)
開発日誌:VPN拠点間相互接続(成功)
先日から構築を行なっていた。WireGuard-VPN(WGVPN)を使った拠点間相互接続が成功しました。
2つの拠点にそれぞれWGVPNサーバを構築してそのサーバを相互にクライアントとする事で実装する事ができました。
実際の設定
WGVPNサーバの実際に設定は以下の様になりました。
今回は、2つの拠点をASIDE拠点とBSIDE拠点します。
設定は以下の通り
VPN接続に使用するUDPポート番号:14114
ASIDE側のVPNネットワークアドレス:10.46.14.0/24
ASIDE側のローカルネットワークアドレス:192.168.14.0/24
BSIDE側のVPNネットワークアドレス:10.46.41.0/24
BSIDE側のローカルネットワークアドレス:192.168.41.0/24
ASIDE側WGVPN設定
[Interface]
PrivateKey = <ASIDE WGVPNサーバ秘密鍵>
Address = 10.46.14.1
PostUp = firewall-cmd --zone=public --add-masquerade; firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i wg0 -o eth0 -j ACCEPT; firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o eth0 -j MASQUERADE; firewall-cmd --add-port=14114/udp
PostDown = firewall-cmd --zone=public --remove-masquerade; firewall-cmd --direct --remove-rule ipv4 filter FORWARD 0 -i wg0 -o eth0 -j ACCEPT; firewall-cmd --direct --remove-rule ipv4 nat POSTROUTING 0 -o eth0 -j MASQUERADE; firewall-cmd --remove-port=14114/udp
ListenPort = 14114
##### BSIDE ####
[peer]
Endpoint = <BSIDE側のグローバルIPもしくは、ドメイン名>:14114
AllowedIPs = 10.46.41.100/24, 192.168.41.0/24
PublicKey = <BSIDE WGVPNサーバ公開鍵>
##### BSIDE ####
BSIDE側WGVPN設定
[Interface]
PrivateKey = <BSIDE WGVPNサーバ秘密鍵>
Address = 10.46.41.0/24
PostUp = firewall-cmd --zone=public --add-masquerade; firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i wg0 -o eth0 -j ACCEPT; firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o eth0 -j MASQUERADE; firewall-cmd --add-port=14114/udp
PostDown = firewall-cmd --zone=public --remove-masquerade; firewall-cmd --direct --remove-rule ipv4 filter FORWARD 0 -i wg0 -o eth0 -j ACCEPT; firewall-cmd --direct --remove-rule ipv4 nat POSTROUTING 0 -o eth0 -j MASQUERADE; firewall-cmd --remove-port=14114/udp
ListenPort = 14114
##### ASIDE ####
[peer]
Endpoint = <ASIDE側のグローバルIPもしくは、ドメイン名>:14114
AllowedIPs = 10.46.14.100/24, 192.168.14.0/24
PublicKey = <ASIDE WGVPNサーバ公開鍵>
##### ASIDE ####
私の場合は、今までクライアントを接続させる場合、1クライアント1鍵ペアで設定していたため今回の場合ですと10.46.14.100/32としていたのですが、今回の様に拠点間のサーバ同士で接続する場合は、サブネットを24と実際にVPNで振るアドレスの幅にしないと通信ができませんでした。
この辺ネットワークが全然理解できてない事を痛感しました。
相互通信
実際に設定してみて相互のVPNサーバから対向側のローカルサーバ諸々にローカルIPでPingが飛ぶ事を確認できました。
ASIDEから
ping 192.168.41.10
ping 192.168.41.200
BSIDEから
ping 192.168.14.17
ping 192.168.14.16
実際にPingが通った時は感動しました。ようやく念願の拠点間通信でしたので、その後今まで通り通常のクライアント設定(MacやiPhoneなど)も行いそれらも以前の様に接続できる事を確認出来ました。
残りは?
あとは各拠点のルータに、対向側のローカルIP向けの通信はWGVPNサーバに転送するように静的ルーティングを行えば、VPNに参加していないサーバ同士でも相互通信できる様になると思います。
明日はそれを実装して相互通信の最終試験になります。
それではまた明日、お疲れ様でした。