我有一个关于IP欺骗和身份validation的问题。 我有一个TUN模式的OpenVPN服务器,在同一个VPNnetworking中有许多不受信任的客户端,我想知道是否有一个客户端能够欺骗它的VPN IP地址,以便它可以像另一个客户端一样出现在服务器上。 有什么办法来防止它?
我在想,也许如果:1)我分配静态IP地址的客户端然后2)保存每个客户端的映射IP地址-TLS证书然后3)我可以validation每个传入数据包到服务器,源IP地址和发送该数据包的TLS连接的指纹(或通用名称),并查看它们是否匹配。
有可能,如果是的话,怎么样?
我正在用tls-verify来读取,我可以validation证书A的客户端是否属于10.8.0.4,例如客户端连接到OpenVPN服务器,但是我确定所有源IP地址为10.8.0.4的数据包都属于给证书A的客户? 基本上我想根据他们的IP地址来识别客户端。 有没有脚本来validation这个?
非常感谢您的关注。 我希望我已经清楚了。
为每个客户端指定IP:你有一个特定的程序“客户端configuration目录”把钥匙绑定到一个特定的IP号码。 如果您创buildopenvpn config目录的子目录“ccd”,则可以指定在那里find键/ ip映射文件。 在你的openvpn.conf(或Windows上的.ovpn):
client-config-dir ccd ccd-exclusive
如果您有一个名为“someclient”的密钥的客户端,则可以创build文件ccd / someclient,其内容为:
ifconfig-push 192.168.11.57 192.168.11.58
…这将强制客户端使用192.168.11.57和192.168.11.58之间的隧道(.57是客户端的IP)。 为每个客户端创build一个新文件,并使用有效的启动/端点映射(请参阅openvpn文档中的有效IP对)。
使用此设置,除非具有CCD文件,否则即使具有有效密钥,也不会接受客户端。 每个客户端都会有一个明确的IP分配给他们。 要locking客户端,只需删除相应的CCD文件。
我还没有testing客户端是否有可能欺骗发件人IP,尽pipe我认为由于连接的隧道性质(服务器端的端点不匹配)会很棘手。 这只是一个假设。