如何在 Debian 11 上安装 CSF 防火墙

配置服务器防火墙 (或者 脑脊液) 是免费的和先进的 防火墙 对于大多数 Linux 发行版和基于 Linux 的 VPS。 除了防火墙的基本功能 – 过滤数据包 – CSF 还包括其他安全功能,例如登录/入侵/洪水检测。 CSF 包括 cPanel、DirectAdmin 和 Webmin 的 UI 集成,但本教程仅涵盖命令行使用。 CSF 可以识别多种攻击,例如端口扫描、SYN 泛洪以及对许多服务的登录暴力攻击。 它被配置为临时阻止被检测到正在攻击云服务器的客户端。
在本指南中,我们将引导您完成 在 Debian 11 服务器上安装和配置 ConfigServer Security & Firewall (CSF).

在 Debian 11 上安装 CSF 防火墙

在安装 ConfigServer Firewall 之前,您应该更新您的系统。 运行以下命令来更新您的系统。

$ sudo apt update -y

更新完成后,运行以下命令安装所需的依赖项。

$ sudo apt install wget libio-socket-ssl-perl git perl iptables libnet-libidn-perl libcrypt-ssleay-perl  libio-socket-inet6-perl libsocket6-perl sendmail dnsutils unzip -y

有了这个,您现在可以继续下一步。
自脑脊液 不包含在默认的 Debian 和 Ubuntu 存储库中,您需要手动安装它。 要继续,请下载 脑脊液 tarball 文件,其中包含使用以下 wget 命令的所有安装文件。

$ wget https://download.configserver.com/csf.tgz

现在运行下面的命令来提取下载的文件。

$ tar -xvzf csf.tgz

解压文件后, 安装CSF 使用以下命令。

$ cd csf && sh install.sh

安装完成后,现在应该安装防火墙。 要启动 CSF 防火墙,请运行以下命令。

$ sudo systemctl start csf

运行下面的命令以确保一切正常。

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

您将获得如下所示的输出。 此输出确认 CSF 已启动并正在运行。

[email protected]:~/csf# perl /usr/local/csf/bin/csftest.pl  Testing ip_tables/iptable_filter...OK Testing ipt_LOG...OK Testing ipt_multiport/xt_multiport...OK Testing ipt_REJECT...OK Testing ipt_state/xt_state...OK Testing ipt_limit/xt_limit...OK Testing ipt_recent...OK Testing xt_connlimit...OK Testing ipt_owner/xt_owner...OK Testing iptable_nat/ipt_REDIRECT...OK Testing iptable_nat/ipt_DNAT...OK  RESULT: csf should function on this server 

启用CSF防火墙l 要在启动时启动,请运行以下命令。

$ systemctl enable csf

您可以使用以下命令检查 CSF 的状态。

 systemctl status csf

此输出确认 CSF 已启动并正在运行。 现在让我们配置这个防火墙。

在 Debian 11 上配置 CSF 防火墙

一旦你安装了 CSF防火墙, 默认规则是活动的,它带有一个配置文件 /etc/csf/csf.conf

您应该查看此配置文件以确保它是根据您的需要进行配置的。 在此文件中,您可以看到从系统角度来看所有处于活动状态的默认规则。 让我们仔细看看其中的一些。

nano /etc/csf/csf.conf

开放端口的数量越少,系统就越安全。 但是您应该始终打开一些常用端口。 您可以在 csf.conf 文件中看到默认打开的所有端口,如下所示。

现在让我们配置 限制设置. CONNLIMIT 是 CSF 中的一项安全功能,允许您限制远程连接在特定端口上的并发数。 这有助于降低 DoS/DDoS 攻击的风险。

例如,如果您想限制不超过 3 个并发连接的任何 IP,那么您应该如下所示更新它。 此设置将仅允许端口 22 上的 3 个并发连接和端口 443 上的 3 个并发连接。

接下来,让我们配置 PORTFLOOD 设置. 此选项允许我们配置特定时间范围内端口上允许的最大连接请求数。

例如,如果您想在 60 秒内使用 TCP 协议在端口 443 上建立 3 个以上的连接时阻止任何 IP,则应按如下所示进行更新。 自上次连接以来的 60 秒时间范围结束后,该块将自动删除。

PORTFLOOD 设置

任何防火墙最基本的功能是阻止和允许 IP 地址。 您可以通过手动添加要阻止的 IP 地址 csf.deny 文件,或者您可以在 csf.deny 文件中添加整个 IP 范围。
例如,您可以阻止所有 192.168.1.0/24 IP 范围。
或者
您可以通过将 192.168.2.0 的单个 IP 添加到 csf.deny 文件如下图。
使用以下命令打开 csf.deny 文件。

$ nano /etc/csf/csf.deny

将以下行添加到文件底部。 一次一行。

192.168.2.0 192.168.1.0/24

完成后,保存并 close 通过点击文件 CTRL+X, Y, 和 Enter.

与 csf.deny 文件相反, csf.allow 文件用于从所有过滤器中排除一个 IP 或 IP 范围。 请注意,即使您已经在 csf.deny 文件中添加了一个 IP,被阻止的 IP 地址仍然可以通过将其添加到您的服务器中来访问您的服务器 csf.allow 文件。

$ nano /etc/csf/csf.allow

CSF 提供了多种选项来设置您自己的防火墙,这超出了本教程的范围。 您可以查阅有关设置及其工作方式的 ConfigServer 文档。
完成更新所有必需的设置后,保存并 close csf.conf 文件通过按 CTRL+X、Y 和 Enter.

CSF 还提供从任何过滤器中忽略 IP 地址的功能。 与在 csf.allow 文件中允许 IP 地址不同,如果某个 IP 地址在 csf.deny 文件中列出,则您不能忽略该 IP 地址。

$ nano /etc/csf/csf.ignore

现在您已经配置了 csf.conf 文件中的所有设置,是时候更新规则集以应用更改了。
为此,请运行以下命令。

sudo csf -r

执行完上述命令后,您将能够看到一条消息,如下面的屏幕截图所示。 如果没有显示错误消息,恭喜! 您的服务器的防火墙配置现已更新并可供使用。

结论

我们今天的指南到此结束。 我们希望您现在可以顺利安装和配置 CSF 防火墙。