学习啦>学习电脑>电脑安全>防火墙知识>

linux怎么利用CSF防火墙屏蔽恶意请求

加城分享

  防火墙借由监测所有的封包并找出不符规则的内容,可以防范电脑蠕虫或是木马程序的快速蔓延。本篇文章主要介绍了linux利用CSF防火墙屏蔽恶意请求,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  问题

  最近不知道为什么,恶意代理的请求数越来越多,明明我返回的都是403Forbidden,但是由于数量实在庞大,还是消耗了我大量的带宽和资源。之前的方法已经没有用了,想了半天还是研究研究防火墙吧,虽然仅仅靠Apache也能对某些IP进行黑名单设置,但是感觉还是有点麻烦的。比如最常见的用iptables,或者是ufw,虽然都能很好的做到管理,但是他们基本都需要一条一条的加,十分麻烦。

  网上搜索了下,找到了一个挺方便的小工具–CSF(ConfigServer & Security Firewall),这个工具据说除了能够方便的管理IP blacklist,而且也能稍加配置抵御一定量的DDOS攻击。

  安装

  工具本身可以在csf工具的官网上下载。

  下载并解压后可以参考其中的install.txt的说明进行安装,讲的简洁而且详细,注意给权限就行。需要说明的是,这个工具其实也是基于iptables,只是简化了命令而已。

  关于ddos的防护

  根据readme.txt的描述,进行ddos防护的功能主要是靠/etc/csf/csf.conf中的配置进行控制的,尤其是当中的PORTFLOOD参数,一般都进行如下设置:

  #Syntax for the PORTFLOOD setting:

  #PORTFLOOD is a comma separated list of:

  port;protocol;hit count*;interval seconds

  #So, a setting of PORTFLOOD = "22;tcp;5;300,80;tcp;20;5" means:

  #1. If more than 5 connections to tcp port 22 within 300 seconds, then block

  #that IP address from port 22 for at least 300 seconds after the last packet is

  #seen, i.e. there must be a "quiet" period of 300 seconds before the block is

  #lifted

  #2. If more than 20 connections to tcp port 80 within 5 seconds, then block

  #that IP address from port 80 for at least 5 seconds after the last packet is

  #seen, i.e. there must be a "quiet" period of 5 seconds before the block is

  #lifted

  这个可以根据个人需要修改。

  关于black list

  blacklist 就在/etc/csf/csf.deny里,可以有多种书写方式,在该文件的顶部描述的十分清楚:

  ###############################################################################

  # Copyright 2006-2017, Way to the Web Limited

  # URL: http://www.configserver.com

  # Email: sales@waytotheweb.com

  ###############################################################################

  # The following IP addresses will be blocked in iptables

  # One IP address per line

  # CIDR addressing allowed with a quaded IP (e.g. 192.168.254.0/24)

  # Only list IP addresses, not domain names (they will be ignored)

  #

  # Note: If you add the text "do not delete" to the comments of an entry then

  # DENY_IP_LIMIT will ignore those entries and not remove them

  #

  # Advanced port+ip filtering allowed with the following format

  # tcp/udp|in/out|s/d=port|s/d=ip

  #

  # See readme.txt for more information regarding advanced port filtering

  #

  简要概括就是每一行代表一个ip,也可以代表一个ip段(CIDR),而且我们也可以加注释,甚至可以指定端口和协议。

  最后,在做出修改后想要生效记得用csf -r命令。

  针对恶意代理请求的防护方案

  当然,我用这个的目的是为了根本解决之前的恶意代理占用带宽的问题。有了这个工具,就可以十分轻松的进行控制了,思路如下:

  首先,搜索Apache的log(/var/log/apache2/access.log),查找所有应被屏蔽的log条目(我这里指的是所有被403的请求)。

  然后,提取每条Log记录对应的ip地址。

  对结果进行排序去重,生成black list。

  blacklist 写入csf.deny

  重启csf防护服务。

  实现起来超级简单:

  复制代码 代码如下:

  root@server:~# cat /var/log/apache2/access.log |grep \ 403\ |awk '{print $1}'|sort|uniq >> /etc/csf/csf.deny

  可以手动查看下结果是否正确,确认之后既可以csf -r重启服务了。

  补充阅读:防火墙主要使用技巧

  一、所有的防火墙文件规则必须更改。

  尽管这种方法听起来很容易,但是由于防火墙没有内置的变动管理流程,因此文件更改对于许多企业来说都不是最佳的实践方法。如果防火墙管理员因为突发情况或者一些其他形式的业务中断做出更改,那么他撞到枪口上的可能性就会比较大。但是如果这种更改抵消了之前的协议更改,会导致宕机吗?这是一个相当高发的状况。

  防火墙管理产品的中央控制台能全面可视所有的防火墙规则基础,因此团队的所有成员都必须达成共识,观察谁进行了何种更改。这样就能及时发现并修理故障,让整个协议管理更加简单和高效。

  二、以最小的权限安装所有的访问规则。

  另一个常见的安全问题是权限过度的规则设置。防火墙规则是由三个域构成的:即源(IP地址),目的地(网络/子网络)和服务(应用软件或者其他目的地)。为了确保每个用户都有足够的端口来访问他们所需的系统,常用方法是在一个或者更多域内指定打来那个的目标对象。当你出于业务持续性的需要允许大范围的IP地址来访问大型企业的网络,这些规则就会变得权限过度释放,因此就会增加不安全因素。服务域的规则是开放65535个TCP端口的ANY。防火墙管理员真的就意味着为黑客开放了65535个攻击矢量?

  三、根据法规协议和更改需求来校验每项防火墙的更改。

  在防火墙操作中,日常工作都是以寻找问题,修正问题和安装新系统为中心的。在安装最新防火墙规则来解决问题,应用新产品和业务部门的过程中,我们经常会遗忘防火墙也是企业安全协议的物理执行者。每项规则都应该重新审核来确保它能符合安全协议和任何法规协议的内容和精神,而不仅是一篇法律条文。

  四、当服务过期后从防火墙规则中删除无用的规则。

  规则膨胀是防火墙经常会出现的安全问题,因为多数运作团队都没有删除规则的流程。业务部门擅长让你知道他们了解这些新规则,却从来不会让防火墙团队知道他们不再使用某些服务了。了解退役的服务器和网络以及应用软件更新周期对于达成规则共识是个好的开始。运行无用规则的报表是另外一步。黑客喜欢从来不删除规则的防火墙团队。


linux防火墙屏蔽恶意请求相关文章:

1.linux怎么关闭iptables linux如何关闭防火墙

2.CentOS7关闭防火墙和SELinux

3.linux如何开放防火墙8080端口

4.Linux关闭防火墙的方法步骤

5.如何排查Linux服务器上的恶意发包行为

    4041594