OpenVPN带有用户名和密码

6

我已经配置好了OpenVPN,它正常工作。但我总是需要导入配置文件,而且它包含ca证书,我启用了用户名和密码认证。但仍然需要添加这个证书。

我如何只使用用户名和密码连接OpenVPN,而不需要证书和配置文件。

服务器配置

port 1194
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
auth SHA512
tls-auth /etc/openvpn/ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 94.237.127.99"
push "dhcp-option DNS 94.237.40.99"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 4
crl-verify /etc/openvpn/crl.pem
--verify-client-cert none
log-append /var/log/openvpn.log
script-security 2
auth-user-pass-verify /etc/openvpn/example.sh via-file

客户端配置

client
dev tun
proto udp
sndbuf 0
rcvbuf 0
remote 94.237.88.154 1194
resolv-retry 5
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA512
cipher AES-256-CBC
setenv opt block-outside-dns
key-direction 1
verb 3
auth-user-pass
script-security 2

<ca>
-----BEGIN CERTIFICATE-----
###
###
-----END CERTIFICATE-------

现在,当我导入此文件并使用我的用户ID和密码时,它可以连接,但是我想通过提供用户名和密码来连接OpenVPN客户端,而无需导入客户端文件。

你能分享一下你是如何实现 auth-user-pass-verify 的吗? - Msvstl
我认为这是不可能的。你仍然必须使用证书和用户身份验证。 - Kamal Panhwar
我想使用证书和基于用户名和密码的身份验证作为双层安全措施。如何为不同的客户设置不同的用户名和密码? - Msvstl
2个回答

9

根据你所使用的OpenVPN版本,可以在server.conf中使用一个指令。

  • client-cert-not-required:

    使你的VPN不太安全,因为不需要证书进行身份验证(已弃用)。

  • verify-client-cert none|optional|require:

    使用verify-client-cert none等同于前面提到的选项。

来源链接:点击这里


我认为这个答案与问题无关。 - U. Windl
2
恕我直言,我认为这并不无关紧要。他正在询问如何在不需要证书验证的情况下进行用户名/密码身份验证。此设置正好可以实现这一点。这与问题有何关联? - Ivan Montilla Miralles
我认为这里的问题是客户端如何在没有证书的情况下连接到VPN。 - josoler
2
@josoler 没错,就是这样。但是如果服务器需要证书,除了采用我的解决方案之外,他无能为力。因此他必须在服务器端删除证书验证/要求,以实现该目标。 - Ivan Montilla Miralles

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接