首页 > 其他分享 >Fail2Ban:自动IP拦截工具

Fail2Ban:自动IP拦截工具

时间:2024-12-12 19:54:55浏览次数:7  
标签:sshd IP filter nginx Fail2Ban 拦截 日志 fail2ban

Fail2Ban是一个入侵防御软件框架。它用Python编程语言编写,旨在防止暴力攻击。

Fail2ban 能够监控系统日志,匹配日志中的错误信息(使用正则表达式),执行相应的屏蔽动作(支持多种,一般为调用 iptables ),是一款很实用、强大的软件。

如果你的主机在公网上有端口暴露出去,那么总会有一些不怀好意的家伙,会尝试通过各种方式攻击你的机器。常见的服务例如ssh, nginx都会有类似的威胁。

手工将某个ip加入黑名单,这种操作太麻烦,而且效率低。而fail2ban就是一种自动化的解决方案。

Fail2ban工作原理

fail2ban的工作原理是监控某个日志文件,然后根据某些关键词,提取出攻击方的IP地址,然后将其加入到黑名单。

Fail2ban保护ssh

fail2ban的配置文件位于/etc/fail2ban目录下。

在该目录下建立一个文件 jail.local, 内容如下

bantime 持续禁止多久

maxretry 最大多少次尝试

banaction 拦截后的操作

findtime 查找时间

看下下面的操作的意思是:监控sshd服务的最近10分钟的日志,如果某个ip在10分钟之内,有2次登录失败,就把这个ip加入黑名单, 2小时之后,这个ip才会被从黑名单中移除。

[DEFAULT]
bantime = 2h
banaction = iptables-multiport
maxretry = 2
findtime = 10m

[sshd]
enabled = true

然后重启fail2ban

systemctl restart fail2ban 

fail2ban提供管理工具fail2ban-client

fail2ban-client status 
#显示fail2ban的状态
fail2ban-client status sshd 
#显示某个监狱的配置

从下文的输出来看可以看出来fail2ban已经拦截了一些IP地址了


> fail2ban-client status
Status
|- Number of jail:  1
`- Jail list:  sshd
> fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed:  2
|  |- Total failed:  23289
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned:  9
   |- Total banned:  1270
   `- Banned IP list:  234.125.201.105

fail2ban保护sshd的原理

fail2ban的配置文件目录下有个filter.d目录,该目录下有个sshd.conf的文件,这个文件就是对于sshd日志的过滤规则,里面有些正常时用来提取出恶意家伙的IP地址。

防止CC攻击

这里仅以Nginx为例,使用fail2ban来监视nginx日志,匹配短时间内频繁请求的IP,并使用firewalld将其IP屏蔽,达到CC防护的作用。

#需要先新建一个nginx日志匹配规则
vi /etc/fail2ban/filter.d/nginx-cc.conf
#填写如下内容
[Definition]
failregex =  -.*- .*HTTP/1.* .* .*$
ignoreregex =

继续修改jail.local追加如下内容:

[nginx-cc]
enabled = true
port = http,https
filter = nginx-cc
action = %(action_mwl)s
maxretry = 20
findtime = 60
bantime = 3600
logpath = /usr/local/nginx/logs/access.log

上面的配置意思是如果在60s内,同一IP达到20次请求,则将其IP ban 1小时,上面只是为了测试,请根据自己的实际情况修改。logpath为nginx日志路径。

防止nginx服务器web目录被黑客扫描

shell > vim /etc/fail2ban/jail.conf
[nginx]
port    = http,https
logpath= /var/log/nginx/access.log
enabled = true
filter = nginx-limit-req
#action = iptables[name=nginx, port=http, protocol=tcp]
action = %(action_mwl)s
bantime = 3600
findtime = 60
maxretry = 5

在etc/fail2ban/filter.d目录下新增nginx.conf文件并追加以下内容:

shell > vim /etc/fail2ban/filter.d/nginx.conf
[Definition]
failregex =<HOST> -.*"(GET|POST|HEAD).*HTTP\/1.* 404 .*"$
ignoreregex =

原创 网络安全运维技术

