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 10.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
皆様、ご返信ありがとうございます。