在Ubuntu上安装和配置配置服务器防火墙(CSF)的方法

本文涉及的产品
云防火墙,500元 1000GB
简介: 在Ubuntu上安装和配置配置服务器防火墙(CSF)的方法

简介

Config Server Firewall(CSF)是大多数 Linux 发行版和基于 Linux 的 VPS 的免费高级防火墙。除了基本的防火墙功能(过滤数据包)外,CSF 还包括其他安全功能,如登录/入侵/洪水检测。CSF 包括 cPanel、DirectAdmin 和 Webmin 的 UI 集成,但本教程仅涵盖命令行用法。CSF 能够识别许多攻击,如端口扫描、SYN 洪水和对许多服务的登录暴力攻击。它被配置为暂时阻止检测到正在攻击云服务器的客户端。

支持的操作系统和功能的完整列表可以在 ConfigServer 的网站 上找到。

本教程适用于基于 Debian 的 VPS,如 Debian 和 Ubuntu。应以 root 权限执行命令,通过 root 登录,或者如果安装了 sudo,则通过以下命令启动 root shell:

sudo su

注意: 本教程涵盖 IPv4 安全性。在 Linux 中,IPv6 安全性与 IPv4 分开维护。例如,“iptables”仅维护 IPv4 地址的防火墙规则,但它有一个名为“ip6tables”的 IPv6 对应物,可用于维护 IPv6 网络地址的防火墙规则。

如果您的 VPS 配置为 IPv6,请记住使用适当的工具保护您的 IPv4 和 IPv6 网络接口。有关 IPv6 工具的更多信息,请参阅此指南:如何在 Linux VPS 上配置工具以使用 IPv6

特性

Config Server Firewall 为您的 VPS 提供了广泛的保护功能。

登录身份验证失败守护程序:

CSF 定期检查日志中的登录失败尝试,并能够识别大多数未经授权的尝试访问您的云服务器。您可以在配置文件中定义 CSF 执行的期望操作以及尝试次数。

此功能支持以下应用程序:

  • Courier imap、Dovecot、uw-imap、Kerio
  • openSSH
  • cPanel、WHM、Webmail(仅适用于 cPanel 服务器)
  • Pure-ftpd、vsftpd、Proftpd
  • 受密码保护的网页(htpasswd)
  • Mod_security 失败(v1 和 v2)
  • Suhosin 失败
  • Exim SMTP AUTH

除此之外,您还可以使用正则表达式匹配定义自己的登录文件。如果您有一个记录了失败登录但在特定尝试次数后不会阻止用户的应用程序,这可能会有所帮助。

进程跟踪

CSF 可以配置为跟踪进程,以便检测可疑进程或打开的网络端口,并在检测到任何问题时向系统管理员发送电子邮件。这可能有助于您识别并阻止 VPS 上可能存在的利用。

目录监视

目录监视监视 /temp 和其他相关文件夹中的恶意脚本,并在检测到时向系统管理员发送电子邮件。

信使服务

启用此功能允许 CSF 在应用封锁时向客户端发送更多信息的消息。此功能既有利也有弊。一方面,启用它为客户端提供了更多信息,因此在登录失败的情况下可能会减少挫败感。另一方面,这提供了更多信息,可能会使攻击者更容易攻击您的 VPS。

端口洪水保护

此设置可防止端口洪水攻击,如拒绝服务(DoS)攻击。您可以指定每个端口在您喜欢的时间段内允许的连接数量。建议启用此功能,因为它可能防止攻击者迫使您的服务停机。您应注意设置的限制,因为太严格的设置会中断正常客户端的连接。另一方面,过于宽松的设置可能允许攻击者成功进行洪水攻击。

端口敲门

端口敲门允许客户端在没有打开端口的情况下连接服务器。服务器仅在成功的端口敲门序列后才允许客户端连接到主要端口。如果您提供的服务仅供有限的受众使用,您可能会发现这很有用。

连接限制保护