标签:sshd,IP,filter,nginx,Fail2Ban,拦截,日志,fail2ban
From: https://www.cnblogs.com/o-O-oO/p/18603271

相关文章

  • Chromium源码分析五:写一个利用ipc+protobuf通信的demo
    在chromium的进程之间使用ipc+protobuffer的方式通信,这样既能保证对模块松耦合,又可以保证独立运行时不会相互被影响。主要用于以下两个方面:browser进程和系统适配层之间的通信;(包括:音视频播放器或者走行规制相关的接口等)browser进程和render进程之间的通信。只看代码没有什......
  • Tips:Java 文件断点下载
    前言❝互联网的连接速度慢且不稳定,有可能由于网络故障导致断开连接。在客户端下载一个大对象时,因网络断开导致上传下载失败的概率就会变得不可忽视。❞客户端在GET对象请求时通过设置Range头部来告诉接口服务需要从什么位置开始输出对象的数据。判断是否支持断点下载,......
  • 论文阅读:Statistical Comparisons of Classifiers over Multiple Data Sets
    论文地址:StatisticalComparisonsofClassifiersoverMultipleDataSets(acm.org)前面在机器学习之Friedman检验-CSDN博客中提到了Friedman检验,这里将对这个方法的论文进行详细的阅读,以了解其原理。摘要尽管用于在单个数据集上比较两种学习算法的方法已经研究了相当......
  • EtherNet/IP转profinet网模块应用在AB罗克韦尔PLC与西门子1500PLC通讯案例
        在工业自动化领域,不同品牌的PLC(可编程逻辑控制器)之间进行通讯往往是项目实施中面临的一个重要问题。本文将详细介绍如何利用EtherNet/IP转profinet网关模块(远创智控的YC-PN-EIP)实现罗克韦尔PLC与西门子1500PLC之间稳定、高效的通讯,帮助大家在类似的项目......
  • python中的pip操作
    python中的pip操作1.pip更换国内镜像源由于python自带的源下载速度非常慢,特别是安装一些库的时候,甚至有时会失败。因此,建议将下载源替换成国内的,下载速度会快很多。总共有两种方法代码替换(推荐使用这一种)手动替换1.1代码替换1.1.1阿里源(推荐这个)pipconfigset......
  • 使用html 和javascript 实现微信界面功能2
    1.功能说明:对上一篇的基础上进行了稍稍改造主要修改点:搜索功能:在搜索框后面增加了搜索按钮。搜索按钮调用performSearch函数来执行搜索操作。表单形式的功能:上传文件:修改为表单形式,允许用户通过文件输入控件选择文件并上传。发布朋友圈:修改为表单形式,允许用户......
  • tooltip风格高级jquery分步引导插件
    TourJS是一款tooltip风格高级jquery分步引导插件。TourJS通过在关键位置显示tooltip信息,来分步引导用户进行页面操作,功能非常实用。在线预览 下载  使用方法在页面中引入jQuery、tour.js文件,以及tooltip的风格颜色主题css文件。<linkrel="stylesheet"type="te......
  • macOS Ventura 13.7.2 (22H313) 正式版 ISO、IPSW、PKG 下载
    macOSVentura13.7.2(22H313)正式版ISO、IPSW、PKG下载使用台前调度自动整理工作空间,全新连续互通相机,让Mac体验更胜以往请访问原文链接:https://sysin.org/blog/macOS-Ventura/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org​台前调度等新功能帮助Mac用......
  • pip的用法
    1、pip国内镜像地址阿里云http://mirrors.aliyun.com/pypi/simple/中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/豆瓣(douban)http://pypi.douban.com/simple/清华大学https://pypi.tuna.tsinghua.edu.cn/simple/中国科学技术大学http://pypi.mirrors.ustc......
  • 2024 DataGrip安装使用教程(附激活,常见问题分析)
    第一步:下载DataGrip安装包访问DataGrip官网,下载DataGrip第二步:安装DataGrip下载完成后,进行安装,next,安装完成点击xx关掉程序!第三步:下载补丁DataGrip补丁文件点击获取补丁下载成功后,打开标注的文件文件夹,进入到文件夹/jetbra注意:这个文件夹单独copy一......