所有用户都可以连接到运行 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
该服务器是运行 OpenVPN 2.3.11 和 Easy RSA 2.2.2 的 CentOS 7 (x86_64)。
答案1
我的错:问题出在 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