我正在尝试设置具有 Radius 身份验证和记账功能的 OpenVPN 服务器。基本功能正常。用户可以使用其 Radius 帐户向 OpenVPN 服务器进行身份验证,但存在一个我无法修复的关于同时连接的问题。而且我也不知道问题的原因。
问题是“同时使用”属性根本不起作用。如果两个客户端尝试使用相同的用户名进行连接,就会开始无限循环。当客户端 #2 尝试连接而客户端 #1 已经连接时,服务器会断开客户端 #1 的连接并连接客户端 #2。客户端 #2 连接后,客户端 #1 会尝试重新连接并断开客户端 #2 的连接。这种情况会一直持续下去。在正确的情况下,如果客户端 #1 已连接,服务器应该阻止客户端 #2 连接。
这是我的 OpenVPN 配置。
port 443
proto tcp
dev tun
server 10.8.0.0 255.255.255.0
ca /etc/openvpn/ssl/ca.crt
cert /etc/openvpn/ssl/EntityName.crt
key /etc/openvpn/ssl/EntityName.key
dh /etc/openvpn/ssl/dh.pem
crl-verify /etc/openvpn/ssl/crl.pem
tls-auth /etc/openvpn/ssl/ta.key 0
plugin /etc/openvpn/radius/radiusplugin.so /etc/openvpn/radius/radius.cnf
username-as-common-name
ifconfig-pool-persist ipp.txt
client-config-dir /etc/openvpn/ccd
persist-key
persist-tun
keepalive 10 60
reneg-sec 0
tun-mtu 1468
cipher AES-256-CBC
tun-mtu-extra 32
mssfix 1400
push "persist-key"
push "persist-tun"
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
status /var/log/openvpn/status.log 1
log-append /var/log/openvpn/openvpn.log
verb 3
client-connect /etc/openvpn/statuschange.sh
client-disconnect /etc/openvpn/statuschange.sh
script-security 2
management 127.0.0.1 7777
这是 radius 插件配置文件。
subnet=255.255.255.0
overwriteccfiles=true
useauthcontrolfile=false
accountingonly=false
nonfatalaccounting=false
server
{
acctport=1813
authport=1812
name=OpenVPN server ip.
retry=1
wait=1
sharedsecret=MySecret
}
答案1
我从官方 OpenVPN 论坛得到了答案。解决方案很简单。添加duplicate-cn
到服务器配置中。