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

OpenVPN позволяет некоторым пользователям переходить на другие хосты в локальной сети.

Все пользователи могут подключаться к хосту, на котором работает OpenVPN, но некоторые пользователи могут переходить на другие хосты в локальной сети. Например, фу пользователь может связаться с хостом 10.2.0.1/32 (где работает OpenVPN) и хосты в 10.0.0.0/24 но бар пользователь может связаться только с хостом 10.2.0.1/32.

Для обоих пользователей таблица маршрутов одинакова

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    302    0        0 wlan0
10.1.0.0        10.2.0.5        255.255.255.128 UG    0      0        0 tun0
10.2.0.1        10.2.0.5        255.255.255.255 UGH   0      0        0 tun0
10.2.0.5        0.0.0.0         255.255.255.255 UH    0      0        0 tun0

Для генерации клиентского ключа я запускаю

cd /usr/share/easy-rsa/2.0
source vars
./build-key --batch foo

В /etc/openvpn/server.conf файл имеет

; server
mode       server
port       1194
proto      udp
dev        tun
keepalive  10 120


; networking
server     10.2.0.0 255.255.255.0
ifconfig   10.2.0.1 255.255.255.0
push       "route 10.1.0.0 255.255.255.128"
ifconfig-pool-persist ipp.txt

Сервер представляет собой CentOS 7 (x86_64) под управлением OpenVPN 2.3.11 и Easy RSA 2.2.2.

Моя проблема: проблема заключалась в правиле пост-маршрутизации в IPTables, это было

-A POSTROUTING -s 10.2.0.0/27 -o eno1 -j MASQUERADE

И должно быть

-A POSTROUTING -s 10.2.0.0/24 -o eno1 -j MASQUERADE