OpenVPN von AWS in Office

OpenVPN von AWS in Office

Ich versuche ein OpenVPN-Gateway zu erstellenausMeinVPC->hineinDieBüroNetzwerk. Ich habe erfolgreich einen VPN-Client auf einer meiner EC2-Instanzen eingerichtet (nennen wir ihn „Gateway“) und jetzt verfügt er über die virtuelle VPN-Schnittstelle „tun0“.

Jetzt möchte ich den gesamten bürobezogenen Datenverkehr (dst 172.20.0.0/16) von den restlichen EC2-Instanzen im VPC an die Netzwerkschnittstelle des „Gateways“ (10.0.0.100) weiterleiten.

Ich habe zwei verschiedene Ansätze ausprobiert:

  • Fügen Sie der zugehörigen AWS-Routentabelle eine neue Regel hinzu: 172.20.0.0/16 -> eni-XXX (wobei eni-XXX eine ID der Schnittstelle des „Gateways“ ist);
  • Aktualisieren Sie die Routentabelle von EC2: route add -net 172.20.0.0 netmask 255.255.0.0 gw 10.0.0.100

Beide Varianten scheinen fehlzuschlagen, da das Ausführen von „tcpdump -i eth0 ‚src port not 22 and dst port not 22‘“ auf dem Gateway und das Curling/Pingen interner Office-IPs nichts ergibt :(

Hat jemand eine Idee, was los ist? Oder hat jemand vielleicht eine bessere Lösung für mein Problem?

Und die zweite Frage. Sobald mein Datenverkehr auf dem eth0 des Gateways ankommt, plane ich, ihn mit den folgenden IpTables-Befehlen an die VPN-Verbindung weiterzuleiten:

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

Muss ich hier mit Problemen rechnen (außer der Aktivierung der IP-Weiterleitung)?

Antwort1

Ihr Ansatz ist nicht optimal. Sie sollten ein AWS verwendenVirtuelles privates Gatewayum Ihr Büro mit Ihrem VPN zu verbinden, und nicht um eine Verbindung zu einem VPN auf einer EC-Instanz herzustellen und von dort aus zu versuchen, weiterzuleiten.

Probieren Sie es aus, die Dokumentation ist gut, und wenn Sie Probleme haben, sollten Sie wahrscheinlich eine neue Frage stellen. Wenn Sie diese Lösung nicht verwenden können, sollten Sie Ihre Frage bearbeiten, um mehr Details zu Ihrem Anwendungsfall anzugeben.

Antwort2

Ok, mein Hauptproblem war also AWS - es erlaubt standardmäßig nicht, Verkehr zwischen EC2-Instanzen zu routen. Um dieses Problem zu beheben, sollte man deaktivierenSrc/Dst-Prüfungfür Ihre „Gateway“-Instanz. Danach funktioniert es einwandfrei, wenn Sie der AWS-Routentabelle eine Route hinzufügen, die Ihren gesamten, auf das Büro ausgerichteten Datenverkehr an Ihre „Gateway“-EC2-Instanz umleitet (z. B. 172.20.0.0/16 -> eni-XXX – wobei eni-XXX eine ID der Gateway-Schnittstelle ist).

Was die Weiterleitung des Datenverkehrs von der öffentlichen Netzwerkschnittstelle (eth0) zur virtuellen Netzwerkschnittstelle OpenVPN betrifft, so ist dies mit iptables ganz einfach zu lösen:

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

wobei „10.0.0.0/16“ das VPC-Subnetz und „172.20.0.0/16“ das Büronetzwerk ist. Außerdem muss natürlich die IP-Weiterleitung aktiviert werden:

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

Vielen Dank an alle für Ihre Antworten.

verwandte Informationen