Рейтинг:0

Маршрутизация трафика между двумя серверами OpenVpn

флаг cn
Oli

Я пытаюсь направить трафик между двумя серверами openvpn; Я хотел бы иметь следующее соединение:

Клиент --> OpenVpnServer1 --> OpenVpnServer2 --> Интернет

У меня оба сервера работают и работают отдельно, но я попытался настроить OpenVpnServer1 для пересылки всего трафика своих клиентов на OpenVpnServer2 с помощью iptables, но безуспешно.

Интерфейсы и конфиги OpenVpnServer1:

eth0 -- публичный интернет

tun0 -- для клиентов, подключающихся к этому серверу

tun1 -- интерфейс подключения ко второму серверу (активен при подключении с помощью клиента openvpn)

*натуральный
:ОТПРАВКА ПРИНЯТИЯ [0:0]
-A POSTOUTING -s 10.10.0.0/8 -o eth0 -j MASQUERADE
СОВЕРШИТЬ

Интерфейсы и конфиги OpenVpnServer2:

ens33 -- общедоступный интернет

tun0 -- для клиентов, подключающихся к этому серверу

*натуральный
:ОТПРАВКА ПРИНЯТИЯ [0:0]
-A POSTROUTING -s 10.8.0.0/8 -o ens33 -j MASQUERADE
СОВЕРШИТЬ

Обновлять:

Я протестировал соединения между сервером 1 и сервером 2, и сервер 1 может пинговать Google со своего адаптера tun1. Проблема в том, что я не знаю, как перенаправить трафик, не меняя маршрут по умолчанию на server1. Если я изменю маршрут по умолчанию на tun1, клиенты не смогут подключиться к server1.

Michael Hampton avatar
флаг cz
Я не вижу здесь никакой маршрутизации, только много NAT. Почему вы используете NAT вместо маршрутизации?
Oli avatar
флаг cn
Oli
@ Майкл Хэмптон, вот почему я задаю этот вопрос.
Рейтинг:0
флаг kz

Хорошо, сначала немного основ. Клиент открывает VPN-подключение к Server1. У сервера есть активное соединение с server2, и это соединение настроено как маршрут по умолчанию (вы сделали это, верно?)

Прежде всего, я бы настроил этот туннель между server1 и server2 как site-to-site VPN, но это уже другая тема.

На server1 ваше правило iptables неверно. Правильным правилом будет:

iptables -t nat -A POSTROUTING -o tun1 -j MASQUERADE

Почему?

Если вы хотите, чтобы эта настройка работала, вам нужно сделать вид, что весь трафик, проходящий через туннель vpn с сервера 1 на сервер 2, инициируется сервером 1, в частности, имеет IP-адрес вашего интерфейса tun1, так что ответ достигает сервера 1 и может быть правильно перенаправляется обратно к клиенту. Это то, что делает правило. Ваше правило, напротив, будет только маскировать весь трафик, выходящий в общедоступный Интернет, а не через какой-либо VPN.

Oli avatar
флаг cn
Oli
Спасибо за ответ; У меня другая проблема, изменив маршрут по умолчанию на server1, я не могу к нему подключиться. Так что я не могу это изменить.
Martin avatar
флаг kz
вы не должны вручную менять маршрут по умолчанию; Пусть openvpn сделает это.Существует параметр конфигурации, с помощью которого вы можете это сделать: ```redirect-gateway def1``` внутри правильного файла конфигурации, например...
Oli avatar
флаг cn
Oli
включив эту опцию в конфигурации server2, после того, как server1 подключится к server2, server1 станет недоступным.
Martin avatar
флаг kz
Попробуйте сделать это внутри конфигурации клиента на server1. Делая это в конфигурации сервера, вы должны различать «перенаправление шлюза» (действительно для сервера) и push-перенаправление-шлюз (команда настройки передается клиенту). Проще написать это внутри конфига клиента...
Oli avatar
флаг cn
Oli
хорошо, я сделаю это, и я сообщу вам, если это работает или нет. Спасибо.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.