我已经configuration了一个工作openvpn服务器(Ubuntu 10.04)和客户端,没有问题。
我为客户端机器生成证书和密钥文件等。
我们部署了大量的这些通用客户端机器来进行数据采集,每月10到20个月。 VPN的原因是允许我们远程login以进行偶尔的支持和监控。 他们通过其他方式将数据发送回家(不是VPN)
我正在考虑使客户端configuration文件通用,并在所有部署的机器上使用它们(服务器端的“duplicate-cn”选项)。
我的推理是这样的:
主要缺点似乎是:
客户端机器安装在“不受信任”的站点上,也就是说,我不能保证他们的财务安全。
所以我的问题是…在这种情况下可能发生的最坏的事情是什么? 如果一台机器直接受到攻击,最坏的情况就是打开一个VPN隧道(无论如何都是自动进行的),但是除此之外无法实现。 一旦检测到,我们可以在防火墙级别阻止该IP。
我的思维过程是正确的吗?还是我错过了什么?
编辑:
我也许应该说,客户端机器是无头的(没有video/键盘),不能直接被客户端访问(尽pipe你不能直接保证!)。 这是一个机器2机器(M2M)环境。 这些不是(例如)由销售人员携带的笔记本电脑。
不要, 不要这样做。 你完全打败了基于证书的authentication的每一个目的。
你在做什么破坏可识别性
如果每个人都有相同的密钥对,则不能告诉另一台机器。
你在做什么破坏安全。
如果每个人都有相同的密钥对,并且私钥遭到破坏,那么您的所有系统连接都会受到影响,并且每个人的密钥对都需要更改。
你在做什么破坏安全(再次)。
如果每个人都使用相同的密钥对,则不能通过吊销证书来吊销单个实体的访问权限。
这可能现在看起来并不重要,但有一天你需要删除某人的访问权限。 你能确定他们没有保存私钥的副本吗? (提示:不 – 所以现在你必须再次改变每个人的关键。)
安全不应该是方便的,并不迎合懒惰。 如果您希望获得公钥authentication的附加好处,您需要愿意承担正确pipe理密钥的(轻微的)额外负担。
如果你不需要额外的工作量,那么按照DrGkill的build议做,并简单地configuration预共享密钥(每个参与者一个 – 通用预共享密钥具有上面列出的通用证书的所有相同问题…)。
这是一件坏事,证书是用来识别人的,所以对一群人使用一个证书是没有意义的。 你可以简单地使用预共享密钥来configuration你的openvpn服务器,这更容易维护。
现在,设想通用私钥已被泄露。 这意味着你必须撤销它,并给所有用户安装新的证书/密钥。 你会使很多不快乐的人使你的系统无效。 再加上你可能不知道谁输了钥匙。