Назад | Перейти на главную страницу

Клиент может получить доступ только к серверу, на котором размещен OpenVPN, но не к подсети серверов.

У меня особенная проблема с туннелем OpenVPN на моем Linux-сервере (конфигурация RoadWarrior). Я могу отлично войти в систему с помощью Tunnelblick 3.0 на моем Mac, я могу получить доступ ко всем службам на сервере, на котором размещен демон OpenVPN, однако я не могу получить доступ к любому другому компьютеру в подсети сервера.

Я продвигаю маршрут к клиенту и netstat -rn показывает, что маршрут существует.

Моя клиентская конфигурация выглядит следующим образом

port 500
dev tun
remote {secret} 

tls-client
ca ca.crt
cert client.crt
key client.key

comp-lzo

pull

verb 4

и конфигурация сервера следующая

port 500
dev tun

local 10.81.0.2

tls-server 
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem

mode server

ifconfig 10.84.0.1 10.84.0.2
ifconfig-pool 10.84.0.4 10.84.0.255

route 10.84.0.0 255.255.255.0

push "route 10.84.0.1 255.255.255.255"
push "route 10.81.0.0 255.255.255.0"

comp-lzo

keepalive 10 60
inactive 600

user vpndaemon
group vpndaemon

persist-tun
persist-key

verb 4

Я не могу найти никаких очевидных ошибок, и я также подтвердил, что на стороне клиента нет конфликтов IP.

Любые подсказки или идеи приветствуются!

Хорошо, я бы вставил это как комментарий, но я не могу, так что вот оно:

Команда, которую дал @GruffTech, у меня не сработала, но эта команда сработала

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Вероятно, вам потребуется настроить брандмауэр для выполнения MASQ для IP-адресов VPN.

-A POSTROUTING -s 10.84.0.0/255.255.255.0 -o eth0 -j MASQUERADE

в вашей конфигурации iptables должно сработать.

И вам нужно включить пересылку IP-пакетов ядра (маршрутизация между интерфейсами tun и eth):

раскомментируйте или вставьте следующую строку в свой /etc/sysctl.conf:

net.ipv4.ip_forward=1

и запустите:

sudo sysctl -p