域名私钥[1]
一段时间以前,Minecraft 经常会出现登录相关的问题。2010 至 2013 年间,这些漏洞曾五次被披露,也导致了成千上万的服务器遭到入侵。
加入 WorldGuard 插件中的域名私钥功能就是针对该类问题的。在玩家进入时,一段私密信息会被发送给服务器。即便是能够破解 Minecraft 登录系统的攻击者并以管理员身份登入游戏,插件也能以此鉴别身份冒用者,因为冒用者加入时缺少了这一段验证信息。
提示
专用于修复身份冒用漏洞的插件现在已经很少见了。
运作原理
当玩家通过诸如 play.example.com
的域名连接时,Minecraft 就会尝试告诉服务器,玩家通过这个地址加入了游戏。而管理员可以通过诸如 secretmod.play.example.com
特殊的隐藏域名进入,服务器即可通过该域名来检查此次登录是否存在身份冒用。
域名私钥功能允许你配置指定玩家能够登录的域名。如果列表上的玩家通过一个不正确的域名进入了服务器,该玩家就会立即被请出。
配置文件
该模块的部署通过全局配置完成:
host-keys:
your_username: bagels.play.example.com
moderator1_name: manoverboard.play.example.com
提示
域名私钥支持通过 UUID 限制,且我们推荐通过 UUID 限制玩家所能登入的域名,这样就可以允许他们修改自己的用户名。
DNS 设置
若要让此项工作,你需要创建一个 bagels.play.example.com
和 manoverboard.play.example.com
节点连接至你的服务器。你不应该为这些域名添加你使用的指定 srv 记录,这可以让攻击者很容易地找出你的秘密域名。
另外,我们更建议你设置“随机地址”。一个随机地址的示例可能是 *.play.example.com
,这意味着任意前缀都可以让其正常生效(例如 aa.play.example.com
、ab.play.example.com
、ac.play.example.com
等。)
提示
如果你没有域名或不能设置随机域名,那么你可可以试试 sslip.io 提供的转发服务。
其他方法
如果不想使用域名私钥,你可以使用其他插件提供的验证方式,至少 WorldGuard 本身没有除此之外的登录验证方式了。
目前大部分服务器均使用 Authme 等登录插件,阅读该章节没有很大必要。 ↩︎