为了运行OpenVPN服务器,我在华硕N66U路由器上使用Shibby的Tomato(64k NVRAM版本)版本。
我很好奇,在允许用户访问之前,是否可以将OpenVPN服务器设置为同时需要证书和用户名/密码。
我注意到在填写证书详细信息时有一个“质询密码”条目,但是每个人都说要“空白”或“不要”。 我不知道为什么,我找不到解释。 另外,我已经谷歌这个问题了一堆,并已经注意到人们谈论OpenVPN的PAM模块,以通过用户名/密码进行身份validation,但似乎是一个/或选项; 换句话说,我可以通过用户名/密码或证书强制authentication。 我想要求两个。
这可能吗? 如果是这样,怎么样?
您正在寻找的OpenVPNfunction将允许服务器根据其证书和凭证对客户端进行身份validation,即auth-user-pass-verify 。 此function允许服务器将远程用户提供的用户名/密码传递给执行身份validation的脚本。 在这一点上,你可以validation凭据对任何你想要的 – PAM,RADIUS,LDAP,烟雾信号等
我对“番茄”固件一无所知,所以我甚至不会试图在这里一步一步地给你。 我做了一些快速search,我怀疑你可以使用OpenVPN的“自定义configuration”选项包括一个auth-user-pass-verify引用。 您需要一个脚本来执行身份validation。
做一些search,我怀疑你会find“番茄”特定的参考。
质询密码是用于允许解密密钥的密码。 这是你真正做到“密码”和钥匙的唯一方法。
你真的只能通过密码或密钥validation,而不是两个。 如果启用了这两种方法,则首先会尝试密钥validation,如果失败,则会回退到密码validation。
没有密钥的密码可以让某人轻易地模仿你的身份,如果他们碰巧抓住了密钥。
我build议找出为什么interwebz说你不应该使用密钥上的密码,看看它是否真的是一个问题。
auth-user-pass-verify是正确的事情。 另外,你可以强制auth-user用户名必须是authenticationCN,你也可以强制openvpn每次只能build立一个连接。
这样一来,“模仿者”必须拥有正确的用户,而不是证书CN和正确的通行证,他必须一次login真正的拥有者
此外,您可以考虑一个IDS,具体取决于您select哪一个,您甚至可以将其缩小到允许的外部IP范围,login时间等。
任何暴露的证书应立即撤销。 签名服务器应该是通过USB网关传输密钥 – 然后你有一个真正的严密的安全访问。
不,你不应该密码证书。
但是,如果你真的想要你可以使用auth-user和cert密码的同时,将不会有后备或东西。
首先,openvpn将使用证书密码来解密私钥来build立连接,然后auth-user将在服务器上启用 – 如果证书是错误的,那么你就不在了。
但是,如果攻击者获得常规证书,则您已经陷入困境,并且机率很高,他也获得了证书密码。
所以在这里我看不到真正的好处,只是很多缺点和错误的安全感。
我遵循这个教程(与我的华硕N66U TomatoUSB Shibby 1.28): http ://www.dd-wrt.com/wiki/index.php/OpenVPN这可能会帮助你很多。