【AWS】統合脅威管理「Sophos UTM」を使ってVPC間をIP-VPN接続する
コカコーラが大好きな梶です。
すごく遅くなりましたが明けましておめでとうございます。本年もよろしくお願い致します。
異なるリージョン間のVPCをネットワーク接続するには、MarketplaceのソフトウェアルータでIP-VPNを利用します。 (VPC Peeringは現在のところ、同一リージョン間のみのため)
今回は、弊社でSSL-VPNでよく用いられているSophos UTMでVPC間のIP-VPN接続を実施しましたので解説します。
構成
今回の構成は以下となります。 Public SubnetにSophos UTMをそれぞれのVPCに配置 オンプレミスのネットワーク機器だとNICを2つで構築するのが一般的ですが、今回は1本足(1アーム)構成です。 Site-AとSite-B間の通信をVPN接続を経由して通信します。
導入方法
Sophos UTMの各VPCでのセットアップは以下のブログを参照し実施ください。 【AWS】統合脅威管理「Sophos UTM」を使ってiPhoneからVPCへIPsec-VPN接続する 「システムDNSホスト名設定」まで実施します。
AWS設定手順
Site-A Security Group
IP-VPN接続するために、UDP 500、UDP4500、ESPを許可します。また、自サイトからの通信も全て許可します。 *TCP 4444はSophos UTMの設定用GUI、TCP 443はSSL-VPN用となります。
Site-A Private Subnet Routing Table
Site-Bへの通信をTargetにてすべてUTM-Aへ向けます。 *10.242.2.0はSSL-VPN用となります。
Site-A Public Subnet Routing Table
Site-Bへの通信をTargetにてすべてUTM-Aへ向けます。その他はすべてインターネットへ向けます。 *10.242.2.0はSSL-VPN用となります。
Site-B Security Group
Site-Aと同様です。
Site-B Private Subnet Routing Table
Site-Aと同様です。Site-Aへの通信をTargetにてすべてUTM-Bへ向けます。
Site-A Public Subnet Routing Table
Site-Aと同様です。Site-Aへの通信をTargetにてすべてUTM-Bへ向けます。
Sophos UTM設定手順
ネットワーク定義の作成
IP-VPN設定で利用する以下の3つを登録
- UTM自身のVPCネットワークアドレス
- 相手UTMのVPCネットワークアドレス
- 相手UTMのグローバルアドレス
リモートゲートウェイを登録
サイト間VPN>IPsecを選択し、以下のように設定
- ゲートウェイ:相手先のUTMのグローバルアドレス定義
- VPN IDタイプ:IPアドレス
- VPN ID:相手側のUTMのプライベートアドレスを設定(現在のところSophosUTMの仕様のようで、ホスト名などではVPN接続できませんでした。)
- リモートネットワーク:相手側のVPCネットワークアドレス
コネクションを登録
サイト間VPN>IPsecを選択し、以下のように設定
- リモートゲートウェイ:一つ前で設定したリモートゲートウェイを選択
- ローカルインターフェイス:Internal(デフォルトのまま)
- ポリシー:現在一般的な「AES-256」を選択
- ローカルネットワーク:自分側のVPCネットワークアドレス
相手側UTMも同様に設定
同様にSite-BのUTMも設定します。
接続確認
Sophos UTMの確認
うまくVPN接続できると以下のようなトンネルステータスになります。
サーバ間のPingの通信
Server1での通信結果
[ec2-user@ip-10-1-1-156 ~]$ ping 10.2.3.159 PING 10.2.3.159 (10.2.3.159) 56(84) bytes of data. 64 bytes from 10.2.3.159: icmp_seq=1 ttl=62 time=4.12 ms 64 bytes from 10.2.3.159: icmp_seq=2 ttl=62 time=5.74 ms 64 bytes from 10.2.3.159: icmp_seq=3 ttl=62 time=4.34 ms 64 bytes from 10.2.3.159: icmp_seq=4 ttl=62 time=4.51 ms 64 bytes from 10.2.3.159: icmp_seq=5 ttl=62 time=5.56 ms 64 bytes from 10.2.3.159: icmp_seq=6 ttl=62 time=4.40 ms ^C --- 10.2.3.159 ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 5773ms rtt min/avg/max/mdev = 4.127/4.783/5.747/0.630 ms
Server2での通信結果
[ec2-user@ip-10-2-3-159 ~]$ ping 10.1.1.156 PING 10.1.1.156 (10.1.1.156) 56(84) bytes of data. 64 bytes from 10.1.1.156: icmp_seq=1 ttl=62 time=4.43 ms 64 bytes from 10.1.1.156: icmp_seq=2 ttl=62 time=3.94 ms 64 bytes from 10.1.1.156: icmp_seq=3 ttl=62 time=4.37 ms 64 bytes from 10.1.1.156: icmp_seq=4 ttl=62 time=4.05 ms 64 bytes from 10.1.1.156: icmp_seq=5 ttl=62 time=4.71 ms 64 bytes from 10.1.1.156: icmp_seq=6 ttl=62 time=4.28 ms ^C --- 10.1.1.156 ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 5757ms rtt min/avg/max/mdev = 3.948/4.303/4.715/0.262 ms
まとめ
意外と簡単にできますね。 ただ、VPN IDにプライベートアドレスを利用しますので、明示的にしたい場合は構築時にプライベートアドレスを指定して構築することをお勧めします。 今後アップデートでホスト名などの値が入力できるようになると推測します。 次回は、Sophos UTMをNATインスタンスの代替えとして動作させてみたいと思います。