是否可以允许 openvpn 上的机器仅连接到网络上的一台服务器?

Ita*_*not 5 linux openvpn

我有一个 OpenVPN 服务器,它已经正常运行并允许人们在我们的服务器上工作。有一个新项目要求我允许一组外包编码人员访问网络和网络中的一个特定服务器。我想只允许他们连接到驻留在网络上的一个开发服务器,但我也想知道他们无法连接到网络上的任何其他服务器。那可能吗?如何?

那是我的server.conf文件:

ca ca.crt
cert server.crt
comp-lzo
dev tun
dh dh1024.pem
group nobody
ifconfig-pool-persist ipp.txt
keepalive 10 120
key server.key  # This file should be kept secret
persist-key
persist-tun
port 1194
proto tcp
push "dhcp-option DNS 208.67.220.220"
push "dhcp-option DNS 208.67.222.222"
push "route 10.1.X.0 255.255.255.0"
push "route 192.168.X.0 255.255.255.0"
push "route 192.168.Y.0 255.255.255.0"
server 192.168.Y.0 255.255.255.0
status openvpn-status.log
user nobody
verb 3
Run Code Online (Sandbox Code Playgroud)

我要添加什么?会不会影响已经连接的用户?它会对已经连接到该服务器的用户造成任何问题吗?

Mad*_*ter 5

正如 MealstroM 所说,这是可能的。完整程序在 OpenVPN HOWTO 的相关部分中有详细记录,但程序的简短摘要是:

  1. 配置 OpenVPN 服务器,根据嵌入在各自证书中的 CN 区分普通用户和“俘虏”用户(那些只能访问某些机器的用户)

  2. 做出这样的区分后,配置 OpenVPN 将 VPN 地址从一个 VPN 地址块分配给普通用户,从另一个块分配给俘虏用户

  3. 在第 3 层区分特权和非特权流量后,编写适当的iptables规则以仅允许来自俘虏用户 netblock 的所需流量。

你问“它会影响已经连接的用户吗”。如果您的意思是在短期内,那么是的,因为这将需要重新启动服务器,从而断开所有人的连接;如果您的意思是从长远来看,那么不,现有用户不应该需要任何重新配置​​或更改。所有这些更改都是服务器端的。