![如何使用带有身份验证令牌的 openvpn 守护进程](https://linux22.com/image/1418341/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E5%B8%A6%E6%9C%89%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E4%BB%A4%E7%89%8C%E7%9A%84%20openvpn%20%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B.png)
我们最近开始在生产环境中使用 openvpn。我们这里也使用几种操作系统(Mac、Linux 和 Win)。我想谈谈 Linux。
那些有访问权限的人也有来自 safenet 的令牌:eToken 5100。我有 openvpn 配置文件,该文件设置为使用此令牌,并且一切正常。我开始
sudo openvpn conf.ovpn
然后,我被要求将密码添加到令牌中,我添加它,然后 vpn 启动并工作。
不幸的是,如果我尝试将其作为守护进程启动(通过在配置文件中添加“守护进程”行),它不会要求输入密码,当然也不会因此建立连接。
我们有几个 openvpn 点,我需要经常更改它们(我知道我可以同时拥有更多 openvpn 连接,但所有测试环境都有相同的 IP 子网,所以我不能同时连接到多个)
有没有办法将 openvpn 与 safenet 令牌一起用作守护进程?(如果我这样做,我将能够轻松创建脚本来更改 openvpn 服务器)
注意:在 Win 和 Mac OS 中,safenet token 都是通过 GUI 要求输入密码的,所以即使它作为守护进程启动,它也会要求输入密码,但在 linux 中则不会。
我的操作系统:Linux Mint 17 x64,SafeNet 身份验证客户端:8.3.40-0 amd64,openvpn:2.3.2-7ubuntu3
openvpn conf文件:
dev tun
persist-tun
persist-key
cipher AES-256-CBC
auth SHA1
tls-client
client
resolv-retry infinite
remote server.name.domain 1194 udp
lport 0
verify-x509-name "server.name.domain" name
ns-cert-type server
comp-lzo
<ca>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</ca>
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
...
-----END OpenVPN Static key V1-----
</tls-auth>
key-direction 1
pkcs11-providers /usr/lib/libeTPkcs11.so
pkcs11-id 'id of cert in token'
答案1
如果你设置
script-security 2
在你的 ovpn(或 conf)文件中,你将可以运行 shell 脚本;然后你可以创建一个使用询问密码显示一个 GUI,允许您输入所需的凭据。
设置 askpass 并不是一件简单的事情;幸运的是,这个非常好的 U&L 答案为您提供所有需要的详细信息。