博客访客专享:额外赠送 3 个月免费使用期 + 三年计划 10% 折扣 YSBLOG10
抢购

如何在 2026 年在 Linux 服务器上创建 CSF 防火墙? – (分步指南)

要在 Linux 服务器上创建 CSF 防火墙安装依赖项,下载 CSF,运行安装程序,编辑 /etc/csf/csf.conf 文件以添加您的配置 SSH 端口并设置 TESTING = “0”,然后启用 CSF 和 LFD。

最后,仅打开所需的 TCP/UDP 端口,并使用 `csf -s` 和 `csftest.pl` 验证内核/模块支持情况。在本指南中,您将学习如何在 Linux 服务器上从零开始创建 CSF 防火墙,安全地配置它,并应用在实际生产系统中使用的最佳实践规则。

我们将介绍安装、必备设置、基本命令、LFD 保护和故障排除——本书面向初学者,但对于经验丰富的管理员来说也足够准确。

什么是 CSF 防火墙?为什么要使用它?

ConfigServer Security & Firewall (CSF) 是一款强大的 Linux 服务器防火墙和安全套件, manageCSF 包含 iptables(或现代发行版上的 iptables-nft),并添加了 LFD(登录失败守护程序)来阻止暴力破解攻击。与 UFW 或原始 iptables 等基本工具相比,CSF 提供更精细的规则、速率限制、警报和面板集成(cPanel、DirectAdmin、Webmin)。

什么是CSF防火墙?为什么要使用它?

主要关键词: Linux 服务器上的 CSF 防火墙自然使用的辅助关键词: 安装 CSFConfigServer 安全与防火墙、Linux 服务器防火墙、LFD。

先决条件和支持的平台

CSF 可在大多数主流 Linux 发行版和 VPS/独立服务器上运行。您需要 root 权限(或 sudo 权限)。 SSH 需要访问权限、静态 IP 地址(推荐)以及 iptables 内核支持(在新系统上使用 iptables-nft 兼容层即可)。始终保留备用控制台(VNC/ILO/带外连接)以避免锁定。

  • 已测试的操作系统系列: AlmaLinux、Rocky Linux、CentOS(已停止维护)、RHEL、Ubuntu、Debian
  • 禁用其他防火墙以防止冲突: firewalld 或 UFW(您需要将其替换为 CSF)
  • 知道你的 SSH 端口(默认 22 或自定义)
  • 请准备好您的应用程序端口(HTTP/HTTPS、邮件、数据库、控制面板等)。

逐步指南:在 Linux 服务器上安装和创建 CSF 防火墙

1)更新系统并安装依赖项

请确保您的服务器已更新至最新版本,并安装了所需的 Perl 模块和工具。

# RHEL/AlmaLinux/Rocky
sudo dnf -y update
sudo dnf -y install perl perl-libwww-perl.noarch perl-LWP-Protocol-https tar wget curl unzip

# Ubuntu/Debian
sudo apt update && sudo apt -y upgrade
sudo apt -y install perl libwww-perl liblwp-protocol-https-perl tar wget curl unzip

2) 停止并禁用 firewalld 或 UFW

CSF manage直接使用 siptables。禁用原生防火墙以避免规则冲突。

# RHEL/AlmaLinux/Rocky (firewalld)
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl mask firewalld

# Ubuntu/Debian (UFW)
sudo ufw disable
sudo systemctl stop ufw
sudo systemctl disable ufw

3) 下载并安装 CSF

获取官方压缩包,解压,然后运行安装程序。

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

验证您的环境:

sudo perl /usr/local/csf/bin/csftest.pl

如果缺少 iptables 模块,请修复内核依赖项或确保 iptables-nft 存在。

4) 准备安全通道:允许 SSH 以及所需端口

在将 CSF 从测试模式中移除之前,请确保您的 SSH /etc/csf/csf.conf 文件中允许端口和必要服务。将 22 替换为您自定义的值。 SSH 端口已更改。

sudo nano /etc/csf/csf.conf

