Small fixes (#338)

* 详细介绍了如何做到“不给子服开公网”

* 开启防火墙

* 小标题

* 前面得加个Linux
This commit is contained in:
Minimouse48 2024-12-31 19:06:07 +08:00 committed by GitHub
parent 9edcf8643b
commit cf8bf8f744
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 84 additions and 8 deletions

View File

@ -7,7 +7,26 @@ sidebar_position: 8
:::danger[非常危险]
不要不要不要给子服开公网!!!你的玩家只要靠跨服端就可以去到子服,如果你脑子有问题非要给子服开公网......这将会导致很多问题,比如绕过登录服随便登录别人账号,窃取 OP 账号权限等严重时可能会直接导致服务器被提权或后门等。
只要你的子服和代理端都位于同一内网或同一主机上,就尽可能不要给该子服开公网!某些情况下,即使正确配置了代理端,玩家也可以直接通过子服的端口连接至子服。
这将会导致很多问题,比如绕过登录服随便登录别人账号,窃取 OP 账号权限等严重时可能会直接导致服务器被提权或后门等。
<details>
<summary>如何禁用子服的公网</summary>
- 如果你的公网是通过端口映射/内网穿透实现的:
只保留代理端的端口映射/内网穿透隧道,把其他所有子服的端口映射/内网穿透隧道都关闭。
- 如果你的服务器能直接获取公网(典型的比如带独立 IP 的云服务器):
在系统防火墙中禁止该子服服务端可执行文件或该子服对应端口的入站。
- 如果子服与代理端位于不同的局域网只能通过公网互相通信:
- 在代理端和子服所处的两台服务器之间建立 VPN
(此处指虚拟专用网络,是通常用于登录学校内网或企业内网的那种网络,不是科学上网!),让子服和代理端通过 VPN 通信
- 选用有成熟的防止玩家绕过代理端连接子服的方案,如 Velocity + Paper 或 BungeeCord + Spigot/Paper 等
- 因某些原因有独立 IP 又无法开启防火墙:
选用有成熟的防止玩家绕过代理端连接子服的方案,如 Velocity + Paper 或 BungeeCord + Spigot/Paper 等
全部配置完成后,记得自己直接连接子服端口进行测试,如果只有通过代理端端口能够成功进入子服,所有子服都完全无法直接通过其端口连接(提示无法连接至世界、远程主机强行关闭了一个现有的连接、连接被拒绝等),证明配置成功。
</details>
:::

View File

@ -67,9 +67,12 @@ Minecraft 后端服务器一般是不会对 Ping 进行过滤和记录的,这
#### 远程桌面 / SSH爆破
众所周知,只要足够有耐心,就一定能赢得猜数游戏。远程桌面或 SSH 也是如此。由于其并没有针对用户的复杂的验证机制,这导致任何人都可以无限制地试错。所以攻击者可以通过编写脚本等方式制作软件,不断地假设密码登录服务器远控服务,这就是**爆破攻击**,或者叫暴力破解密码。最终当登录成功时,攻击即成功,攻击者将**获得你服务器完全的控制权**。
众所周知,只要足够有耐心,就一定能赢得猜数游戏。远程桌面或 SSH 也是如此。由于其并没有针对用户的复杂的验证机制,这导致任何人都可以无限制地试错。
所以攻击者可以通过编写脚本等方式制作软件,不断地假设密码登录服务器远控服务,这就是**爆破攻击**,或者叫暴力破解密码。最终当登录成功时,攻击即成功,攻击者将**获得你服务器完全的控制权**。
注意由于该服务在电脑上非常常见,所以世界各处经常有攻击者通过扫描 IPv4 地址(扫段攻击,通过对某个 IP 段的所有 IP 逐个检测来找出可以攻击的目标),并通过扫描端口(扫端口,通过对某个 IP 上的所有端口进行检测来找出可以攻击的目标),来找到你的服务器的远控地址,而不需要事先对你的服务器或你本人有任何了解。也就是说,如果你遭遇了这种攻击,不要一味地反思自己是否激怒过他人或和小人有了过节,而是要专注于防范你所遭受的攻击本身。
注意由于该服务在电脑上非常常见,所以世界各处经常有攻击者通过扫描 IPv4 地址(扫段攻击,通过对某个 IP 段的所有 IP 逐个检测来找出可以攻击的目标)
并通过扫描端口(扫端口,通过对某个 IP 上的所有端口进行检测来找出可以攻击的目标),来找到你的服务器的远控地址,
而不需要事先对你的服务器或你本人有任何了解。也就是说,如果你遭遇了这种攻击,不要一味地反思自己是否激怒过他人或和小人有了过节,而是要专注于防范你所遭受的攻击本身。
### 网络层
@ -85,12 +88,66 @@ Minecraft JAVA 服务端采用 TCP 作为通信协议,所以你可能会遭受
### 低调做人,不要惹是生非
在开服圈子里,有大量的攻击并非无故发起。多数时候是因为服主招惹了一些有攻击能力的人,才招致服务器受到攻击。你不是专业的企业家、生意人,你的服务器非常脆弱。我的世界作为世界上销量最高的游戏,其玩家社区非常复杂而混乱。如果你对其做不到非常了解,请务必谨慎对待。
在开服圈子里,有大量的攻击并非无故发起。多数时候是因为服主招惹了一些有攻击能力的人,才招致服务器受到攻击。
你不是专业的企业家、生意人,你的服务器非常脆弱。我的世界作为世界上销量最高的游戏,其玩家社区非常复杂而混乱。如果你对其做不到非常了解,请务必谨慎对待。
1. 遇到对服务器中违规感到愤怒的玩家,不要一味地对他采取强硬态度。尽可能和他私下解决,保证他对处罚结果感到满意,如从轻处罚、删除处罚名单等。遇到不讲理的玩家,虽然其行为本身不合理,但顾客就是上帝,你仍然需要与其协商做出让步,在对方确实执意要破坏服务器时,再对其采取强硬态度来保证自身利益。注意协商成功后不要和其他任何玩家提及此事。
2. 对已付费、已赞助或活跃的玩家放宽违规行为的评判标准,并优先响应其反馈。愿意为服务器花费真金白银或大把时间的玩家通常更在意服务器,他们的体验往往更重要,不仅后期有潜力为服务器带来更多收入和更多玩家,还很有可能在服务器中遭遇负责情绪时采取更极端的行为。你可以在这类玩家违反规定后视其影响对其适当采取宽容态度(睁一只眼闭一只眼),并在他们和其他玩家起冲突时以协调为主,尽可能不对其进行处罚。
3. 千万不要在其他服务器玩家交流平台(比如服务器群)里宣传自己的服务器。如果你的服务器非常缺人,这时突然来人宣传把你的玩家全抢走了,你怎么想?在其他服务器交流平台上宣传自己的服务器往往会被对方的玩家或管理团队视为不正当竞争,这将激怒他们,并导致他们对你的服务器发起攻击。
4. 不要招惹任何人包括任何从事或爱好计算机行业的人和所有mc玩家。请注意很多人嘴上不说自己喜欢攻击他人但是他们会在愤怒的情况下想尽一切方法搞砸你的服务器就像他们和其他人闹矛盾时会起肢体冲突一样。
1. 遇到对服务器中违规感到愤怒的玩家,不要一味地对他采取强硬态度。尽可能和他私下解决,保证他对处罚结果感到满意,如从轻处罚、删除处罚名单等。
遇到不讲理的玩家,虽然其行为本身不合理,但顾客就是上帝,你仍然需要与其协商做出让步,在对方确实执意要破坏服务器时,再对其采取强硬态度来保证自身利益。注意协商成功后不要和其他任何玩家提及此事。
2. 对已付费、已赞助或活跃的玩家放宽违规行为的评判标准,并优先响应其反馈。愿意为服务器花费真金白银或大把时间的玩家通常更在意服务器,他们的体验往往更重要,不仅后期有潜力为服务器带来更多收入和更多玩家,还很有可能在服务器中遭遇负责情绪时采取更极端的行为。
你可以在这类玩家违反规定后视其影响对其适当采取宽容态度(睁一只眼闭一只眼),并在他们和其他玩家起冲突时以协调为主,尽可能不对其进行处罚。
3. 千万不要在其他服务器玩家交流平台(比如服务器群)里宣传自己的服务器。如果你的服务器非常缺人,这时突然来人宣传把你的玩家全抢走了,你怎么想?
在其他服务器交流平台上宣传自己的服务器往往会被对方的玩家或管理团队视为不正当竞争,这将激怒他们,并导致他们对你的服务器发起攻击。
4. 不要招惹任何人包括任何从事或爱好计算机行业的人和所有mc玩家。
请注意,很多人嘴上不说自己喜欢攻击他人,但是他们会在愤怒的情况下想尽一切方法搞砸你的服务器,就像他们和其他人闹矛盾时会起肢体冲突一样。
### 开启防火墙
在笔者与其他服主交流的过程中,发现有一些服主会完全关闭服务器的防火墙,其中一些甚至不在操作系统中运行任何安全软件来替代被关闭的防火墙。
我们常说“安全系统最薄弱的地方在于人”,但是这句话并不是说只要保持高度的警惕和拥有丰富的经验就能防范所有的恶意攻击。
你的服务器上可能存在着大量会自行开启服务的软件。在你没有意识到的情况下,它们很可能被黑客利用,导致你的服务器被攻击。
<details>
<summary>对于一个我的世界服务器来说,至少有以下类型的软件会发布容易被黑客利用的服务:</summary>
- 位于代理服务端后的子服:
如果子服并未禁止玩家绕过代理服务端连接子服、你的服务器配置了登录插件、你只通过登录服验证玩家身份而子服没有登录插件,
那么玩家就可以直接从公网连接子服并开始游戏而无需登录。由于没有登录步骤验证身份,玩家甚至可以直接登录管理员帐号,从而炸服。
而一旦开启了防火墙阻止公网连接子服,玩家就只能通过代理端连接登录服完成登录步骤,从而避免了这一威胁。
- 部分插件或软件的远程管理功能:
有一些软件或服务器插件会默认开启远程管理功能允许管理员通过网页、ssh 等方式管理它,或者你或其他管理员手动开启了它来方便从服务器后台管理服务器。
然而在没有防火墙的情况下,黑客也可以从公网连接这些远程管理服务。如果它们的密码强度不高,甚至是默认密码或无身份认证,黑客就可以通过操控这些软件来攻击服务器
- MySQL 等通过网络连接的数据库:
如果你的 MySQL 等数据库不需要来自其他服务器的连接(也就是说你的数据库和服务端都在同一服务器上),而你又没有为 MySQL 设置高安全系数的身份验证,
在没有防火墙的情况下,黑客就可以通过公网直接连接你的 MySQL窃取或篡改你的重要数据。
- OneBot 服务等对外提供 API 的软件:
如果你的 OneBot 服务等 API 服务不需要来自其他服务器的连接(也就是说你的机器人和框架都在同一服务器上),而你又没有为这些 服务 设置高安全系数的身份验证,
在没有防火墙的情况下,黑客就可以通过公网多直接连接这些 API 来控制这些软件,比如操纵你的机器人发布不实信息或导致其封号
</details>
#### 如何开启
- Windows
- 打开 Windows Defender 防火墙Win + R 输入 `Firewall.cpl`
- 点击侧边栏中的 启用或关闭 Windows Defender 防火墙
- 把专用网络设置和公用网络设置都调成“启用 Windows Defender 防火墙”,
去掉“阻止所有传入连接,包括位于允许列表中的应用”的勾,
勾上如果“Windows Defender 防火墙阻止新应用时通知我”。
- 点击下面的确定
- Linux执行命令 `service iptables start` 开启防火墙
:::tip
Linux 可以通过 `service iptables status` 命令查看 Linux 系统的防火墙开启情况
:::
#### 注意事项
- **开启防火墙后,请检查所有服务器公网服务的放行情况。很多在你关闭防火墙期间新部署的服务都可能没有被防火墙放行。**
- 如果你的服务器不禁 ping记得放行 ICMP 回显请求相关的服务。
### 使用 Velocity / BungeeCord