OpenVPNサーバー以外のAWS VPCインスタンスにアクセスする

OpenVPNサーバー以外のAWS VPCインスタンスにアクセスする

AWS VPCのパブリックサブネットのBastionインスタンスにOpenVPNサーバーを設定しました。現在、OpenVPNクライアントでそのインスタンスのプライベートIPアドレスにアクセスしていますが、他のプライベートサブネットで実行されているEC2インスタンスにアクセスするVPC 内。

これが私の server.conf ファイルです:

port 1194

# TCP or UDP server?
;proto tcp
proto udp


;dev tap
dev tun


;dev-node MyTap


ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/server.crt
key /etc/openvpn/easy-rsa/pki/private/server.key 

dh /etc/openvpn/easy-rsa/pki/dh.pem


;topology subnet


server 10.8.0.0 255.255.255.0

;client-config-dir ccd
route 10.10.0.0 255.255.0.0
route 10.10.12.0 255.255.255.0
route 10.10.52.0 255.255.255.0
route 10.10.51.0 255.255.255.0
push "route 10.10.0.0 255.255.0.0"
push "route 10.10.12.0 255.255.255.0"
push "route 10.10.11.0 255.255.255.0"
push "route 10.10.51.0 255.255.255.0"
push "route 10.10.52.0 255.255.255.0"




;learn-address ./script


;push "redirect-gateway def1 bypass-dhcp"

;push "dhcp-option DNS 208.67.222.222"
;push "dhcp-option DNS 208.67.220.220"


client-to-client

#keepalive 10 120



tls-auth ta.key 0 # This file is secret

cipher AES-256-CBC

user nobody
group nobody

status openvpn-status.log

verb 3

私のネットワーク知識は適切なレベルではないので、この問題を解決するアイデアをお持ちの方がいらっしゃいましたら、大変ありがたく思います。

ありがとう

答え1

私の VPC には OpenVPN サーバーとして Mikrotik Cloud RouterOS がいくつかあり、動作させるのにもしばらく時間がかかりました。

あなたのインフラや現在の問題が何なのかはよく分かりませんが、クライアントはすでに OpenVPN サーバーに接続できるが、他のプライベート EC2 サーバーにはアクセスできないと想定しています。

クライアント IP プール (10.8.0.0/24) が OpenVPN サーバーの内部 IP (10.10.0.0/16) と異なることに気付きました。VPC ルート テーブルでは 10.8.0.0/24 がどのサブネットであるか、また対応するトラフィックをどこにルーティングするかがわからないため、VPC ルーティングが複雑になります。

私がこの問題を解決した方法は、NAT を適用して、パケットが OpenVPN サーバーから送信されるときに、クライアント トラフィック (IP 10.8.0.100 とします) が OpenVPN サーバー (IP 10.10.0.100 とします) としてマスカレードされるようにすることでした。この方法では、プライベート EC2 サーバーは常に OpenVPN サーバーを経由してルーティングされます。

確認する必要がある事項もいくつかあります。

  1. EC2セキュリティグループはトラフィックを許可しています

  2. VPCサブネットはルートテーブルに関連付けられています

  3. VPCルートテーブルには対応するルート設定があります

  4. NAT が発生している場合は、EC2 の送信元/宛先チェックは無効になります。

別の解決策としては、すべての 10.8.0.0/24 トラフィックが OpenVPN サーバーに送信されるようにルート テーブルを設定することが考えられますが、私はこれをうまく機能させたことがないので、この方法を採用する場合は幸運を祈ります。

関連情報