介绍
配置服务器防火墙(或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
安装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,123Apache:
TCP_IN: 80,443FTP服务器:
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,110MySQL服务器(如果需要远程访问)
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/16IP范围使用代表 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