# Adjust these lines (examples):
TCP_IN = "22,80,443"
TCP_OUT = "80,443,53"
UDP_IN = "53"
UDP_OUT = "53,123"
IPV6 = "0"    # Set to "1" if you actively use IPv6
# For email servers add: 25,465,587,110,143,993,995
# For MySQL remote access add: 3306 (use carefully, prefer local only)

(可选)将您的帐户加入白名单 management IP 以防止意外锁定:

sudo csf -a YOUR.IP.ADDR.ESS "Admin workstation"

5) 关闭测试模式并启用脑脊液/脑脊液滤过

CSF 安装时默认启用 TESTING = “1”。仅在安装完成后才将其关闭。 SSH 所需端口已设置。

sudo sed -i 's/^TESTING = .*/TESTING = "0"/' /etc/csf/csf.conf
sudo systemctl enable csf lfd
sudo systemctl start csf lfd

# or explicitly:
sudo csf -e     # enable firewall
sudo csf -r     # reload rules

确认状态和规则加载情况:

sudo csf -s    # show status
sudo csf -l    # list current rules

必要的 CSF 和 LFD 指令

  • 编辑后重新加载规则: 脑脊液-r
  • 快速禁用/启用防火墙: csf -x / csf -e
  • 永久允许IP地址: csf -a IP
  • 临时允许列表(含有效期): csf -ta IP 3600
  • 拒绝/解除IP封锁: csf -d IP / csf -dr IP
  • 检查日志: tail -f /var/log/lfd.log 和 /var/log/messages
  • 卸载(从 csf 文件夹): 卸载脚本

配置 LFD:主动暴力破解保护

LFD 监控身份验证日志,并在检测到重复失败时通过 CSF 触发阻止。关键选项位于 /etc/csf/csf.conf 文件中;请根据您的风险承受能力和工作负载进行调整。

sudo nano /etc/csf/csf.conf

# Popular hardening options (examples):
LF_SSHD = "5"           # SSH failures before block
LF_SSHD_PERM = "1"      # Enable permanent blocks for SSH
CT_LIMIT = "100"        # Connection tracking limit
CT_INTERVAL = "30"      # Check interval in seconds
SYNFLOOD = "1"
SYNFLOOD_RATE = "100/s"
SYNFLOOD_BURST = "150"
PORTFLOOD = "80;tcp;20;10,443;tcp;20;10"  # rate limit HTTP/HTTPS
CC_DENY = ""            # Block countries (use sparingly)
CC_ALLOW = ""           # Allow-only list (restrictive)

调整完成后,重新加载 CSF:

sudo csf -r

为常用协议栈开放端口(示例)

  • Web服务器: 80(HTTP),443(HTTPS)
  • SSH: 22 或您的自定义端口
  • DNS: 53(TCP/UDP)
  • 邮箱: 25,465,587,110,143,993,995
  • 数据库: 3306分(MySQL/MariaDB),5432(PostgreSQL)—— 仅本地部署
  • cPanel/WHM: 2082,2083,2086,2087,2095,2096
  • Plesk: 8443;直接管理:2222;网页分钟: 10000

根据需要编辑 TCP_IN、TCP_OUT、UDP_IN 和 UDP_OUT,然后运行 ​​sudo csf -r 应用更改。仅打开您真正需要的端口。

最佳实践规则和硬化技巧

  • 锁定你的 SSH 请先对管理员 IP 地址进行端口配置并加入白名单,以避免账号被锁定。
  • 保持 TESTING = “1” 直到端口确认,然后切换到 “0”。
  • 使用 PORTFLOOD 和 CT_LIMIT 来限制滥用流量的速率。
  • 启用 SYNFLOOD 以进行基本的 SYN 洪水缓解。
  • 不要过度使用 CC_DENY/CC_ALLOW;这可能会造成维护上的麻烦。
  • 监控 /var/log/lfd.log 中的模式并逐步调整阈值。
  • 在进行重大修改之前,请备份 csf.conf 及相关文件。
  • 在 cPanel/DirectAdmin 环境中,使用 CSF 的 GUI 可以更安全地进行更改。