此功能可用于限制来自 IP 地址对每个端口的并发活动连接数。正确配置后,这可能会防止服务器上的滥用,如 DoS 攻击。

端口/IP 地址重定向

CSF 可以配置为将连接重定向到另一个 IP/端口。注意:重定向后,客户端的源地址将是服务器的 IP 地址。这不等同于网络地址转换(NAT)。

UI 集成

除了命令行界面,CSF 还为 cPanel 和 Webmin 提供了 UI 集成。如果您不熟悉 Linux 命令行,您可能会发现此功能有所帮助。

IP 阻止列表

此功能允许 CSF 从您定义的来源自动下载被阻止的 IP 地址列表。

安装 ConfigServer 防火墙

步骤 1:下载

Config Server Firewall 目前不在 Debian 或 Ubuntu 软件仓库中,必须从 ConfigServer 的网站下载。

wget http://download.configserver.com/csf.tgz

这将在当前工作目录中下载 CSF。

步骤 2:解压缩

下载的文件是一个压缩的 tar 包,必须在使用之前解压缩和提取。

tar -xzf csf.tgz

步骤 3:安装

如果您使用其他防火墙配置脚本(如 UFW),应在继续之前禁用它。iptables 规则将自动删除。

可以通过运行以下命令禁用 UFW:

ufw disable

现在是时候执行 CSF 的安装脚本了。

cd csf
sh install.sh

防火墙现在已安装,但您应检查所需的 iptables 模块是否可用。

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

如果没有报告致命错误,防火墙将正常工作。

注意: 如果可能,您的 IP 地址将被添加到白名单中。此外,即使使用自定义端口,SSH 端口也会自动打开。防火墙还配置为启用测试模式,这意味着启动 CSF 后五分钟后 iptables 规则将自动删除。一旦您知道您的配置有效,并且您不会被锁定,应禁用此功能。

基本配置

CSF 可以通过编辑 /etc/csf/csf.conf 文件进行配置:

nano /etc/csf/csf.conf

更改后,可以使用以下命令应用更改:

csf -r

步骤 1:配置端口

对您的 VPS 的访问权限越少,服务器就越安全。但是,并非所有端口都可以关闭,因为客户端必须能够使用您的服务。

默认打开的端口如下:

TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"
TCP_OUT = "20,21,22,25,53,80,110,113,443"
UDP_IN = "20,21,53"
UDP_OUT = "20,21,53,113,123"

使用这些开放端口的服务:

  • 端口 20:FTP 数据传输
  • 端口 21:FTP 控制
  • 端口 22:安全外壳(SSH)
  • 端口 25:简单邮件传输协议(SMTP)
  • 端口 53:域名系统(DNS)
  • 端口 80:超文本传输协议(HTTP)
  • 端口 110:邮局协议 v3(POP3)
  • 端口 113:认证服务/标识协议
  • 端口 123:网络时间协议(NTP)
  • 端口 143:互联网消息访问协议(IMAP)
  • 端口 443:超文本传输协议安全传输层(HTTPS)
  • 端口 465:SSM 的 URL Rendesvous 目录(Cisco)
  • 端口 587:电子邮件消息提交(SMTP)
  • 端口 993:安全的互联网消息访问协议(IMAPS)
  • 端口 995:TLS/SSL 的邮局协议 3(POP3S)

您可能并未使用所有这些服务,因此可以关闭未使用的端口。建议关闭所有端口(从列表中删除端口号),然后添加您需要的端口。

以下是应打开的端口集:

在任何服务器上:

TCP_IN: 22,53
TCP_OUT: 22,53,80,113,443
UPD_IN: 53
UPD_OUT: 53,113,123

Apache:

TCP_IN: 80,443

FTP 服务器:

TCP_IN: 20,21
TCP_OUT: 20,21
UPD_IN: 20,21
UPD_OUT:20,21

邮件服务器:

TCP_IN: 25,110,143,587,993,995
TCP_OUT: 25,110

