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

Config Server Firewall / CSF是Linux服务器的防火墙应用程序套件。 CSF也是用于诸如SSH,SMTP,IMAP,Pop3,“su”命令等应用程序的登录/入侵检测。 CSF可以例如检测有人通过SSH登录到服务器,并在此用户尝试使用服务器上的“su”命令获取更高的权限时发出警报。 它还检查邮件服务器(Exim,IMAP,Dovecot,uw-imap,Kerio),OpenSSH服务器,Ftp服务器(Pure-ftpd,vsftpd,Proftpd),cPanel服务器上的登录身份验证失败,以取代像fail2ban这样的软件。 CSF是托管服务器的良好安全解决方案,可以集成到WHM / cPanel,DirectAdmin和Webmin的用户界面(UI)中。

先决条件

  • CentOS 7(我的服务器使用IP 192.168.1.101)。
  • root权限。

我们将在本教程中做什么:

  • 安装CSF的依赖项。
  • 安装CSF
  • 配置CSF。
  • 基本CSF命令。
  • 高级配置。

第1步 - 安装CFS依赖关系

CSF基于Perl,所以您需要先在我们的服务器上安装Perl。 您需要wget下载CSF安装程序和vim (或您选择的编辑器),以编辑CSF配置文件。 使用yum命令安装软件包:

yum install wget vim perl-libwww-perl.noarch perl-Time-HiRes

第2步 - 安装CSF

请访问“/ usr / src /”目录,并使用wget命令下载CSF。

cd /usr/src/
wget https://download.configserver.com/csf.tgz

提取tar.gz文件并转到csf目录,然后安装它:

tar -xzf csf.tgz
cd csf
sh install.sh

您应该得到CSF安装完成的信息。

现在您应该检查该CSG是否真的在此服务器上正常工作。 转到“/ usr / local / csf / bin /”目录,然后运行“csftest.pl”

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

如果您看到测试结果如下所示,那么CSF在您的服务器上运行没有问题:

RESULT: csf should function on this server

第3步 - 在CentOS 7上配置CSF

在进入CSF配置过程之前,首先要知道的是,“CentOS 7”有一个名为“firewalld”的默认防火墙应用程序 你必须停止防火墙,并将其从启动中删除。

停止防火墙:

systemctl stop firewalld

从启动中禁用/删除firewalld:

systemctl disable firewalld

然后转到CSF配置目录“/ etc / csf /” ,并使用vim编辑器编辑文件“csf.conf”

cd /etc/csf/
vim csf.conf

第11行 “测试”改为“0”以应用防火墙配置。

TESTING = "0"

默认情况下,CSF允许SSH标准端口22的传入和传出流量,如果使用不同的SSH端口,请将端口添加到第139行 “TCP_IN”中的配置

现在使用systemctl命令启动CSF和LFD:

systemctl start csf
systemctl start lfd

然后启动csf和lfd服务在启动时启动:

systemctl enable csf
systemctl enable lfd

现在,您可以通过命令查看CSF的默认规则:

csf -l

第4步 - 基本的CSF命令

1.启动防火墙(启用防火墙规则):

csf -s

2.刷新/停止防火墙规则。

csf -f

3.重新加载防火墙规则。

csf -r

4.允许IP并将其添加到csf.allow。

csf -a 192.168.1.109

结果:

Adding 192.168.1.109 to csf.allow and iptables ACCEPT...
ACCEPT  all opt -- in !lo out *  192.168.1.109  -> 0.0.0.0/0 
ACCEPT  all opt -- in * out !lo  0.0.0.0/0  -> 192.168.1.109

5.从csf.allow中删除并删除IP。

csf -ar 192.168.1.109

结果:

Removing rule...
ACCEPT  all opt -- in !lo out *  192.168.1.109  -> 0.0.0.0/0 
ACCEPT  all opt -- in * out !lo  0.0.0.0/0  -> 192.168.1.109

6.拒绝IP并添加到csf.deny中:

csf -d 192.168.1.109

结果:

Adding 192.168.1.109 to csf.deny and iptables DROP...
DROP  all opt -- in !lo out *  192.168.1.109  -> 0.0.0.0/0 
LOGDROPOUT  all opt -- in * out !lo  0.0.0.0/0  -> 192.168.1.109

7.从csf.deny中删除并删除一个IP。

csf -dr 192.168.1.109

结果:

Removing rule...
DROP  all opt -- in !lo out *  192.168.1.109  -> 0.0.0.0/0 
LOGDROPOUT  all opt -- in * out !lo  0.0.0.0/0  -> 192.168.1.109

8.从csf.deny中删除并解锁所有条目。

csf -df

结果:

DROP  all opt -- in !lo out *  192.168.1.110  -> 0.0.0.0/0  
LOGDROPOUT  all opt -- in * out !lo  0.0.0.0/0  -> 192.168.1.110 
DROP  all opt -- in !lo out *  192.168.1.111  -> 0.0.0.0/0 
LOGDROPOUT  all opt -- in * out !lo  0.0.0.0/0  -> 192.168.1.111   
csf: all entries removed from csf.deny

9.搜索iptables上的模式匹配,例如:IP,CIDR,端口号

csf -g 192.168.1.110

第5步 - 高级配置

这里有一些关于CSF的调整,所以你可以根据需要进行配置。

返回到csf配置目录,并编辑csf.conf配置文件:

cd /etc/csf/
vim csf.conf

1.不要阻止csf.allow文件中的IP地址。

默认情况下,lfd还将阻止csf.allow文件下的IP,因此如果要使csf.allow文件中的IP不会被lfd阻止,那么请转到272行并将“IGNORE_ALLOW”更改为“1” 。 当您在家中或办公室中拥有静态IP,并希望确保您的IP不会被Internet服务器上的防火墙阻止时,这很有用。

IGNORE_ALLOW = "1"

2.允许进出ICMP。

进入ping / ICMP的第152行:

ICMP_IN = "1"

和第159行出ping ping / ICMP:

ICMP_OUT = "1"

3.阻止某些国家

CSF提供了使用CIDR (国家代码)允许和拒绝国家访问的选项。 转到第836行 ,并添加允许和拒绝的国家代码:

CC_DENY = "CN,UK,US"
CC_ALLOW = "ID,MY,DE"

4.通过电子邮件发送Su和SSH登录日志。

您可以设置LFD使用的电子邮件地址发送关于“ SSH登录”事件和运行“su”命令的用户的电子邮件,转到第1069行并将值更改为“1”。

LF_SSH_EMAIL_ALERT = "1"

...

LF_SU_EMAIL_ALERT = "1"

然后在588行中定义要使用的电子邮件地址。

LF_ALERT_TO = "mymail@mydomain.tld"

如果您想要更多的调整,请阅读“/etc/csf/csf.conf”配置文件中的选项。

结论

CSF是为Linux服务器提供的iptables的基于应用程序的防火墙。 CSF具有许多功能,可以支持基于网络的管理工具,如cPanel / WHM,DirectAdmin和Webmin。 CSF在服务器上易于安装和使用,使系统管理员的安全管理更加方便。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

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

支付宝扫一扫打赏

微信扫一扫打赏