序言
给不同的角色分配不同的访问权限,如下
Role | Virtual IP Range | Allowed LAN Access |
---|---|---|
admin | 10.8.1.0/24 | anywhere(192.168.2.0/24) |
common user | 10.8.2.0/24 | 192.168.2.66 |
一、编辑配置文件
vim /etc/open***/server.conf
port 1194
proto tcp
dev tun
ca /etc/open***/certs/ca.crt
cert /etc/open***/certs/server.crt
key /etc/open***/certs/server.key
dh /etc/open***/certs/dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.2.0 255.255.255.0"
# 新增下面这三行
client-config-dir ccd
route 10.8.1.0 255.255.255.0
route 10.8.2.0 255.255.255.0
......
二、新增 ccd 文件
cd /etc/open***
mkdir ccd
# client、admin 为制作 client 端证书时的 common name
echo 'ifconfig-push 10.8.2.1 10.8.2.2' > ./ccd/client
echo 'ifconfig-push 10.8.1.1 10.8.1.2' > ./ccd/admin
每对 ifconfig-push 地址代表虚拟客户端和服务器 IP 端点。它们必须取自连续的 /30 子网,以便与 Windows 客户端和 TAP-Windows 驱动程序兼容。 通俗的讲第一个 IP 为服务器分配给客户端的静态IP,第二个为服务器本身使用的 IP。同时,每个端点对的 IP 地址中的最后一个八位字节必须从以下集合中获取:
[ 1, 2] [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18]
[ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38]
[ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58]
[ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78]
[ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98]
[101,102] [105,106] [109,110] [113,114] [117,118]
[121,122] [125,126] [129,130] [133,134] [137,138]
[141,142] [145,146] [149,150] [153,154] [157,158]
[161,162] [165,166] [169,170] [173,174] [177,178]
[181,182] [185,186] [189,190] [193,194] [197,198]
[201,202] [205,206] [209,210] [213,214] [217,218]
[221,222] [225,226] [229,230] [233,234] [237,238]
[241,242] [245,246] [249,250] [253,254]
三、配置 iptables
# 10.8.1.0/24 网段可访问所有
iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -j MASQUERADE
# 只允许 10.8.2.0/24 网段访问 192.168.2.66
iptables -t nat -A POSTROUTING -s 10.8.2.0/24 -d 192.168.2.66/32 -j MASQUERADE
四、重启服务测试
最后重启 open*** 服务即可
systemctl restart open***@server
参考资料 : 官方文档