ConfigServer和Security Firewall,简称CSF,是一款专为Linux服务器设计的开源高级防火墙,它不仅提供了防火墙的基本功能,还提供了广泛的附加功能,例如登录/入侵检测、漏洞检查、死亡保护等。
此外,CSF还为cPanel、Webmin、Vesta CP、CyberPanel和DirectAdmin等主流控制面板提供UI集成,用户可以在ConfigServer 的官方网站上找到支持的功能和操作系统的完整列表。
在本文当中,小编将简单介绍在Debian和Ubuntu系统上安装和配置ConfigServer Security & Firewall ( CSF ) 的主要过程。
第 1 步:在Debian和Ubuntu上安装CSF防火墙
首先,在开始安装CSF防火墙之前,需要安装一些依赖项,需要更新包索引:
$ sudo apt update
接下来,安装依赖项,输入以下命令:
$ 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
安装完成之后,就可以进行下一步了。
由于CSF不包含在默认的Debian和Ubuntu存储库中,因此需要手动安装它,可以使用以下wget 命令下载包含所有安装文件的CSF tarball 文件。
$ wget http://download.configserver.com/csf.tgz
这样会下载一个名为csf.tgz的压缩文件。
接下来,解压缩压缩文件。
$ tar -xvzf csf.tgz
这将创建一个名为csf的文件夹。
$ ls -l
接下来,导航到csf文件夹。
$ cd csf
然后通过运行显示的安装脚本来安装CSF防火墙。
$ sudo bash install.sh
如果一切顺利,CSF防火墙就会安装完毕。
此时,CSF已安装。但是,需要验证是否已加载所需的iptables。为此,请运行以下命令:
$ sudo perl /usr/local/csf/bin/csftest.pl
第 2 步:在Debian和Ubuntu上配置CSF防火墙
接下来需要一些额外的配置,首先需要修改一些设置来启用CSF。因此,转到csf.conf配置文件。
$ sudo nano /etc/csf/csf.conf
将TESTING指令从“1”编辑为“0”,如下所示。
TESTING = "0"
接下来,将RESTRICT_SYSLOG指令设置为“3”,以将rsyslog/syslog访问权限仅限于RESTRICT_SYSLOG_GROUP的成员。
RESTRICT_SYSLOG = "3"
下一步就是可以通过定位TCP_IN、TCP_OUT、UDP_IN和UDP_OUT指令来打开TCP和UDP端口。
默认情况下,打开以下端口。
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,587,993,995" UDP_IN = "20,21,53,80,443" UDP_OUT = "20,21,53,113,123"
当然,你可能不需要打开所有这些端口,最好是打开正在使用的端口。因此,小编建议你删除所有不必要的端口,并保留系统上运行的服务正在使用的端口。
完成指定所需端口后,输入以下命令重新加载CSF。
$ sudo csf -r
要列出服务器上定义的所有 IP 表规则,请运行以下命令:
$ sudo csf -l
你也可以在启动时启动并启用CSF防火墙,如下命令:
$ sudo systemctl start csf $ sudo systemctl enable csf
然后确认防火墙确实在运行:
$ sudo systemctl status csf
第 3 步:在CSF防火墙中阻止和允许IP地址
防火墙的关键功能之一是允许或阻止IP地址访问服务器的能力。使用CSF可以通过修改以下配置文件将IP地址列入白名单 ( allow )、黑名单 ( deny ) 或忽略IP地址:
- csf.allow
- csf.deny
- csf.ignore
阻止CSF中的IP地址
要阻止IP地址,只需访问csf.deny配置文件。
$ sudo nano /etc/csf/csf.deny
然后指定要阻止的IP地址,可以逐行指定IP地址,如下所示:
192.168.100.60 192.168.100.70
或者,可以使用CIDR表示法来阻止整个子网。
192.168.100.0/24
在CSF中允许IP地址
要允许IP地址通过Iptables并将其从所有过滤器或块中排除,请编辑csf.allow配置文件。
$ sudo nano /etc/csf/csf.allow
可以为每行列出一个IP地址,或者使用前面演示的CIDR来表示。
注意:即使在csf.deny配置文件中明确了IP地址,如果csf.allow文件也定义了该IP地址,那么该IP也是允许的。因此,要确保IP地址被阻止或列入黑名单,请确保它未在csf.allow文件中出现。
在CSF中排除IP地址
此外,CSF使你能够从IPtables或过滤器中排除IP地址。csf.ignore文件中的任何IP地址都将从 iptables过滤器中排除,只有在csf.deny文件中指定时才能阻止它。
要从过滤器中排除IP地址,请访问csf.ignore文件。
$ sudo nano /etc/csf/csf.ignore
仍然可以逐行列出IP或使用CIDR表示法。
结论
总之,以上就是在Debian/Ubuntu系统安装和配置服务器防火墙(CSF)全部教程,设置过程仅供参考。
其实,在使用Linux系统服务器的时候,安全设置非常重要,有时候设置好防护墙可以有效为系统增加一道安全屏障。