在 Ubuntu 上,CSF(ConfigServer Security & Firewall)是一种强大的防火墙管理工具,主要用于增强服务器的安全性。它不仅提供传统的防火墙功能,还集成了许多额外的安全措施和监控功能,适合Linux服务器的管理需求。CSF 在简化配置、防止攻击、保护服务器资源等方面有重要作用,特别是在网站和应用服务器中广泛使用。
在 Ubuntu22.4 上,安装CSF防火墙之后,可以在CyberPanel中启用!
CSF 的主要功能与用途
防火墙管理
CSF 使用 iptables
来管理入站和出站流量的规则设置。管理员可以通过简单的命令添加、修改或删除规则,限制访问某些端口和服务,以防止未授权的访问。
支持设置白名单和黑名单 IP,可以允许或禁止特定 IP 地址的访问,防止来自恶意 IP 的请求。
入侵检测与防护
CSF 包含入侵检测和预防系统(LFD – Login Failure Daemon),会检测并阻止多次登录失败的 IP 地址,防止暴力破解尝试。
可以监控特定服务的登录日志(如 SSH、FTP 等),在检测到恶意行为时立即阻止源 IP。
端口扫描防护
CSF 可以识别并阻止对服务器进行端口扫描的恶意 IP,保护服务器的端口信息不被泄露。
防止 DoS 攻击
CSF 能检测到异常的流量高峰或连接数,可以设置限制并在检测到时自动屏蔽 IP,以减少 DoS(拒绝服务)攻击的影响。
系统安全审查
CSF 包含了一个基本的安全检查工具,可以检查 Ubuntu 系统中可能存在的常见安全漏洞,并提供相关的建议(例如 SSH 是否使用默认端口等)。
电子邮件通知
CSF 可以在服务器检测到异常行为(如多次登录失败、IP 阻止等)时,通过电子邮件发送通知,便于管理员快速响应。
时间控制的规则
支持为防火墙规则设定生效时间。例如,可以在特定时间段阻止或允许访问某些服务,提升安全性和资源利用率。
适用场景
CSF 尤其适合以下应用场景:
- Web服务器和应用服务器:适用于需要保护网站和 API 接口的场景,可以阻止异常请求和恶意流量。
- SSH 安全管理:对于需要通过 SSH 远程管理的服务器,CSF 可以有效阻止暴力破解尝试。
- 限制特定 IP 访问:用于允许或禁止某些国家、地区或特定 IP 地址访问服务器,提升区域化的安全策略。
如何安装 CSF
在 Ubuntu 上安装 CSF 并启用基本配置的步骤如下:
# 安装依赖 sudo apt update sudo apt install -y perl libwww-perl liblwp-protocol-https-perl # 下载 CSF wget https://download.configserver.com/csf.tgz tar -xzf csf.tgz cd csf # 运行安装脚本 sudo bash install.sh # 检查服务器是否兼容 CSF sudo perl /usr/local/csf/bin/csftest.pl
CSF 是一个功能全面且易于配置的防火墙管理工具,适合需要高安全性配置的 Ubuntu 服务器。
安装完成后,可以通过编辑 /etc/csf/csf.conf 文件来配置 CSF,并通过命令 csf -r 重启防火墙使配置生效。
安装 CSF 后,可以通过编辑 /etc/csf/csf.conf 文件对其进行详细配置。以下是一些常见的配置步骤和注意事项:
1.编辑 CSF 配置文件
使用文本编辑器(例如 vim 或 nano)打开 CSF 配置文件:
sudo nano /etc/csf/csf.conf
在文件中,可以找到许多配置选项,下面是一些关键设置:
1.1. 基本设置
测试模式:CSF 安装后默认处于测试模式,防火墙规则不会生效。
在正式使用之前,将 TESTING 设置为 0 以禁用测试模式。
TESTING = "0"
默认开放的入站端口:
TCP_IN:设置允许访问的入站端口(例如 Web 服务器的端口 80 和 443,SSH 的端口 22 等)。
TCP_IN = "22,80,443"
TCP_OUT:设置允许访问的出站端口。
TCP_OUT = "80,443,53"
注意:确保开放的端口包含 SSH 端口,否则可能会导致无法远程连接的问题。
1.2. 允许/禁止的 IP 地址
允许列表(白名单):在 csf.allow 文件中指定可以访问服务器的 IP 地址。
在 csf.conf 中,可以添加多个 IP 地址或 IP 段,用于指定特定的 IP 始终被允许访问:
sudo nano /etc/csf/csf.allow
输入允许的 IP 地址,每行一个,例如:
192.168.1.100
203.0.113.0/24
禁止列表(黑名单):在 csf.deny 文件中指定禁止访问服务器的 IP 地址。
打开文件并添加 IP 地址:
sudo nano /etc/csf/csf.deny
输入禁止的 IP 地址,每行一个:
192.168.1.101
198.51.100.0/24
1.3. 登录失败保护(暴力破解保护)
配置登录失败保护:LF_TRIGGER 和 LF_SSHD 选项用于防止暴力破解尝试。
LF_TRIGGER:触发阻止的失败尝试数。
LF_TRIGGER = "5"
LF_SSHD:SSH 失败登录的触发次数。
bash
复制代码
LF_SSHD = "5"
1.4. 防止端口扫描
端口扫描保护:设置端口扫描保护,防止恶意用户探测开放端口。
PS_INTERVAL = "300"
PS_LIMIT = "10"
2. 保存配置并重启 CSF
完成配置后,按 Ctrl + X,然后按 Y 保存并退出文件。
3. 重启 CSF 和 LFD 使配置生效
使用以下命令重新加载 CSF 配置:
sudo csf -r
此外,还可以重启 LFD(Login Failure Daemon)服务:
sudo systemctl restart lfd
4. 检查防火墙状态
查看 CSF 的运行状态,确保规则正确应用:
sudo csf -s # 查看规则状态
sudo csf -l # 显示防火墙状态
5. 验证防火墙是否正常工作
可以使用以下命令检查是否存在错误:
sudo csf -e # 启用防火墙
sudo csf -x # 禁用防火墙(测试时)
通过以上步骤,您可以成功配置并启用 CSF 以保护 Ubuntu 服务器的安全。
CyberPanel 服务器在安装 CSF 后出现 500 错误
通常与防火墙配置不兼容或阻止了关键服务有关。以下是一些常见的解决方法:
1. 检查 CSF 配置并允许必要端口
确保 CSF 中已开放 CyberPanel 需要的端口,例如:
TCP_IN:8090(CyberPanel 控制面板端口)、80、443(HTTP/HTTPS)、21(FTP)、25、465、587(SMTP)、53(DNS)等。
打开 CSF 配置文件:
sudo nano /etc/csf/csf.conf
查找并修改 TCP_IN 和 TCP_OUT,确保包含以上端口。
2. 重启 CSF 和 LFD
在修改配置后,重启 CSF 和 LFD 使更改生效:
sudo csf -r
sudo systemctl restart lfd
3. 检查服务器错误日志
查看 CyberPanel 的错误日志获取具体错误信息:
tail -f /usr/local/lscp/logs/error.log
4. 测试临时禁用 CSF
可以临时禁用 CSF 以确认问题是否来自防火墙:
sudo csf -x
如果禁用后 500 错误消失,说明问题在 CSF 配置中。