OpenVPN из AWS в Office

OpenVPN из AWS в Office

Я пытаюсь создать шлюз OpenVPN.отмойВПК->в the офиссеть. Я успешно настроил VPN-клиент на одном из моих экземпляров EC2 (назовем его «шлюз»), и теперь у него есть виртуальный VPN-интерфейс «tun0».

Теперь я хочу направить весь трафик, связанный с офисом (dst 172.20.0.0/16), с остальных экземпляров EC2 в VPC на сетевой интерфейс «шлюза» (10.0.0.100).

Я попробовал 2 разных подхода:

  • добавить новое правило в соответствующую таблицу маршрутов AWS: 172.20.0.0/16 -> eni-XXX (где eni-XXX — идентификатор интерфейса «шлюза»);
  • обновить таблицу маршрутизации 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'» на шлюзе и curling/ping внутренних офисных IP-адресов ничего не показывают :(

Есть ли у кого-нибудь идеи, в чем дело? Или, может быть, есть готовое решение моей проблемы?

И второй вопрос. Как только я получу свой трафик на eth0 шлюза, я планирую перенаправить его в VPN-подключение с помощью следующих команд IpTables:

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Виртуальный частный шлюздля подключения вашего офиса к VPN, а не для подключения к VPN на одном экземпляре EC и попытки маршрутизации оттуда.

Попробуйте, документация хорошая, и если у вас возникнут проблемы, вам, вероятно, следует начать новый вопрос. Если вы не можете использовать это решение, вам следует отредактировать свой вопрос, включив больше подробностей о вашем варианте использования.

решение2

Итак, моя главная проблема была в AWS - он не позволяет маршрутизировать трафик между экземплярами EC2 по умолчанию. Чтобы исправить этот момент, нужно отключитьПроверка источника/адресадля вашего экземпляра "шлюза". После этого добавление маршрута в таблицу маршрутизации AWS, которая перенаправляет весь ваш офисный трафик на ваш экземпляр ec2 "шлюза" (например, 172.20.0.0/16 -> eni-XXX - где eni-XXX - это идентификатор интерфейса шлюза), работает нормально.

Что касается переадресации трафика с публичного сетевого интерфейса (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

Спасибо всем за ваши ответы.

Связанный контент