如何在 Debian 11 上安装配置服务器防火墙 (CSF)
Config Server Firewall(或 CSF)是适用于 Linux 的高级防火墙和代理服务器。其主要目的是允许系统管理员控制本地主机和连接的计算机之间的访问。该软件还可以配置为监控网络流量是否存在恶意活动。
它提供了许多功能,例如“防火墙策略”,除了网络地址转换 (NAT) 服务、代理服务、在您自己的 DNS 服务器上缓存 DNS 解析器查询或根本不缓存之外,还允许过滤各种类型的功能。它还支持具有不同权限级别的经过身份验证的用户执行特定任务,例如管理防火墙策略或扩展 NAT 服务。它还有一个很好的“系统记录器”,允许记录系统上发生的各种事件,例如登录、注销、文件修改、添加或任何其他类型的事件。
该软件有多种语言版本,包括英语、葡萄牙语和法语。
该软件的源代码可根据 GNU 通用公共许可证的条款免费获得。
如今,大多数安全产品最常见的攻击媒介是应用程序和配置文件中的漏洞。 CSF 使得此类缺陷难以被利用。如果您计划运行开源业务或使用 Linux 系统作为 Web 应用程序的后端,那么您应该考虑安装 Config Server Firewall (CSF)。
在本文中,我们将展示如何在 Debian Linux 中安装和配置 CSF 服务器。本指南适用于 Debian 版本 10 和 11。阅读完本指南后,您将能够打开基本的 CSF 防火墙和代理服务器。
先决条件
- 本文假设您拥有具有 root 权限的 Debian 10 或 Debian 11 Linux 系统。
- 本指南假设您的服务器上有可用的 Internet 连接。
- 本指南假设您具有 Linux 和命令行的基本知识。
更新您的系统
在安装任何软件包之前,更新系统始终是一个好习惯。让我们运行以下命令来更新系统。
sudo apt update && sudo apt upgrade -y
这些命令将验证存储库中是否有任何可用更新并安装它们。然后需要运行以下命令来安装所需的依赖项。默认情况下不会安装您在此处安装的依赖项。您必须手动安装它们。原因是它们为特定程序提供了附加功能,但并不总是需要的。
sudo apt install wget libio-socket-ssl-perl git perl iptables -y
sudo apt install libnet-libidn-perl libcrypt-ssleay-perl -y
sudo apt install libio-socket-inet6-perl libsocket6-perl sendmail dnsutils unzip - y
示例输出:
在 Debian 11 上安装 CSF 防火墙
现在您已经安装了所有必需的依赖项,您可以在 Debian Linux 中安装 CSF。安装过程非常简单,但让我们逐步完成它。
默认情况下,Debian 存储库不包含 CSF 软件包。要使 CSF 正常工作,您必须手动下载并安装 CSF 软件包。
提取 CSF 存档后,您将拥有一个名为 csf 的新文件夹。 csf 目录包含在 Debian 服务器中安装 CSF 所需的所有文件和安装。
运行 ls -l 命令验证新目录是否已创建。
ls -l
1. 运行 wget http://download.configserver.com/csf.tgz 命令将 CSF 包下载到当前工作目录。
wget http://download.configserver.com/csf.tgz
2. 下载完软件包后,运行 tar -xvzf csf.tgz 命令以将软件包解压到当前工作目录中。 tar 代表磁带存档,是一种创建文件存档的方法。 x 表示提取,v 表示详细操作。 z代表gzip压缩,表示文件被压缩。 f 代表存档文件名,在本例中为 csf.tgz。
tar -xvzf csf.tgz
提取 CSF 存档后,您将拥有一个名为 csf 的新文件夹。 csf 目录包含在 Debian 服务器中安装 CSF 所需的所有文件和安装。
3. 运行ls -l 命令验证新目录是否已创建。
ls -l
4. 进入 csf 目录并运行 sudo bash install.sh 命令以在系统上安装 CSF。
install.sh 是一个安装脚本,它会自动下载最新的 CSF 软件包并将其安装到您的系统上。该脚本为您完成与下载、提取和安装所需依赖项等相关的所有艰苦工作。
安装脚本是一个可执行文本文件,可自动执行系统上程序或软件包的安装过程。该脚本通常会检查需要安装的内容,然后下载并将其安装到您的系统上。这大大减少了您安装和配置事物所花费的时间,并减少了与手动配置事物相关的错误。
cd csf && sudo bash install.sh
安装过程需要几分钟,所以让我们等待它完成。安装完成后,您将得到以下输出。
至此,您已经在 Debian 10 Linux 服务器上正确安装了 CSF。但您应该检查 iptables 模块在您的系统中是否可用。 iptables 用于创建 CSF 规则和防火墙。
5. 运行 sudo perl /usr/local/csf/bin/csftest.pl 命令验证 iptables 模块是否可用。
sudo perl /usr/local/csf/bin/csftest.pl
如果您得到如下所示的输出,那么就可以开始了。
配置 CSF 防火墙策略
现在您已经在 Debian Linux 服务器上安装了 CSF,是时候对其进行配置了。在本节中,我们将介绍如何配置一些基本的 CSF 防火墙策略。
csf.conf 配置文件位于 /etc/csf 目录中,用于定义 CSF 防火墙策略和规则。
1. 运行 sudo nano /etc/csf.conf 命令将打开 csf.conf 配置文件。这将允许您编辑和查看该文件的内容
sudo nano /etc/csf/csf.conf
您需要做的第一件事是配置开放端口。开放端口是您定义用户可以使用哪些端口来访问后端的方式。
向下滚动到“允许传入”和“允许传出”部分以查看所有开放的端口。默认情况下打开最常用的端口。如果您想允许通过其他端口进行连接,您可以通过手动将端口号添加到打开端口列表来打开其他端口。
但请记住,开放的端口越多,您面临的风险就越大。您不希望您的服务器成为坏人的靶子。因此,请始终控制这些打开的端口,不要同时打开太多端口。
2. 默认情况下,TESTING 设置为 1。完成测试后,您应该将其更改为 0,
前
后
3. ConnLimit 指令 CSF 还可以将特定端口的传入连接数限制为给定值。如果您想限制一次同时连接到一个端口的数量,这一点很有用。
例如,22;1;443;10 会将防火墙设置为在给定时间仅允许到端口 22 和 443 的特定连接。该值将端口 22 的同时传入连接的数量限制为每次仅一个,并设置端口 443 的同时传入连接的限制为一次 10 个。
3. PORTFLOOD指令用于指定每个时间间隔应阻止的来自单个IP地址的连续连接尝试的次数。例如,如果从单个 IP 检测到端口 22 上的连续连接尝试超过 3 次,22;tcp;3;3600 会将防火墙设置为阻止连接 60 分钟(3600 秒)。一旦超过 3600 秒,被封锁的 IP 将自动解封。
4. 完成后保存并关闭 csf.conf 配置文件。现在您可以重新加载 SF 防火墙以应用更改。
sudo csf -r
运行 sudo csf -l 命令以验证您的任何更改是否已同步到防火墙。
sudo csf -l
结论
在本文中,我们学习了如何在 Debian Linux 服务器上安装和配置 CSF。 CSF 是一个相对较新的防火墙工具,可让您轻松配置防火墙策略和规则。 CSF 可能不是最好的防火墙解决方案,但对于新的 Linux 防火墙管理员来说,它是一个很好的起点。如果您有任何问题或反馈,请发表评论。