Leiten Sie den Datenverkehr von AWS VPC über OpenVPN weiter

Leiten Sie den Datenverkehr von AWS VPC über OpenVPN weiter

Ich muss auf einige Hosts zugreifen, die über OpenVPN von meinem privaten AWS VPC-Subnetz aus erreichbar sind. Mein VPC-Setup ähnelt dem hier beschriebenenHier.

Innerhalb des privaten Netzwerks habe ich eine EC2-Instanz erstellt, die mit dem folgenden Befehl einen OpenVPN-Client einrichtet:

openvpn --verb 3 --config config.ovpn  --script-security 2 --up up.sh

Inhalt der up.sh-Skriptdatei:

#!/bin/bash

/sbin/sysctl -w net.ipv4.ip_forward=1
/sbin/iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT 2>&1
/sbin/iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \
-j ACCEPT 2>&1
/sbin/iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE 2>&1

Nehmen wir an, dass 171.20.0.0/16 das Subnetz hinter VPN ist. Die Routentabelle für das private Subnetz sieht folgendermaßen aus:

DESTINATION    TARGET
10.0.0.0/16    local
0.0.0.0/0      nat-gateway
171.20.0.0/16  ec2-instance-with-openvpn-client

Ich verwende Standardsicherheitsgruppen.

Mein Problem ist, dass ich von einem Docker-Image, das in einem ECS-Cluster innerhalb eines privaten Subnetzes läuft, nicht auf Hosts hinter VPN zugreifen kann. Der OpenVPN-Client funktioniert ordnungsgemäß, da ich von der EC2-Instanz direkt auf Hosts hinter VPN zugreifen kann. Soweit ich es beobachten konnte, glaube ich, dass der Datenverkehr vom Docker nie die EC2-Instanz erreicht, aber da bin ich mir nicht 100 % sicher.

Antwort1

Das VPC-Netzwerk ist ein softwaredefiniertes Netzwerk – ein Layer-3-Netzwerk, das Ethernet emuliert. Standardmäßig lässt das Netzwerk keinen Datenverkehr zu oder von einer EC2-Instanz zu, die nicht genau die Adresse dieser Instanz als Quell- oder Zieladresse hat (je nach Richtung des Datenverkehrs). Daher muss die Prüfung in Fällen wie diesem deaktiviert werden.

Ändern der Quell- oder Zielprüfung

Das Attribut „Quell-/Zielprüfung“ steuert, ob die Quell-/Zielprüfung für die Instanz aktiviert ist. Durch Deaktivieren dieses Attributs kann eine Instanz Netzwerkverkehr verarbeiten, der nicht speziell für die Instanz bestimmt ist. Beispielsweise sollten Instanzen, die Dienste wie Netzwerkadressübersetzung, Routing oder eine Firewall ausführen, diesen Wert auf setzen disabled. Der Standardwert ist enabled.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#change_source_dest_check

verwandte Informationen