Centos

OpenVPN 允許部分使用者跳轉到區域網路中的其他主機

  • January 6, 2017

所有使用者都可以連接到執行 OpenVPN 的主機,但有些使用者可以跳轉到區域網路中的其他主機。例如,foo使用者可以訪問 host 10.2.0.1/32(執行 OpenVPN 的地方)和 hosts at10.0.0.0/24bar使用者只能訪問 host 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

伺服器是執行 OpenVPN 2.3.11 和 Easy RSA 2.2.2 的 CentOS 7 (x86_64)。

我的錯:問題是 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

引用自:https://serverfault.com/questions/822752