云服务器
云服务器防火墙和安全管理
Every KapsuleHost Server ships with a managed firewall that denies inbound traffic by default, plus brute-force protection, a web application firewall and automatic security patching, all controlled…
每台 KapsuleHost 服务器都配备了托管防火墙,默认拒绝入站流量,还包括暴力破解保护、Web 应用防火墙和自动安全补丁,所有这些都可以从 KPanel 的一个页面进行控制。
默认设置经过选择,确保全新服务器在你进行任何操作之前就是安全的。你通常只需要添加自己应用所需的端口。本指南将完整介绍服务器管理页面,因为防火墙是其中一个部分,而其他部分则可以让你根本不需要依赖防火墙。
打开管理页面
- 登录 KPanel。
- 在左侧边栏中单击云服务器,然后单击你的服务器。
- 单击页面顶部操作按钮中的管理。
直接地址是 /cloud-servers/<server-id>/management。该页面的描述为"防火墙、操作系统补丁、fail2ban 和 ModSecurity。更改会通过 SSH 在数秒内生效。"

如果横幅显示"实时应用不可用。更改将保存到下一个预配置运行,但不会立即生效",面板目前无法连接到该服务器。你的设置仍然会被保存,只是还没有被应用。检查服务器是否正在运行且可以访问。
默认防火墙策略
防火墙 (UFW) 部分用一行描述了该策略:"默认拒绝入站。SSH (22) 始终开放。应用栈端口自动开放。在下方添加自定义规则。"
实际上这意味着:
- 除非规则允许,否则互联网上的任何人都无法访问你的服务器。
- 端口 22 始终开放,所以防火墙更改永远不会将你锁定在机器外。
- 你的应用栈所需的端口(如用于 Web 应用的 80 和 443)会为你自动打开。
- 来自服务器的出站流量不受限制。
没有自定义规则时,该部分显示"无自定义规则。默认值:SSH + 应用栈端口。"这是一个健康的状态,而不是缺少配置。
添加自定义规则
当你在默认策略不覆盖的端口上运行某些东西时添加规则:Node 应用在 3000、需要直接访问的数据库在 5432、游戏或媒体服务器在 UDP 端口。
- 打开防火墙 (UFW) 部分。
- 在第一个字段中输入端口号。有效值为 1 到 65535。
- 选择 TCP 或 UDP。
- 选择允许或拒绝。
- 单击添加。
规则出现在列表中,带有允许或拒绝徽章以及端口和协议,例如 3000/tcp。它会通过管理连接在数秒内被推送到服务器。
要删除规则,请单击其行末尾的 X。删除允许规则会立即再次关闭该端口。
将数据库端口暴露到整个互联网是服务器被攻击的最常见方式之一。在允许 3306、5432、6379 或 27017 之前,请问一下连接的东西是否可以通过服务器自己的环回接口或私有网络访问数据库。如果它确实必须从外部可访问,请确保服务本身需要强身份验证和加密。
先添加规则,然后启动服务。在关闭的端口后启动的服务看起来完全破损,与启动失败的服务完全相同,你可能会浪费大量时间在错误的层上调试。
应用栈
应用栈部分告诉平台该服务器运行什么类型的应用,以便加固预设可以针对它进行调整。通过面板安装应用会自动为你设置这一点。
识别的栈包括 WordPress、WooCommerce、Ghost、Nextcloud、GitLab、Mattermost、通用 Web 和无应用栈。该部分的说明是:"加固预设根据你的应用进行调整。从市场安装应用会自动设置这一点。"
该栈影响哪些端口会自动打开以及其他保护的调整方式,在 fail2ban 中最为明显。
fail2ban
fail2ban 监视身份验证尝试并禁止不断失败的地址。它默认开启,页面描述为:"禁止暴力破解 SSH 的 IP。对于 WordPress 网站,还添加了 wp-login.php 保护。"
保持它开启。它是页面上最便宜的单一保护,它的性能成本为零,它将持续的密码猜测尝试背景噪声转变为完全没有。在 WordPress 或 WooCommerce 栈上,它还保护登录表单,这是针对 WordPress 的大多数攻击实际发生的地方。
ModSecurity,Web 应用防火墙
ModSecurity 根据 OWASP 核心规则集检查 HTTP 请求,并标记看起来像攻击的请求。在 KapsuleHost 服务器上,它以检测模式启动:"默认为检测模式的 OWASP 核心规则集。记录可疑流量而不阻止;一旦调整好,在你的服务器内切换到活动模式。"
检测模式是正确的起点。核心规则集非常全面,在真实应用中,某些合法请求会匹配一条规则。以检测模式运行一段时间,阅读日志,找出你自己的流量触发的规则,然后再在服务器内切换到阻止。
不先进行调整就开启阻止会破坏你自己的网站。包含富文本的表单提交、文件上传和具有异常有效负载的 API 客户端是常见的受害者。在切换之前检查你的日志。
操作系统自动补丁
安全更新会为你自动应用。该部分解释了安全网:"安全更新自动应用。快照保护:在每次运行前创建服务器快照,如果服务器在重启后变得不可访问,则自动回滚。"
切换下有两个设置:
- 当需要内核更新时允许自动重启(仅在下方的静默时间内)。 内核更新仅在重启后生效。如果你关闭此选项,内核补丁会被安装但不活跃,直到你自己重启。
- 静默时间窗口 (UTC),一个开始和结束小时。重启只在其中发生。将其设置为你的受众最安静的时间,并记住该字段以 UTC 为单位,而不是你的本地时间。
保持自动补丁开启。绝大多数被攻击的服务器运行的是已发布补丁数周前的软件。带有自动回滚的预补丁快照意味着通常的反对意见(即更新可能会破坏某些东西)已经被处理。
补丁历史和立即运行补丁
补丁历史部分列出每次运行,其状态为 RUNNING、SUCCESS、ROLLED_BACK、FAILED 或 SKIPPED,更新的包数、服务器是否重启以及其开始的时间。
要立即修补而不是等待计划,请单击立即运行补丁。确认内容为:"首先创建快照。除了内核更新需要的短暂重启外,服务器保持在线。"
ROLLED_BACK 条目意味着安全网完成了工作:服务器在重启后没有干净地恢复,所以预补丁快照被还原。请参阅云服务器快照了解这些快照的工作方式。
合理的基线
对于大多数服务器,这是整个安全配置:
| 设置 | 建议 |
|---|---|
| 防火墙 | 开启,默认规则,加上仅你的应用需要的端口 |
| fail2ban | 开启 |
| ModSecurity | 开启,检测模式,直到你阅读了日志 |
| 操作系统自动补丁 | 开启,在静默时间窗口内允许重启 |
| SSH 身份验证 | 密钥,而不是密码 |
最后一行不在此页面上,但比其他所有部分都更重要。请参阅使用 SSH 连接到你的云服务器。
故障排除
"无法加载管理配置。" 面板无法读取此服务器的设置。重新加载,并检查服务器是否存在且已预配置。
"端口必须为 1-65535。" 端口字段接受该范围内的整数。此处不接受范围和服务名称。
我的规则已保存,但未发生任何更改。 查找"实时应用不可用"横幅。如果显示,更改已存储但尚未推送到服务器。
我可以从一个网络访问我的服务,但从另一个网络无法访问。 这通常是你自己的出站防火墙,而不是服务器的。在更改此处的规则之前,从不同的连接进行测试。
补丁运行显示失败。 阅读行上的错误消息。磁盘已满是最常见的原因。释放一些空间并单击立即运行补丁。
合法流量开始被阻止。 如果你将 ModSecurity 切换到阻止模式,请将其改回检测模式,阅读日志,并在重试之前确定规则。
如果防火墙规则拒绝应用,或者你被锁定在你允许的服务外,请发送电子邮件至 support@kapsulehost.com,包括服务器名称、端口和你期望访问它的内容。