前言

CSF(ConfigServer Security & Firewall)是一款专为 Linux 服务器设计的强大防火墙解决方案,能够有效阻止来自互联网的恶意访问。本文将详细介绍如何在 Debian 12 服务器上安装和配置 CSF 防火墙,帮助您构建安全可靠的服务器环境。

注意:CSF 的原始开发团队已于 2025 年 8 月宣布停止维护该项目,并推荐用户迁移至其分支项目 Sentinel Firewall。但截至本文撰写时,CSF 仍可正常安装使用,现有用户也可继续使用。

Debian12安装CSF防火墙教程

前置条件

在开始安装之前,请确保满足以下条件:

  • 已安装 Debian 12 操作系统的服务器(本地或云端均可)
  • 拥有 root 权限或具备 sudo 权限的普通用户账号
  • 服务器可正常连接互联网

第一步:准备系统环境

首先,使用 apt 包管理器更新系统软件包列表,确保所有软件包均为最新版本:

更新Debian12软件包仓库
apt update && apt upgrade -y

接下来安装 CSF 所需的依赖包,包括 Perl 模块和各类工具:

安装CSF防火墙依赖包
apt install -y libwww-perl libgd-graph-perl libio-socket-ssl-perl \
  libnet-libidn-perl unzip wget curl iptables perl

第二步:下载并安装 CSF

切换到 /usr/src 目录,下载 CSF 安装包并解压安装:

下载安装CSF防火墙
cd /usr/src
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh
CSF安装完成

安装完成后,运行测试脚本检查系统是否满足 CSF 的运行要求:

测试CSF运行环境
perl /usr/local/csf/bin/csftest.pl

查看 CSF 当前版本:

查看CSF版本信息
csf -v

第三步:配置 CSF 防火墙

CSF 的主配置文件位于 /etc/csf/csf.conf。使用文本编辑器(如 nano 或 vim)打开该文件进行配置:

nano /etc/csf/csf.conf

3.1 配置允许的 TCP/UDP 端口

在配置文件中,找到以下参数,根据实际需要开放入站和出站端口。常见端口说明:22(SSH)、80(HTTP)、443(HTTPS)、25(SMTP)、110(POP3)、143(IMAP)等。

配置CSF允许的TCP UDP端口
# 允许入站 TCP 端口
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"

# 允许出站 TCP 端口
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"

# 允许入站 UDP 端口
UDP_IN = "20,21,53"

# 允许出站 UDP 端口
UDP_OUT = "20,21,53,113,123"

3.2 关闭测试模式

默认情况下,CSF 以测试模式(TESTING = "1")运行,防火墙规则不会生效。配置完成后,需将其改为 TESTING = "0"

关闭CSF测试模式
TESTING = "0"

第四步:配置 Ping 规则

默认情况下,CSF 会阻止 ICMP(Ping)请求。如果需要允许服务器响应 ping,可修改以下参数:

CSF配置允许Ping
# 允许 ping 入站(0=允许,1=拒绝)
ICMP_IN = "1"
# ping 速率限制:每秒最多 1 个包
ICMP_IN_LIMIT = "1/s"

第五步:SYN Flood 洪水防护

SYN Flood 是一种常见的 DDoS 攻击方式,CSF 提供了内置防护机制。在配置文件中找到以下参数进行配置:

CSF配置SYN Flood防护
# 启用 SYN Flood 防护
SYNFLOOD = "1"
# 速率限制(每秒允许的连接数/触发封锁阈值)
SYNFLOOD_RATE = "100/s"
SYNFLOOD_BURST = "150"

第六步:限制并发连接数

通过限制单个 IP 对特定端口的最大并发连接数,可以有效防止扫描攻击和暴力破解:

CSF限制并发连接数
# 格式:端口;最大连接数,多组用逗号分隔
CONNLIMIT = "22;5,80;50,443;50"

以上配置表示:SSH(22 端口)每个 IP 最多 5 个并发连接,HTTP/HTTPS 最多 50 个。

第七步:验证配置并启动 CSF

保存配置文件后,运行以下命令检查配置语法是否正确:

验证CSF配置文件
csf -x   # 先停用 CSF
csf -e   # 再启用 CSF(同时检查配置)

查看 CSF 服务运行状态:

查看CSF服务运行状态
systemctl status csf

查看 LFD(Login Failure Daemon)守护进程状态:

查看LFD守护进程状态
systemctl status lfd

第八步:通过 IP 封锁列表屏蔽恶意 IP

8.1 启用 IP 黑名单封锁

CSF 支持订阅公共 IP 黑名单,自动封锁已知恶意 IP 地址。编辑 /etc/csf/csf.blocklists 文件,取消相关注释即可启用:

CSF启用IP黑名单封锁
# 启用 Spamhaus DROP 列表
SPAMDROP|86400|0|https://www.spamhaus.org/drop/drop.lasso

# 启用 Emerging Threats 封锁列表
ET|86400|0|https://rules.emergingthreats.net/fwrules/emerging-Block-IPs.txt

修改后重载 CSF 使配置生效:

重载CSF配置
csf -r

8.2 基于 GeoIP 封锁特定国家/地区

CSF 还支持通过 GeoIP 数据库封锁或仅允许特定国家/地区的访问。在 csf.conf 中配置:

# 封锁指定国家(使用 ISO 两位国家代码,逗号分隔)
CC_DENY = "CN,RU,KP"

# 仅允许指定国家访问(留空则不限制)
CC_ALLOW = ""

第九步:启用 CSF Web 管理界面

CSF 提供了一个基于 Web 的管理界面,方便通过浏览器管理防火墙规则。在 csf.conf 中找到并修改以下参数:

UI = "1"
UI_PORT = "6666"
UI_USER = "admin"
UI_PASS = "your_secure_password"

保存后重启 CSF,即可通过 https://服务器IP:6666 访问管理界面:

CSF Web管理界面登录页 CSF Web管理界面控制台

第十步:IP 白名单管理

将可信 IP 地址加入白名单,可以防止误封自己的管理 IP。编辑 /etc/csf/csf.allow 文件:

CSF IP白名单管理
# 将管理员 IP 加入白名单(每行一个 IP 或 CIDR 段)
192.168.1.100
10.0.0.0/8

或者通过命令行快速添加:

csf -a 192.168.1.100 "管理员IP - 永久白名单"

总结

本文详细介绍了在 Debian 12 服务器上安装和配置 CSF 防火墙的完整流程,涵盖系统准备、软件安装、端口配置、SYN Flood 防护、并发连接限制、IP 黑名单、GeoIP 封锁以及 Web 管理界面等核心功能。

通过合理配置 CSF,您的服务器可以有效抵御常见的网络攻击。立海世纪(www.leehay.com)建议在生产环境部署前,务必先在测试环境验证各项规则,避免因误配置导致服务中断。如需了解更多服务器安全配置方案,欢迎访问立海世纪官网获取专业支持。