見出し画像

開発日誌: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.1ping 192.168.14.16

実際にPingが通った時は感動しました。ようやく念願の拠点間通信でしたので、その後今まで通り通常のクライアント設定(MacやiPhoneなど)も行いそれらも以前の様に接続できる事を確認出来ました。

残りは?

あとは各拠点のルータに、対向側のローカルIP向けの通信はWGVPNサーバに転送するように静的ルーティングを行えば、VPNに参加していないサーバ同士でも相互通信できる様になると思います。

明日はそれを実装して相互通信の最終試験になります。

それではまた明日、お疲れ様でした。


この記事が気に入ったらサポートをしてみませんか?