У меня есть VPN-сервер («хост» - 10.8.1.1) на общедоступном экземпляре VPS под управлением OpenVPN. Второй экземпляр, который я запускаю («клиент» - 10.8.1.2), - это локальный экземпляр ESXi, подключенный к хост-серверу vpn. Оба сервера работают под управлением CSF (по сути, усиленный интерфейс iptables). Кроме того, оба сервера имеют разрешенный вход / выход 27015: 27050 UDP в их csf.confs.
Я пытаюсь перенаправить трафик на хосте в диапазоне портов 27015-27050 (UDP) через туннель OpenVPN клиенту. Оттуда весь ответный трафик должен вернуться через туннель к хосту (я предполагаю, через SNAT).
Я испробовал все варианты каждой возможной команды, которую мне удалось найти в Google, и самое дальнее, что у меня есть, - это начальный пакет, который нужно перенаправить через туннель к клиенту, но ничего обратно на хост.
Вот что у меня есть в моем csfpost.sh на хосте (сценарий запускается после завершения запуска csf):
iptables -t nat -A PREROUTING -p udp -i eth0 --dport 27015 -j DNAT --to-destination 10.8.1.2:27015
iptables -A FORWARD -p udp -d 10.8.1.2 --dport 27015 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Поскольку команды, которые я пробовал на клиенте, пока не работают, я сомневаюсь, что они помогут увидеть.
Команды, которые я показал выше, влияют только на порт 27015, но моя конечная цель - перенаправить диапазон портов 27015-27050.
Спасибо за любую помощь или предложения!
Я согласен с каспердом.
Если вы хотите, чтобы ответный пакет отправлялся по одному и тому же маршруту, вам нужно либо реализовать какую-то причудливую маршрутизацию политики в принимающем поле (используя connmark для отметки входящих соединений на интерфейсе vpn, затем --restore-mark при исходящем ответе пакеты и правило ip (8) для пересылки помеченных пакетов с использованием таблицы маршрутизации, шлюзом по умолчанию которой является одноранговый узел vpn); или просто SNAT пакеты к vpn IP блока NAT.
Т.е. добавить что-то вроде
iptables -t nat -A POSTROUTING -p udp -o vpninterface --dport 27015 -j MASQUERADE