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在服务器上易于安装和使用,使系统管理员的安全管理更加方便。