Open ApliNi opened 1 year ago
尝试以最低的成本解决部分网络攻击.
使用流量转发代理, 比如FRP(推荐)等内网穿透服务. 购买FRP服务商的非免费服务, 尽可能使用最多的节点且不重复. 发现攻击时关闭源服务器的端口并更换IP地址, 即使攻击影响了几个FRP节点, 也不会影响业务.
FRP支持Proxy Protocol(代理协议), 可以向源服务器发送客户端的IP地址. 搜索proxy_protocol_version. 不过需要服务端安装用于支持代理协议的插件, 如HAProxyDetector.
proxy_protocol_version
HAProxyDetector
127.0.0.1
对于非开放服务器可使用白名单解决, 同时请勿公开白名单中的玩家, 使用定时任务清理白名单中的旧账户防止被利用.
spigot.yml > settings.sample-count: 0
继承上方离线服务器的方案 正版服务器处理玩家登录时会向正版验证服务器的API发送NAME转UUID等请求, 此API对于每个IP地址有使用限制(每10分钟只能调用600次), 当遇到每10分钟超过600个假人的攻击时将会影响业务. 对此我没有一个好的方法, 对于非分布式的假人压测可以通过屏蔽IP段或通过IP归属地插件屏蔽地区来解决(屏蔽单个IP通常效果不好). 计划: 通过一个前置的代理服务器离线验证用户名(是否在白名单中), 对1分钟内使用超过2个用户名正版验证失败的IP进行屏蔽. 待补充....
安装反作弊插件可以解决大部分客户端作弊模组造成的漏洞利用和资源消耗. 建议所有服务器安装反作弊插件(非验证客户端模组类型的反作弊), 可以使用非常宽松以及没有请出玩家功能的配置. 安装漏洞修复插件以及保留Paper类服务端的默认反作弊配置可以解决大部分服务端的漏洞利用. 安装指令白名单插件, 防止客户端通过指令补全和信息指令了解服务器的插件. 及时更新插件, 通过Github, Spigot等开发者发布插件的地方下载, 而不是古老的搬运帖. 尽可能使用经常更新且使用人数多的开源插件, 并尽可能的防止插件向玩家显示版本号一类信息. 尽可能要求定制的插件开源并发布到MC论坛, 除非了解定制插件的开发者.
大部分服务器会开放多个端口以添加更多功能或方便管理服务器, 而这一部分的攻击和漏洞利用应该不占少数.
25565, 3306, 3389, 5900, 445, 20, 21, 22, 1080, 8080, 8888
服务器不仅要注意网络和应用层的攻击, 还要注意玩家(内鬼)带来更多攻击.
恶意宣传服务器到其他服务器群, 恶意宣传的成本很低并且途径很多, 能对服务器和服务器的交流群造成破坏.
记录: 开几个 (或者买几个) qq号, 添加一堆服务器群, 藏几天然后发一大堆宣传链接和文字即可 并且受害方说不清, 如果再整几个假服务器做视频发网上, 服务器差不多就没了 不仅会有人来破坏服务器群, 还会有人直接破坏服务器 不需要去添加那些高门槛的服务器群, 因为那里面的人不容易整事
记录:
开几个 (或者买几个) qq号, 添加一堆服务器群, 藏几天然后发一大堆宣传链接和文字即可 并且受害方说不清, 如果再整几个假服务器做视频发网上, 服务器差不多就没了 不仅会有人来破坏服务器群, 还会有人直接破坏服务器 不需要去添加那些高门槛的服务器群, 因为那里面的人不容易整事
一个比较简单的方法是准备严格的白名单审核机制和与内群完全隔离的外群(审核群). 大部分情况会做这些破坏的人没有很多耐心. 但可能大部分受害的是开放的服务器, 对此我没有经验, 此部分等待补充...
尝试以最低的成本解决部分网络攻击.
对于 DDOS 等网络层的攻击
使用流量转发代理, 比如FRP(推荐)等内网穿透服务. 购买FRP服务商的非免费服务, 尽可能使用最多的节点且不重复. 发现攻击时关闭源服务器的端口并更换IP地址, 即使攻击影响了几个FRP节点, 也不会影响业务.
从代理中获取访问者IP地址
FRP支持Proxy Protocol(代理协议), 可以向源服务器发送客户端的IP地址. 搜索
proxy_protocol_version
. 不过需要服务端安装用于支持代理协议的插件, 如HAProxyDetector
.误区
127.0.0.1
.对于 假人/MOTD-PING 等应用层的攻击 (离线服务器)
对于非开放服务器可使用白名单解决, 同时请勿公开白名单中的玩家, 使用定时任务清理白名单中的旧账户防止被利用.
方案
spigot.yml > settings.sample-count: 0
.对于 API调用次数消耗 等应用层的攻击 (在线服务器)
继承上方离线服务器的方案 正版服务器处理玩家登录时会向正版验证服务器的API发送NAME转UUID等请求, 此API对于每个IP地址有使用限制(每10分钟只能调用600次), 当遇到每10分钟超过600个假人的攻击时将会影响业务. 对此我没有一个好的方法, 对于非分布式的假人压测可以通过屏蔽IP段或通过IP归属地插件屏蔽地区来解决(屏蔽单个IP通常效果不好). 计划: 通过一个前置的代理服务器离线验证用户名(是否在白名单中), 对1分钟内使用超过2个用户名正版验证失败的IP进行屏蔽. 待补充....
对于游戏内部的攻击
安装反作弊插件可以解决大部分客户端作弊模组造成的漏洞利用和资源消耗. 建议所有服务器安装反作弊插件(非验证客户端模组类型的反作弊), 可以使用非常宽松以及没有请出玩家功能的配置. 安装漏洞修复插件以及保留Paper类服务端的默认反作弊配置可以解决大部分服务端的漏洞利用. 安装指令白名单插件, 防止客户端通过指令补全和信息指令了解服务器的插件. 及时更新插件, 通过Github, Spigot等开发者发布插件的地方下载, 而不是古老的搬运帖. 尽可能使用经常更新且使用人数多的开源插件, 并尽可能的防止插件向玩家显示版本号一类信息. 尽可能要求定制的插件开源并发布到MC论坛, 除非了解定制插件的开发者.
对于系统
对于主机中其他服务的防攻击
大部分服务器会开放多个端口以添加更多功能或方便管理服务器, 而这一部分的攻击和漏洞利用应该不占少数.
25565, 3306, 3389, 5900, 445, 20, 21, 22, 1080, 8080, 8888
等. 方案: 更改端口, 使用高强度密码(即使是将密码复制一遍用来添加长度).对于玩家
服务器不仅要注意网络和应用层的攻击, 还要注意玩家(内鬼)带来更多攻击.
恶意宣传
恶意宣传服务器到其他服务器群, 恶意宣传的成本很低并且途径很多, 能对服务器和服务器的交流群造成破坏.
一个比较简单的方法是准备严格的白名单审核机制和与内群完全隔离的外群(审核群). 大部分情况会做这些破坏的人没有很多耐心. 但可能大部分受害的是开放的服务器, 对此我没有经验, 此部分等待补充...