如何在Ubuntu上安装和配置配置服务器防火墙(CSF)

介绍

配置服务器防火墙(或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工具的更多信息,请参阅本指南: 如何配置工具使用IPv6在Linux VPS

特征

配置服务器防火墙为您的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 /端口。注意:重定向后,客户端的源地址将是服务器的IP地址。这不等同于网络地址转换(NAT)。 UI集成 除了命令行界面,CSF还为cPanel和Webmin提供UI集成。如果您不熟悉Linux命令行,您可能会发现此功能有帮助。 IP块列表 此功能允许CSF从您定义的源自动下载阻止的IP地址的列表。

安装ConfigServer防火墙

第1步:下载

Config Server Firewall目前在Debian或Ubuntu存储库中不可用,必须从ConfigServer的网站下载。
wget http://www.configserver.com/free/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端口已自动打开,即使它使用自定义端口。防火墙还配置为启用测试模式,这意味着iptables规则将在启动CSF后5分钟自动删除。这应该被禁用,一旦你知道你的配置工作,你不会被锁定。

基本配置

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:Internet消息访问协议(IMAP)
  • 端口443:通过SSL / TLS(HTTPS)的超文本传输协议
  • 端口465:SSM的Cisco Rendesvous目录(Cisco)
  • 端口587:电子邮件提交(SMTP)
  • 端口993:通过SSL的Internet消息访问协议(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作为您的服务,您还应该配置TCP6_IN,TCP6_OUT,UPD6_IN和UPD6_OUT类似于IPv4端口之前配置。 你可以找到对TCP和UDP端口的完整列表 维基百科 。您应该打开您使用的所有服务的端口。

第2步:其他设置

CSF在其配置文件中提供了大量不同的选项。下面介绍一些最常用的设置。 ICMP_IN设置ICMP_IN 1平允许您的服务器和0都拒绝这样的请求。如果您承载任何公共服务,建议允许ICMP请求,因为这些可以用于确定您的服务是否可用。 ICMP_IN_LIMIT设置从一个IP地址允许在指定的时间量内的ICMP(平)的请求的数量。通常不需要更改默认值(1 / s) DENY_IP_LIMIT设置阻止的IP地址的数量CSF跟踪。建议限制拒绝IP地址的数量,因为过多的块可能会降低服务器性能。 DENY_TEMP_IP_LIMIT与上述相同,但对于暂时的IP地址块。 PACKET_FILTER过滤无效的,不必要的和非法的数据包。 握手溢出,SUNFLOOD_RATE和SYNFLOOD_BURST这提供保护,防止SYN Flood攻击。这会减慢每个连接的初始化,因此只有在您知道您的服务器受到攻击时,才应启用此项。 CONNLIMIT限制端口并发活动连接的数目。 值:
22;5;443;20
将允许端口22上的5个并发连接和端口443上的20个并发连接。 PORTFLOOD限制每个时间间隔新连接到特定端口进行连接的数量。 值:
22;tcp;5;250
将限制阻止IP地址,如果在250秒内使用TCP协议在端口22上建立了超过5个连接。在客户端发送到该端口的最后一个数据包经过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文件中。请注意,允许的IP地址是允许的,即使他们在csf.deny文件中被明确阻止。 允许IP地址的工作方式类似于阻止它们。唯一的区别是,您应该编辑/etc/csf/csf.allow而不是csf.deny。
nano /etc/csf/csf.allow
忽略IP地址 CSF还提供从防火墙过滤器中排除IP地址的能力。 csf.ignore中的IP地址将绕过防火墙过滤器,并且只有在csf.deny文件中列出时才能被阻止。
nano /etc/csf/csf.ignore
为了更改生效,您应该在编辑上述任何文件后使用命令重新启动CSF:
csf -r
文章提交者:Lassi
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