鉴于最近服务器安全形式极其严峻,在朋友的建议下给服务器统一安装了CSF防火墙,可以在一定程度上防御黑客攻击,安装过程如下:
一,下载安装
- wget http://www.configserver.com/free/csf.tgz
- tar -zxvf csf.tgz
- cd csf
- sh install.sh
如果报perl模块错误,
- yum install perl-libwww-perl perl
测试一下csf
- [root@rudder csf]# perl /etc/csf/csftest.pl
- Testing ip_tables/iptable_filter…OK
- Testing ipt_LOG…OK
- Testing ipt_multiport/xt_multiport…OK
- Testing ipt_REJECT…OK
- Testing ipt_state/xt_state…OK
- Testing ipt_limit/xt_limit…OK
- Testing ipt_recent…OK
- Testing xt_connlimit…OK
- Testing ipt_owner/xt_owner…OK
- Testing iptable_nat/ipt_REDIRECT…OK
- Testing iptable_nat/ipt_DNAT…OK
- RESULT: csf should function on this server
二,配置csf
配置文件里面,可配置的东西很多,基本配置就不说了,网上有。在这里说一下,怎么配置防止少量的ddos,cc攻击
1,端口洪水攻击保护
- vim /etc/csf/csf.conf //我做了二处改动,第一处如下
- PORTFLOOD = “22;tcp;5;300,80;tcp;20;5”
解释:
1),如果300秒内有5个以上连接到tcp端口22的连接,则至少在发现最后一个数据包300秒后阻止该IP地址访问端口22,即在该阻止被取消前有300秒的”安静” 期。
2), 如果5秒内有20个以上连接到tcp端口80的连接,则至少在发现最后一个数据包5秒后阻止该IP地址访问端口80,即在该阻止被取消前有5秒的”安静” 期
给我感觉是,csf不光有一面墙,墙后面,还有一张网,动态防御。感觉这一点做的比较好。
2,启动csf
- [root@rudder ~]# /etc/init.d/csf start
启动时打印出很多信息,查看一下,有没有fatal,以及warning,如果没有。
- vim /etc/csf/csf.conf //第二处如下
- TESTING = “0” //TESTING由1改为0
重启一下csf,
[root@rudder ~]# csf -r,重启命令都和apf是一样的。二个基于iptables的防火墙,真的有很多地方相似。
3,启动lfd
- [root@rudder ~]# /etc/init.d/lfd start
这个模块,有一个很重要的功能,就是记录下防御的过程。
194.28.70.132被阻止四次后,被永久禁止访问了。然后我查了一下,这个IP自动被放到了csf.deny下面去了。
三,CSF防火墙下配置PPTP VPN
1)vim /etc/csf/csfpre.sh 输入以下规则:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A INPUT -p gre -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT
iptables -A FORWARD -i ppp+ -o eth0 -p ALL -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp+ -p ALL -j ACCEPT
2)vim /etc/csf/csfpost.sh 输入以下代码:
service pptpd stop
service pptpd start
3)运行 csf -r 重启CSF防火墙,再重启PPTPD service pptpd restart ,重试一下应该就可以拨通VPN了。
注意:需要开通1723端口,否则VPN可以拨通但是无法上网。