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

发布时间 - 2026-01-11 01:13:42    点击率:

问题
最近不知道为什么,恶意代理的请求数越来越多,明明我返回的都是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命令。

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

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

  1. 首先,搜索Apache的log(/var/log/apache2/access.log),查找所有应被屏蔽的log条目(我这里指的是所有被403的请求)。
  2. 然后,提取每条Log记录对应的ip地址。
  3. 对结果进行排序去重,生成black list。
  4. blacklist 写入csf.deny
  5. 重启csf防护服务。

实现起来超级简单:

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# csf防火墙  # linux防火墙  # linux防火墙屏蔽  # linux服务中开启防火墙的两种方式  # Linux强制释放占用端口以及Linux防火墙端口开放方法详解  # linux防火墙iptables规则的查看、添加、删除和修改方法总结  # linux查看防火墙状态与开启关闭命令详解  # 详解Linux防火墙iptables禁IP与解封IP常用命令  # Linux中在防火墙中开启80端口方法示例  # linux下mysql开启远程访问权限 防火墙开放3306端口  # linux下mysql链接被防火墙阻止的解决方法  # Linux系统如何修改防火墙配置  # 重启  # 的是  # 都是  # 很好  # 就在  # 尤其是  # 都能  # 也能  # 半天  # 就行  # 我用  # 用了  # 或者是  # 想了  # 不知道为什么  # 可以根据  # 既可  # 指的是  # 能对  # 每条 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在云主机上快速搭建多站点网站?  个人摄影网站制作流程,摄影爱好者都去什么网站?  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  Laravel如何实现本地化和多语言支持?(i18n教程)  Laravel如何使用Telescope进行调试?(安装和使用教程)  JavaScript如何实现继承_有哪些常用方法  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  个人网站制作流程图片大全,个人网站如何注销?  香港服务器租用每月最低只需15元?  如何用VPS主机快速搭建个人网站?  如何在景安云服务器上绑定域名并配置虚拟主机?  EditPlus中的正则表达式 实战(2)  如何在阿里云完成域名注册与建站?  如何在云服务器上快速搭建个人网站?  如何在阿里云香港服务器快速搭建网站?  Linux网络带宽限制_tc配置实践解析【教程】  Laravel如何实现用户密码重置功能?(完整流程代码)  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  魔方云NAT建站如何实现端口转发?  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  大连网站制作公司哪家好一点,大连买房网站哪个好?  如何用PHP快速搭建高效网站?分步指南  桂林网站制作公司有哪些,桂林马拉松怎么报名?  七夕网站制作视频,七夕大促活动怎么报名?  网站建设保证美观性,需要考虑的几点问题!  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  Laravel如何使用查询构建器?(Query Builder高级用法)  活动邀请函制作网站有哪些,活动邀请函文案?  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  教学论文网站制作软件有哪些,写论文用什么软件 ?  javascript基本数据类型及类型检测常用方法小结  如何快速打造个性化非模板自助建站?  如何生成腾讯云建站专用兑换码?  EditPlus 正则表达式 实战(3)  如何在橙子建站上传落地页?操作指南详解  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  如何快速生成高效建站系统源代码?  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  敲碗10年!Mac系列传将迎来「触控与联网」双革新  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Laravel如何配置任务调度?(Cron Job示例)  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用