MySQL 服务器(如果需要远程访问)

TCP_IN: 3306
TCP_OUT: 3306

注意: 如果您的服务使用 IPv6,您还应该类似于配置 IPv4 端口的方式配置 TCP6_IN、TCP6_OUT、UPD6_IN 和 UPD6_OUT。

您可以在 Wikipedia 上找到全面的 TCP 和 UDP 端口列表。您应打开您使用的所有服务的端口。

步骤 2:其他设置

CSF 在其配置文件中提供了大量不同的选项。以下是一些最常用的设置的解释。

ICMP_IN

将 ICMP_IN 设置为 1 允许对服务器进行 ping,设置为 0 则拒绝此类请求。如果您托管任何公共服务,建议允许 ICMP 请求,因为这些请求可用于确定您的服务是否可用。

ICMP_IN_LIMIT

设置在指定时间内允许来自一个 IP 地址的 ICMP(ping)请求的数量。通常不需要更改默认值(1/s)。

DENY_IP_LIMIT

设置 CSF 跟踪的被阻止 IP 地址的数量。建议限制被拒绝的 IP 地址的数量,因为太多的阻止可能会降低服务器性能。

DENY_TEMP_IP_LIMIT

与上述相同,但用于临时 IP 地址阻止。

PACKET_FILTER

过滤无效、不需要和非法数据包。

SYNFLOOD、SUNFLOOD_RATE 和 SYNFLOOD_BURST

这提供了对 SYN 洪水攻击的保护。这会减慢每个连接的初始化,因此只有在知道服务器正在受到攻击时才应启用此功能。

CONNLIMIT

限制端口上的并发活动连接数。

值:

22;5;443;20

将允许端口 22 上的 5 个并发连接,并允许端口 443 上的 20 个并发连接。

PORTFLOOD

限制在特定时间间隔内可以向特定端口建立新连接的连接数量。

值:

22;tcp;5;250

将在 250 秒内使用 TCP 协议在端口 22 上建立超过 5 个连接时阻止 IP 地址。一旦客户端发送到此端口的最后一个数据包后 250 秒已过,将删除阻止。您可以像下面描述的那样通过逗号分隔添加更多端口。

port1;protocol1;connection_count1;time1,port2;protocol2;connection_count2;time2

更多设置

CSF 提供了许多未在本教程中涵盖的设置。默认值通常很好,几乎可以在任何服务器上使用。默认设置已配置为防止大多数洪水攻击、端口扫描和未经授权的访问尝试。

但是,如果您希望更详细地调整配置,请阅读 /etc/csf/csf.conf 中的注释,并根据需要进行编辑。

步骤 3:应用更改

每当您更改 csf.conf 中的设置时,应保存文件并重新启动 CSF 以使更改生效。

完成配置后,通过按 Ctrl + X 关闭文件。当询问是否保存更改时,按 Y 保存更改。

然后,您应通过以下命令重新启动 CSF 以应用更改:

csf -r

如果一切顺利,并且您仍然能够访问服务器,请再次打开配置文件:

nano /etc/csf/csf.conf

并将配置文件开头的 TESTING 设置为 0,如下所示:

TESTING = "0"

保存文件,并使用以下命令应用更改:

csf -r

阻止和允许 IP 地址

防火墙最基本的功能之一是能够阻止某些 IP 地址。您可以通过编辑配置文件 csf.deny、csf.allow 和 csf.ignore 来拒绝(黑名单)、允许(白名单)或忽略 IP 地址。

阻止 IP 地址

如果要阻止 IP 地址或范围,请打开 csf.deny。

nano /etc/csf/csf.deny

被阻止的 IP 地址或范围在 csf.deny 文件中占用一行。如果要阻止 IP 地址 1.2.3.4 以及 IP 范围 2.3..,应向文件添加以下行:

1.2.3.4 2.3.0.0/16

IP 范围使用 CIDR 表示法

允许 IP 地址

