外观
预防崩服
会有部分不怀好意的人去测试服务器的崩溃漏洞。
别担心,长期保持维护的插件一般不会有崩溃的漏洞,但是我们也要有预防的准备。
分类
下面将列出几种常见的 Minecraft 服务器容易遭受的崩溃类型。
插件类
在服务器上安装了老版本/未发现漏洞的插件可能导致插件因bug自行崩溃,甚至甚至有漏洞被攻击者利用。这类通常需要服主做好相应的措施预防。首先在选用插件时就应注意:
- 初次安装时就尽可能解决 WARN 和 ERROR,实在不行就立刻换插件
- 少用,最好不用停更插件
- 少用,最好不用黑插件
- 尽可能使用用户数多的插件
就算你已经保证选用了可依赖的插件,仍然要对这类问题进行预防。具体预防方面有:
对玩家使用的指令进行限制,最好是通过白名单,仅开放玩家会用到的指令。
将服务器的插件做好隐藏和伪装,尽可能防止攻击者获得服务器所使用的插件。
推荐添加黑名单的指令
黑名单指令
yaml
# WorldEdit exploit
- "//calc"
- "//calculate"
- "//eval"
- "//evaluate"
- "//solve"
- "//asc"
- "//ascend"
- "//desc"
- "//descend"
# HolographicDisplays exploit
- "/hd readtext"
- "/holo readtext"
- "/hologram readtext"
- "/holograms readtext"
- "/holographicdisplays readtext"
# PermissionsEx exploit
- "/pex promote"
- "/pex demote"
- "/promote"
- "/demote"
- "/execute"
# Multiverse exploit
- "/mv ^"
- "/mv help <"
- "/mvhelp <"
- "/$"
# FAWE exploit
- "//to"
- "/to"
运行环境类
这类漏洞基本上很难避免,如log4j,在未发现之前谁也不知道。
服主还是尽可能的多关注网络信息,保证自己能尽快了解到一些漏洞的产生,防止被攻击者钻空子。
发包类/物品类(也称原版漏洞)
提示
防御原版漏洞最好的方法永远是将你的服务端核心更新到最新版
以下解决方案大部分都是为非最新版本提供的,有些特殊的在最新版本也能生效
简单来说,就是向服务器发送一些无法处理/处理缓慢的包。
如经典的Book崩服/告示牌崩服(高版本已修复)
这类如果你是低版本服务器,就需要安装相应的插件进行防御,以下是一些推荐的插件,推荐以下四个插件一起安装
AnarchyExploitFixes(免费)
下载地址,一个 Minecraft 原版漏洞的修复插件 例如非法物品,无效游戏名
提示
该插件会破坏原版的一些特性,比如不可以破坏末地传送门,当然可以关闭
LPX (付费)
购买地址,准确来说,LPX 防御的不是原版漏洞,而是防止攻击者使用特殊的包让 Netty 处理超时(NettyCrashers),虽然不会崩服,但会严重影响玩家游戏体验
这个插件在最新版本依旧有用
Panilla (付费开源)
购买地址(被标为 inactive 是因为换维护者了,还没通知 Spigot),GitHub
Panilla 主要是用于防止服务器上滥用 NBT 和数据包的插件,禁用了一些生存模式下无法获得的东西,修复了一些漏洞,该插件不仅可以预防服务器崩溃,还可预防非法 NBT 导致客户端崩溃
警告
有服主反映说 Panilla 会影响潜影盒中的物品(物品消失),所以在安装到生产服务器前请测试
Surf (免费)
下载地址,Surf 修复了很多 Minecraft 漏洞,同时支持 Folia