Как настроить OpenVPN, чтобы позволить VPN-клиентам получать доступ ко всем серверам внутри локальной сети сервера?


12

Сетевой IP-адрес моего сервера - 192.168.1.1, а веб-сервер интрасети - 192.168.1.2. Демон OpenVPN настроен для предоставления клиентам адресов 192.168.2. *.

В push "route 192.168.1.0 255.255.255.0"конфиге есть строка, которая, как я ожидаю, позволит VPN-клиентам получить доступ ко всей сети 192.168.1.0, но они могут получить доступ только к 192.168.1.1 - самому VPN-серверу.

Я попытался включения net.ipv4.ip_forward = 1в /etc/sysctl.confно это не помогает.

Есть идеи?

PS: на сервере работает Ubuntu 12.04.
PPS: OpenVPN работает в tunрежиме по UDP.


Уважаемый @FrandsHansen, я принимаю только ответы, которые в то же время 1. являются логически правильными ответами на вопросы, 2. были проверены мной на работу.
— Иван

Ответы:


19

Убедитесь, что IP-пересылка включена

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

Кроме того, для того, чтобы толчок маршрута работал, серверам внутри также необходимо знать маршрут к вашему IP-адресу клиента OpenVPN. Таким образом, они должны будут знать маршрут до 192.168.2.0/24

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

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

echo 1 > /proc/sys/net/ipv4/ip_forwardдает -bash: /proc/sys/net/ipv4/ip_forward: Permission denied- что это значит в этом случае?
— Иван

Скорее всего это означает, что вы не делаете это как root. Попробуйте сделать это как root
— Frands Hansen

Это точно такой же эффект sudo. Каким должен быть результат?
— Иван

1
Помещение sudo перед командой не добавит привилегии к файлу (после>), поэтому вам нужно перейти в root и затем сделать это.
— Друзья Хансен

1
или используйтеecho 1 | sudo tee
— ygrek

2

Если ваша сеть LAN действительно 192.168.1.0/24, то вы можете получить много проблем. Потому что большинство маршрутизаторов имеют эту сеть по умолчанию. Таким образом, когда вы находитесь в гостевой сети, ваш компьютер может получить IP-адрес из сети 192.168.1.0/24. Таким образом, вы не можете получить доступ к вашей удаленной сети, но гостевой сети. Я предлагаю выбрать другую сеть для вашей локальной сети и VPN. например, 192.170.15.0/24 для локальной сети и 10.0.5.0/xx для vpn. XX зависит от того, сколько VPN-клиентов подключаются к локальной сети.

вот мой скрипт fw для openvpn

#!/bin/sh

iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT

# Allow packets from private subnets
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -j ACCEPT

# i have multiple vpn networks
# 192.123.123.0/24 = LAN
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.9.0.0/30 -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.9.1.0/30 -o eth1 -d 192.123.123.39 -j MASQUERADE # to single server access only

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

Нет, на самом деле это не 192.168.1.0, просто две разные сети 192.168. #. 0. Спасибо за ответ.
— Иван

Если вам нужно, я могу поделиться своими настройками сервера openvpn и конфигурации клиента.
— Гунтис
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.