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
Для этого вам нужно будет сделать две вещи
- Создайте псевдоним для адреса 192.168.2.123 на вашем компьютере Debian. Подробное руководство можно найти здесь
- Настройте свой компьютер 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 по туннелю. Вот объяснение, как это можно сделать. Также вам нужно будет сообщить клиенту о дополнительном маршруте в обычном сетевом интерфейсе.