如果要排除某个 IP 地址或范围免受所有阻止和过滤,请将其添加到 csf.allow 文件。请注意,即使在 csf.deny 文件中明确阻止了这些 IP 地址,允许的 IP 地址也会被允许。

允许 IP 地址的操作方式与阻止 IP 地址类似。唯一的区别是您应编辑 /etc/csf/csf.allow 而不是 csf.deny。

nano /etc/csf/csf.allow

**忽略 IP 地址


目录
相关文章
|
1天前
|
存储 Ubuntu Linux
关于实体机安装Ubuntu 22.04.3-desktop-amd64遇见的一些问题
【10月更文挑战第5天】本文介绍了Ubuntu安装过程中常见的四个问题及其解决方案,包括分区设置、驱动问题、软件安装问题和启动问题。对于分区,推荐新手选择自动分区,手动分区需了解基本概念。驱动问题可通过安装相应硬件的Linux驱动解决。软件安装问题可更换国内镜像源或修复依赖关系。启动问题则可尝试进入恢复模式修复或根据错误提示信息寻求帮助。
|
4天前
|
存储 Ubuntu
关于实体机安装Ubuntu 22.04.3-desktop-amd64遇见的一些问题
【10月更文挑战第2天】本文详细介绍了在使用 Ubuntu 过程中常见的五个问题及其解决方案:下载镜像文件速度慢或损坏,可更换镜像源或验证哈希值;制作启动盘失败,需检查 U 盘及设置;安装过程中的分区问题,需合理规划分区;安装后的驱动问题,可通过安装官方驱动解决;软件安装和更新问题,需检查仓库配置及依赖关系。
|
20天前
|
存储 Prometheus 监控
在Ubuntu系统上安装与配置Prometheus的步骤
通过以上步骤,您应该已经成功在Ubuntu系统上安装并配置了Prometheus。您现在可以开始使用Prometheus收集和分析您的系统和应用程序的指标数据了。
40 1
|
1月前
|
Ubuntu Oracle 关系型数据库
Oracle VM VirtualBox之Ubuntu 22.04LTS双网卡网络模式配置
这篇文章是关于如何在Oracle VM VirtualBox中配置Ubuntu 22.04LTS虚拟机双网卡网络模式的详细指南,包括VirtualBox网络概述、双网卡网络模式的配置步骤以及Ubuntu系统网络配置。
50 3
|
1月前
|
Ubuntu 开发工具 虚拟化
MacOS系统基于VMware Fusion配置Ubuntu 22.04LTS环境
这篇文章介绍了如何在MacOS系统上使用VMware Fusion虚拟化软件配置Ubuntu 22.04 LTS环境,包括自定义VMware Fusion网段、Ubuntu系统安装、配置root用户登录、设置静态IP地址、修改默认网卡名称、配置PS1变量、设置登录界面为字符界面、修改软件源和进行vim基础优化等步骤。
109 2
|
1月前
|
Ubuntu NoSQL
ubuntu上安装某个程序的符号表和源码包
ubuntu上安装某个程序的符号表和源码包
|
1月前
|
Ubuntu
在树莓派4B上安装ubuntu系统
在树莓派4B上安装ubuntu系统
|
1月前
|
Ubuntu
树莓派 —— ubuntu上通过netplan配置网络
树莓派 —— ubuntu上通过netplan配置网络
|
1月前
|
存储 Ubuntu 网络安全
在Ubuntu系统下通过Caddy实现LXD的安装与部署
通过上述步骤,您可以在Ubuntu系统下通过Caddy实现LXD的安装与部署。这种方法不仅可以提高容器管理的效率,还可以借助Caddy的自动SSL管理功能提升安全性。
20 0
|
2月前
|
安全 Linux 应用服务中间件
在Linux中,包过滤防火墙与代理应用防火墙有什么区别?有哪些相应的产品?
在Linux中,包过滤防火墙与代理应用防火墙有什么区别?有哪些相应的产品?
下一篇
无影云桌面