Я пытаюсь направить трафик между двумя серверами OpenVPN; мне хотелось бы иметь следующее соединение:
Клиент --> OpenVpnServer1 --> OpenVpnServer2 --> Интернет
У меня оба сервера запущены и работают по отдельности, но я попытался настроить OpenVpnServer1 на пересылку всего трафика его клиентов на OpenVpnServer2 с помощью iptables, но это не удалось.
Интерфейсы и конфигурации OpenVpnServer1:
eth0 -- публичный интернет
tun0 -- для клиентов, подключающихся к этому серверу
tun1 -- интерфейс подключения ко второму серверу (активен при подключении с использованием клиента OpenVPN)
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.10.0.0/8 -o eth0 -j MASQUERADE
COMMIT
Интерфейсы и конфигурации OpenVpnServer2:
ens33 -- публичный интернет
tun0 -- для клиентов, подключающихся к этому серверу
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/8 -o ens33 -j MASQUERADE
COMMIT
Обновлять:
Я проверил соединения между server1 и sever2, и server1 может пинговать google со своего адаптера tun1. Проблема в том, что я не знаю, как перенаправить трафик, не меняя маршрут по умолчанию на server1. Если я изменю маршрут по умолчанию на tun1, то клиенты не смогут подключиться к server1.
решение1
Хорошо, сначала немного основ. Клиент открывает VPN-подключение к Server1. У сервера есть активное подключение к server2, и это подключение настроено как маршрут по умолчанию (вы это сделали, верно?)
Прежде всего, я бы настроил этот туннель между server1 и server2 как VPN типа «сеть-сеть», но это уже другая тема.
На сервере server1 ваше правило iptables неверное. Правильное правило будет:
iptables -t nat -A POSTROUTING -o tun1 -j MASQUERADE
Почему?
Если вы хотите, чтобы эта настройка работала, вам нужно сделать вид, что весь трафик, проходящий через vpn-туннель от server1 до server2, инициируется server1, в деталях имеет IP вашего интерфейса tun1, так что ответ достигает server1 и может быть правильно перенаправлен обратно клиенту. Это то, что делает правило. Ваше правило, напротив, будет маскировать весь трафик, выходящий в публичный интернет, а не через какой-либо VPN.