OPENVPN маршрутизировать локальную сеть на удаленный сервер

Я настроил соединение openvpn с моего компьютера Debian на удаленный сервер Debian, и оно работает. По сути, я могу пинговать 10.0.0.1 (адрес в vpn сервера).

Теперь я хочу поделиться этой связью. Я хочу, чтобы другие мои клиенты по локальной сети могли получить доступ к серверу без клиента openvpn. Как мне это сделать?

Мой стандартный сетевой адрес 192.168.2.x. Как настроить адрес 192.168.2.123 для прямого подключения к удаленному серверу?

1 ответ

Решение

Если я вас правильно понимаю, вы хотите сопоставить адрес 192.168.2.123 с удаленно доступным сервером openvpn 10.0.0.1

Для этого вам нужно будет сделать две вещи

  1. Создайте псевдоним для адреса 192.168.2.123 на вашем компьютере Debian. Подробное руководство можно найти здесь
  2. Настройте свой компьютер debian для перезаписи входящего трафика для 192.168.2.123 на удаленный сервер 10.0.0.1.

Для того чтобы настроить переадресацию, вам нужно сначала включить ее, как показано ниже.

echo 1 > /proc/sys/net/ipv4/ip_forward

Затем настройте определенные правила брандмауэра для фактической пересылки вашего трафика. Вот пример, как это сделать.

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
iptables -t nat -A PREROUTING -d 192.168.2.123 -j DNAT --to-destination 10.0.0.1

Примечание. Предполагается, что tun0 - это интерфейс туннеля, который открыл ваш компьютер Debian, а eth0 - интерфейс вашего компьютера с IP-адресом 192.168.2.123. Фактическое имя ваших интерфейсов может быть sth. остальное. Это настроит NAT, эффективно сопоставляя трафик с вашего интерфейса локальной сети на адрес, который вы имеете в VPN. Также имейте в виду, что эта настройка потребует, чтобы клиенты в вашей локальной сети инициировали любое соединение с удаленным сервером Debian.

Другое решение - просто перенаправить трафик интерфейса локальной сети на интерфейс туннеля, как показано ниже. Используя этот подход, вы сможете получить доступ к вашему удаленному серверу Debian, используя его внутренний VPN ip 10.0.0.1.

iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

Примечание: VPN-сервер на другой стороне не знает о подсети, чей трафик направляется в нее. Чтобы разрешить серверу отправлять ответные ответы, вам необходимо сообщить ему о возможности подключения к вашей локальной сети 192.168.2.x по туннелю. Вот объяснение, как это можно сделать. Также вам нужно будет сообщить клиенту о дополнительном маршруте в обычном сетевом интерфейсе.

Другие вопросы по тегам