跳到主要内容

VPS 与独立服务器托管:ConfigServer 安全与防火墙

ConfigServer 安全与防火墙(CSF)是一款适用于 VPS 和独立服务器的防火墙。CSF 并未预装在我们的 VPS 或独立服务器默认镜像中;然而,它是一个非常受欢迎的附加组件,因为它极大简化了如开放或关闭端口等任务。与其费力去弄清 iptables 命令语法,CSF 提供了一个集成于 WHM 的基于 GUI 的操作方式。

客户可以自行安装,也可以请求支持人员帮忙安装。我们也可能建议安装它。虽然我们不提供该应用的详细支持,但在支持服务器时您很可能会遇到它,因此建议对其操作有所了解。


  • 安装
  • 设置
  • 配置
  • 通过 GUI
  • 使用命令行
  • 常用命令
  • 卸载
  • 常见问题
  • 总结

安装

我们可以根据请求安装 CSF。此操作需以 root 身份通过命令行完成。以下命令供您参考,但您应始终检查官方网站以获取最新版本。

cd /usr/local/src/
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh

您将看到 Installation Completed

cd ..
rm -Rfv csf/ csf.tgz

设置

这将安装应用并为 WHM 创建插件,但初始状态为 测试模式。可通过以下步骤禁用测试模式:
禁用测试模式:

  1. 登录 WHM。
  2. 在搜索栏中查找并展开 插件 部分,从列表中选择 ConfigServer Security & Firewall
  3. ConfigServer Security & Firewall 页面,点击 CSF 标签页。
  4. 向下滚动并点击 防火墙配置 按钮。
    测试状态会显示在顶部,如下图所示,可设置为 关闭
    ConfigServer Security and Firewall
    默认情况下,RESTRICT_SYSLOG 选项是禁用的,这将在 CSF 控制面板中显示警告。如图所示,应将其更改为推荐的设置 3。
    ConfigServer Restrict Syslog
  5. 更新后,向下滚动至页面底部,点击“更改”按钮,系统会提示“重启 csf+lfd”,完成启用 CSF 的过程。

随后应禁用 cPHulk,因为其运行可能与 CSF 冲突。此操作应在 WHM > 安全中心 » cPHulk 暴力破解防护 中完成。

配置

默认情况下,初始配置会开放一组标准端口,供 cPanel 及相关服务使用。如果客户做了任何更改,例如将 SSH/SFTP 端口改为非 22 端口,则应更新 CSF 配置以反映这些更改。支持 IP 也可以加入白名单,以避免未来潜在问题。

CSF 配置可以通过两种方式完成:WHM GUI 或命令行。

通过 GUI

如上所述,大多数配置通过 WHM > 插件 » ConfigServer Security & Firewall > CSF 标签页 > csf -- ConfigServer 防火墙部分 > 防火墙配置 完成。

这里详细说明了每个部分的用途和可能的设置。最常访问的部分是设置开放或关闭端口的部分:
ConfigServer Security and Firewall
您可以编辑列表,添加、删除或更改入站和出站端口,端口间用逗号分隔。也可以用冒号指定端口范围,例如 49152:65534。
修改后,使用“更改”按钮更新配置文件,并重启 csf/lfd,如上所述。
此外,IP 地址可以直接在 CSF 标签页中“即时”阻止、解除阻止或加入白名单。您还可以搜索 IP 地址,查看 CSF 是否已阻止该地址。
ConfigServer Quick Actions and Firewall
稍往下,您会看到 启用防火墙禁用防火墙 选项,可用来开启或关闭 CSF 监控。

使用命令行

CSF 的配置文件位于 /etc/csf,可使用您喜欢的编辑工具手动编辑。主要文件包括:

  • csf.conf —— 主配置文件
  • csf.allow —— 始终允许通过防火墙的 IP 列表
  • csf.deny —— 永远不允许通过防火墙的 IP 列表
  • csf.ignore —— lfd 应忽略且检测到时不阻止的 IP 列表

注意: 直接编辑配置文件后,通常需要重新加载 CSF 以应用新设置。可通过 root 用户运行以下命令实现:csf -r

常用命令

许多 CSF 功能可通过命令行完成,无需登录 WHM。以下是一些常用命令。

  • csf -e —— 启用 CSF
  • csf -x —— 禁用 CSF。此命令特别有用,可通过 HAL 命令行运行,帮助我们在 CSF 阻止支持 IP 时访问服务器。
  • csf -s —— 启动防火墙规则
  • csf -f —— 清空/停止防火墙规则
  • csf -r —— 重启或重新加载防火墙规则
  • csf -a 12.34.56.78 [可选备注] —— 允许 IP 12.34.56.78 并添加至 /etc/csf/csf.allow
  • csf -td 12.34.56.78 [可选备注] —— 将 IP 12.34.56.78 加入临时拒绝列表
  • csf -tr 12.34.56.78 —— 从临时 IP 禁止列表中移除 IP 12.34.56.78
  • csf -tf —— 清空所有临时 IP 条目
  • csf -d 12.34.56.78 [可选备注] —— 拒绝 IP 12.34.56.78 并添加至 /etc/csf/csf.deny
  • csf -dr 12.34.56.78 —— 解除阻止 IP 12.34.56.78 并从 /etc/csf/csf.deny 移除
  • csf -df —— 移除并解除阻止 /etc/csf/csf.deny 中的所有条目
  • csf -g 12.34.56.78 —— 在 iptables 规则中搜索匹配项(例如 IP、CIDR、端口号)
  • csf -t —— 显示当前临时允许和拒绝的 IP 列表及其 TTL 和备注

卸载

如果您想从服务器移除 csf,可使用 root 用户运行以下命令:

cd /etc/csf
sh uninstall.sh

然后您可以重新启用 cPHulk 或安装其他您选择的防火墙。

常见问题

允许(allow)和忽略(ignore)有什么区别?
允许某个 IP 表示该 IP 始终允许通过防火墙。忽略某个 IP 表示即使检测到该 IP(例如多次登录失败),lfd 也不会阻止它。两者都允许 IP 通过,但“允许”更为严格且安全,建议优先使用“允许”。

可以阻止 IP 范围吗?
可以。无论通过 GUI 还是命令行,范围都必须以 CIDR 格式指定。例如,要阻止从 14.215.176.0 到 14.215.176.255 的范围,必须输入 14.215.176.0/24。

总结

ConfigServer 安全与防火墙(CSF)是一种适用于 VPS 和独立服务器的防火墙。本文介绍了 CSF 的定义及其安装方法,进一步说明了如何配置 CSF 及使用其各种功能。最后,文章讲解了如何排查问题和卸载 CSF。需要注意的关键点包括:CSF 默认未安装,可由客户自行安装或由 Bluehost 支持安装。安装 CSF 后,建议禁用 cPHulk。