AWS から Office への OpenVPN

AWS から Office への OpenVPN

OpenVPNゲートウェイを構築しようとしていますから私の仮想PC->の中へオフィスネットワーク。EC2 インスタンスの 1 つ (「ゲートウェイ」と名付けます) に VPN クライアントを正常にセットアップし、VPN 仮想インターフェイス「tun0」を設定しました。

ここで、VPC 内の残りの EC2 インスタンスからのすべてのオフィス関連トラフィック (dst 172.20.0.0/16) を「ゲートウェイ」のネットワーク インターフェイス (10.0.0.100) にルーティングします。

私は2つの異なるアプローチを試しました:

  • 関連する AWS ルートテーブルに新しいルールを追加します: 172.20.0.0/16 -> eni-XXX (eni-XXX は「ゲートウェイ」のインターフェースの ID)。
  • EC2 のルートテーブルを更新します: route add -net 172.20.0.0 netmask 255.255.0.0 gw 1​​0.0.0.100

ゲートウェイで「tcpdump -i eth0 'src port not 22 and dst port not 22'」を実行し、社内のオフィス IP を curling/ping しても何も表示されないため、両方のバリアントは失敗したようです :(

何が問題なのか分かる人はいますか? あるいは、私の問題に対するより良い解決策があるかもしれませんか?

2 番目の質問です。ゲートウェイの eth0 でトラフィックを取得したら、次の IpTables コマンドを使用して VPN 接続に転送する予定です。

iptables -t nat -A POSTROUTING -o tun0  -j MASQUERADE
iptables -A FORWARD -i eth0 -s 10.0.0.0/16 -o tun0 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

ここで何か問題が発生する可能性はありますか (IP 転送を有効にすることを除く)?

答え1

あなたのアプローチは最適ではありません。AWSを使用する必要があります仮想プライベートゲートウェイ1 つの EC インスタンス上の VPN に接続してそこからルーティングするのではなく、オフィスを VPN に接続します。

それを試してみてください。ドキュメントは優れています。問題がある場合は、おそらく新しい質問を開始する必要があります。このソリューションを使用できない場合は、質問を編集して、使用ケースに関する詳細を追加する必要があります。

答え2

さて、私の主な問題はAWSでした。デフォルトではEC2インスタンス間のトラフィックのルーティングが許可されていません。この問題を解決するには、ソース/宛先チェック「ゲートウェイ」インスタンス用です。その後、オフィス向けのすべてのトラフィックを「ゲートウェイ」ec2 インスタンスにリダイレクトするルートを AWS ルート テーブルに追加すると (例: 172.20.0.0/16 -> eni-XXX - eni-XXX はゲートウェイのインターフェイスの ID)、正常に動作します。

パブリック ネットワーク インターフェイス (eth0) から OpenVpn 仮想ネットワーク インターフェイスへのトラフィックの転送に関しては、iptables を使用すると非常に簡単に解決できます。

iptables -F
iptables -t nat -F

iptables -t nat -A POSTROUTING --out-interface tun0 -j MASQUERADE
iptables -A FORWARD -i eth0 -s 10.0.0.0/16 -d 172.20.0.0/16 -o tun0 -j ACCEPT

ここで、「10.0.0.0/16」は VPC サブネットワーク、「172.20.0.0/16」はオフィス ネットワークです。さらに、もちろん IP 転送を有効にします。

echo 1 > /proc/sys/net/ipv4/ip_forward
vim /etc/sysctl.conf <- net.ipv4.ip_forward = 1

皆様、ご返信ありがとうございます。

関連情報