故障排除和安全恢复

  • 启用 CSF 后被锁定?请使用您的提供商控制台(VNC/ILO)将 TESTING 恢复为“1”或删除冲突规则。
  • 诊断的冲洗规则: 修复后,先执行 csf -x(禁用),然后执行 csf -e。.
  • 使用 csftest.pl 检查模块支持情况,并确保在现代发行版上安装了 iptables-nft。
  • 防火墙冲突:确保 firewalld/UFW 已完全禁用。
  • 特定服务问题:使用 ss -tulpn 验证端口,并确认它们存在于 TCP_IN/UDP_IN 中。

实际案例:最小 Web 服务器策略

这个例子允许 SSHHTTP/HTTPS 和 DNS 分辨率较低,适用于不带邮件功能的基本 Web 服务器。请根据您的实际配置进行调整。

# /etc/csf/csf.conf (excerpt)
TESTING = "0"
TCP_IN = "22,80,443"
TCP_OUT = "80,443,53"
UDP_IN = ""
UDP_OUT = "53,123"
LF_SSHD = "5"
CT_LIMIT = "100"
SYNFLOOD = "1"
PORTFLOOD = "80;tcp;20;10,443;tcp;20;10"

申请并核实:

sudo csf -r
sudo csf -s
curl -I https://yourdomain.tld
sudo tail -f /var/log/lfd.log

CSF 与 UFW/Firewalld(快速概览)

  • UFW/防火墙: iptables/nftables 的接口更简单;适用于基本规则。
  • CSF: 增加了安全层(LFD、速率限制、登录跟踪)、更丰富的自动化功能以及主机面板集成;非常适合生产主机服务器。

需要托管式部署?

如果您更喜欢经过强化、可用于生产环境且具备全天候监控功能的 CSF 配置, YouStable“ managed VPS 和专用服务器均配备安全最佳实践、主动修补和针对您的堆栈量身定制的 CSF/LFD 调优,因此您可以专注于应用程序,而不是防火墙的细节。

常见问题

什么是 CSF?它与普通防火墙有何不同?

CSF(ConfigServer 安全与防火墙) manage它支持 siptables 规则,并添加了 LFD 以实现主动入侵防御。与 UFW/firewalld 不同,CSF 提供登录失败检测、速率限制、警报以及与 cPanel/DirectAdmin/Webmin 的集成——非常适合托管工作负载。

CSF 是否支持 nftables?

是的,在现代发行版中,CSF 通过 iptables-nft 兼容层工作。请确保 iptables-nft 可用,并且 csftest.pl 报告所需的模块。如果 nft 后端存在,则无需使用旧版 iptables。

如何在CSF中打开或关闭端口?

编辑 /etc/csf/csf.conf 文件,并调整 TCP_IN、TCP_OUT、UDP_IN 和 UDP_OUT 的值。例如:将 8080 端口添加到 TCP_IN 以允许入站 Web 应用访问。保存后,运行 sudo csf -r 命令重新加载规则。

如何将某个IP地址加入白名单或屏蔽?

使用 `csf -a IP` 将 IP 地址永久加入允许列表,使用 `csf -ta IP 3600` 将 IP 地址临时加入允许列表,使用 `csf -d IP` 阻止 IP 地址,使用 `csf -dr IP` 移除阻止。您也可以直接编辑 `/etc/csf/csf.allow` 和 `/etc/csf/csf.deny` 文件。

如何避免把自己锁在门外?

在禁用测试模式之前,请添加您的 SSH 将端口设置为 TCP_IN,并使用 csf -a 将管理员 IP 地址加入白名单。准备好控制台(VNC/ILO)。如有需要,可将 TESTING 设置为“1”,以便在初始设置期间自动刷新规则。

分享通过:

桑吉特·乔汉

Sanjeet Chauhan是一位博主兼SEO专家,致力于帮助网站实现自然增长。他分享实用的策略、可操作的技巧和独到的见解,以提升流量、提高排名并最大限度地扩大在线影响力。

发表评论

您的电邮地址不会被公开。 必填项 *

滚动到顶部