Iptables пересылает весь внутренний трафик

Iptables пересылает весь внутренний трафик

У меня есть виртуальная машина с внутренним интерфейсом, подключенным к локальной сети. У виртуальной машины есть рабочее соединение OpenVPN с другим сайтом. Как перенаправить весь входящий трафик на локальном интерфейсе через туннель VPN с помощью iptables? Я использую дистрибутив Ubuntu.

решение1

Чтобы иметь возможность сделать site-to-site VPN с существующим подключением, вам нужно иметь пути маршрутизации через VPN. Допустим, вы находитесь на сайте № 1 (все симметрично, независимо от того, что действует как сервер OpenVPN).

  1. Во-первых, вам нужно убедиться, что виртуальная машина с VPN-подключением (которую мы можем назвать "VPN#1") может достичь удаленной подсети. Это делается путем добавления маршрута с использованием конфигурации OpenVPN
    • Если «VPN#1» — это клиент OpenVPN, вы можете либо добавить его на сервере с помощью pushключевого слова, либо добавить его локально с помощьюroute
    • Если «VPN#1» — это сервер OpenVPN, вы можете добавить его с помощью routeили с помощью внешнего инструмента, напримерip
  2. Затем вам необходимо убедиться, что и на «VPN#1», и на удаленной конечной точке включена переадресация IP (добавьте net.ipv4.ip_forward=1и /etc/sysctl.confперезагрузите с помощью sysctl -p).
  3. Если VPN#1 является шлюзом по умолчанию, то все готово. Если нет, вам нужно либо добавить статический маршрут для удаленной локальной сети в шлюзе по умолчанию, либо вы можете добавить статический маршрут на каждом хосте вашей локальной сети.
  4. Проверьте брандмауэр в VPN#1: он должен быть настроен на разрешение трафика между интерфейсами LAN и VPN (см. FORWARDцепочку в filterтаблице с использованием iptables).

Если вы повторите это на удаленной стороне, все должно работать. Используйте pingи tracerouteдля отладки любой проблемы.

решение2

OK, теперь все работает. Я могу подключиться к серверу RDP на другой стороне из своей локальной сети. Я не могу использовать smb для доступа к административным ресурсам на серверах Windows на другой стороне. Вот правила таблицы IP, которые я использовал:

/sbin/iptables -t nat -A POSTROUTING -o tun0 -j МАСКАРАД /sbin/iptables -A ПЕРЕСЫЛКА -i tun0 -o ens160 -m state --state СВЯЗАННЫЕ,УСТАНОВЛЕННЫЕ -j ПРИНЯТЬ /sbin/iptables -A ПЕРЕСЫЛКА -i ens160 -o tun0 -j ПРИНЯТЬ

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