如何在 Debian 11 上安装 CSF 防火墙
在此页
- 先决条件
- 更新您的系统
- 在 Debian 11 上安装 CSF 防火墙
- 在 Debian 11 上配置 CSF 防火墙
- 结论
ConfigServer Firewall (CSF) 是用于Linux 服务器和BSD 系统的防火墙,用于控制入站和出站流量。在我们深入了解 CSF 的具体细节之前,让我们了解什么是防火墙及其工作原理。
防火墙充当保护系统免受外部攻击的屏障。其中一些是状态防火墙、电路级网关、UDP/ICMP 过滤防火墙或应用层过滤器。
防火墙带有一组规则来过滤传入和传出的流量。并且根据您使用的防火墙类型,它决定是否允许某个 IP 访问网络。规则列表是为特定系统定义的,防火墙根据规则过滤流量。
ConfigServer Firewall (CSF) 是 Linux 服务器中使用最广泛的开源防火墙之一。 CSF 附带了一个可用于配置规则的功能列表。因此它非常强大,同时易于使用。
先决条件
为了在 Debian 11 上安装和配置 CSF,您必须拥有:
- 运行 Debian 11 的服务器和您的系统应该连接到互联网。
- 对服务器的根访问权限。
更新您的系统
在安装 ConfigServer Firewall 之前,您应该更新您的系统。运行以下命令以更新您的系统。
sudo apt update
更新完成后,运行以下命令以安装所需的依赖项。
sudo apt install libio-socket-inet6-perl libsocket6-perl -y
sudo apt install sendmail dnsutils unzip libio-socket-ssl-perl -y
sudo apt install libcrypt-ssleay-perl git perl iptables libnet-libidn-perl -y
如果您的系统中安装了以前版本的 CSF,请先运行以下命令将其卸载。由于 Debian 11 使用新版本的 Perl,CSF 安装可能会与现有 CSF 安装发生冲突。
cd /etc/csf && sh uninstall.sh
如果您使用另一个防火墙配置脚本,如 UFW,您应该在继续之前关闭它们。
sudo ufw disable
在 Debian 11 上安装 CSF 防火墙
现在您已经安装了所有必要的先决条件,让我们下载并安装 CSF 防火墙。
Debian 11 存储库不包含 CSF 包。因此,您需要从其官方网站下载最新版本的 ConfigServer 防火墙。
为此,请发出以下命令。
wget http://download.configserver.com/csf.tgz
现在运行下面的命令来提取下载的文件。
sudo tar -xvzf csf.tgz
提取文件后,使用以下命令安装 CSF。
cd csf && sh install.sh
安装完成后,现在应该安装防火墙。要启动 CSF 防火墙,请运行以下命令。
sudo systemctl start csf
运行以下命令以确保一切正常。
perl /usr/local/csf/bin/csftest.pl
您将获得如下所示的输出。此输出确认 CSF 已启动并正在运行。

要使 CSF 防火墙在启动时启动,请运行以下命令。
sudo systemctl enable csf
您可以使用以下命令检查 CSF 的状态。
sudo systemctl status csf
此输出确认 CSF 已启动并正在运行。现在让我们配置这个防火墙。
示例输出:

在 Debian 11 上配置 CSF 防火墙
安装 CSF 防火墙后,默认规则处于活动状态,配置文件 /etc/csf/csf.conf
您应该查看此配置文件以确保它是根据您的需要配置的。在此文件中,您可以看到所有从系统角度来看处于活动状态的默认规则。让我们仔细看看其中的一些。
sudo nano /etc/csf/csf.conf
开放端口的数量越少,系统越安全。但是您应该始终打开一些公共端口。您可以在 csf.conf 文件中看到默认打开的所有端口,如下所示。

正如你在配置文件中看到的,如果你想允许/阻止任何端口,你应该分别添加/删除列表中的端口号。
例如,如果您想阻止端口 80,则应将其从列表中删除,如下所示。

如果您使用的是 IPv6,您还应该在配置文件中更新它,因为现在大多数攻击都是通过 IPv6 协议完成的。您应该像我们上面为 IPv4 端口配置的那样配置 TCP6_IN、TCP6_OUT。
示例输出:

现在让我们配置 CONNLIMIT 设置。 CONNLIMIT 是 CSF 中的一项安全功能,允许您限制特定端口上远程连接的并发数量。这有助于降低 DoS/DDoS 攻击的风险。
例如,如果您想限制任何 IP 的并发连接数不超过 3 个,则应按如下所示更新它。此设置将仅允许端口 22 上的 3 个并发连接和端口 443 上的 3 个并发连接。

接下来,让我们配置 PORTFLOOD 设置。此选项允许我们配置在特定时间范围内端口上允许的最大连接请求数。
例如,如果在 60 秒内使用 TCP 协议在端口 443 上建立了超过 3 个连接,如果您想阻止任何 IP,则应如下所示更新它。自上次连接后 60 秒的时间范围结束后,该块将自动删除。

任何防火墙的最基本功能是阻止和允许 IP 地址。您可以在 csf.deny 文件中手动添加要阻止的 IP 地址,也可以在 csf.deny 文件中添加整个 IP 地址范围。
例如,您可以阻止所有 192.168.1.0/24 IP 范围。
或者
您可以通过将其添加到 csf.deny 文件中来阻止 192.168.2.0 的单个 IP,如下所示。
使用以下命令打开 csf.deny 文件。
sudo nano /etc/csf/csf.deny
将以下行添加到文件底部。一次一行。
192.168.2.0
192.168.1.0/24
示例输出:

完成后,按 CTRL+X、Y 和 Enter 保存并关闭文件。
与 csf.deny 文件相反,csf.allow 文件用于从所有过滤器中排除一个 IP 或 IP 范围。请注意,即使您已经将 IP 添加到 csf.deny 文件,被阻止的 IP 地址仍然可以通过将其添加到 csf.allow 文件来访问您的服务器。
sudo nano /etc/csf/csf.allow
CSF 提供了多种选项来设置您自己的防火墙,这超出了本教程的范围。您可以查阅 ConfigServer 文档以了解设置及其工作方式。
完成所有必需设置的更新后,通过按 CTRL+X、Y 和 Enter 保存并关闭 csf.conf 文件。
CSF 还提供了忽略来自任何过滤器的 IP 地址的功能。与在 csf.allow 文件中允许 IP 地址不同,如果 IP 地址列在 csf.deny 文件中,则您不能忽略它。
sudo nano /etc/csf/csf.ignore
现在您已经配置了 csf.conf 文件中的所有设置,是时候更新规则集以应用更改了。
为此,请运行以下命令。
sudo csf -r
上述命令执行完成后,您将能够看到一条消息,如以下屏幕截图所示。如果没有显示错误消息,恭喜!您的服务器防火墙配置现已更新并可以使用。

结论
在本教程中,您学习了如何在 Debian 11 服务器上安装 ConfigServer Security & Firewall (CSF)。您还学习了如何创建防火墙规则,使用 CSF 配置文件将 IP 添加到允许和阻止列表中。
如果您遇到任何问题,您可以随时参考 ConfigServer 防火墙文档以获取更多信息。