一 介绍fail2ban

   fail2ban 可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽),如:当有人在试探你的SSH、 SMTP、FTP密码,只要达到你预设的次数,fail2ban就会调用防火墙屏蔽这个IP,而且可以发送e-mail通知系统管理员,是一款很实用、很 强大的软件!

功能和特性:
  1、支持大量服务。如sshd,apache,qmail,proftpd,sasl等等
  2、支持多种动作。如iptables,tcp-wrapper,shorewall(iptables第三方工具),mail notifications(邮件通知)等等。
  3、在logpath选项中支持通配符
  4、需要Gamin支持(注:Gamin是用于监视文件和目录是否更改的服务工具)
  5、需要安装python,iptables,tcp-wrapper,shorewall,Gamin。如果想要发邮件,那必需安装postfix或sendmail
核心原理:
其实fail2ban就是用来监控,具体是调用iptables来实现。
 

二 试试

 
配置yum,安装服务
[root@SeDion ~]# vim /etc/yum.repos.d/CentOS-Base.repo

最后新增:

name=Red Hat Enterprise Linux $releasever - $basearch - ATrpms
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=
enabled=

yum装fail2ban(如果装过 就把它卸载了)

[root@SeDion ~]# yum -y install fail2ban
服务配置目录为:

rpm -ql fail2ban
/etc/fail2ban/action.d   #动作文件夹,内含默认文件。iptables以及mail等动作配置
/etc/fail2ban/fail2ban.conf #定义了fai2ban日志级别、日志位置及sock文件位置
/etc/fail2ban/filter.d #条件文件夹,内含默认文件。过滤日志关键内容设置
/etc/fail2ban/jail.conf #主要配置文件,模块化。主要设置启用ban动作的服务及动作阀值
/etc/rc.d/init.d/fail2ban #启动脚本文件
 
查看主配置定义
[root@SeDion ~]# cat /etc/fail2ban/fail2ban.conf |grep -v ^#

   

#我们需要做的就是把这行改成 logtarget = /var/log/fail2ban.log,方便用来记录日志信息

查看主要配置文件
[root@SeDion ~]# cat /etc/fail2ban/jail.conf |grep -v ^# |less

  

[DEFAULT]                                 #全局设置 
ignoreip = 127.0.0.1                     #忽略的IP列表,不受设置限制(白名单) 
bantime  = 600                            #屏蔽时间,单位:秒 
findtime  = 600                            #这个时间段内超过规定次数会被ban掉 
maxretry = 3                               #最大尝试次数 
backend = auto                            #日志修改检测机制(gamin、polling和auto这三种) 
 
[ssh-iptables]                               #针对各服务的检查配置,如设置bantime、findtime、maxretry和全局冲突,服务优先级大于全局设置 
enabled  = true                              #是否激活此项(true/false) 
filter   = sshd                                #过滤规则filter的名字,对应filter.d目录下的sshd.conf 
action   = iptables[name=SSH, port=ssh, protocol=tcp]             #动作的相关参数

sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com]   #触发报警的收件人 
logpath  = /var/log/secure                #检测的系统的登陆日志文件 
maxretry = 5                                  #最大尝试次数 
 

三  应用

ssh远程登录5分钟内3次密码验证失败,禁止用户IP访问主机

动作文件(action.d/iptables.conf)以及日志匹配条件文件(filter.d/sshd.conf )是默认。

所以配置主要在jail.conf文件

[root@SeDion ~]# vi /etc/fail2ban/jail.conf

  

  改为3.

启动服务:

  

[root@SeDion ~]# service fail2ban start

  

测试:

  测试发现确实有一定的延迟。多进行几次

  

查看禁止ip

[root@SeDion ~]# iptables -L |tail -4
Chain fail2ban-SSH (1 references)
target prot opt source destination
DROP all -- 192.168.2.5 anywhere
RETURN all -- anywhere anywhere

  

查看fail2ban记录文件:

[root@SeDion ~]# vi /etc/fail2ban/jail.conf
2014-01-11 20:26:02,453 fail2ban.actions: WARNING [ssh-iptables] Ban 192.168.2.5
2014-01-11 20:26:20,923 fail2ban.actions: WARNING [ssh-iptables] 192.168.2.5 already banned
2014-01-11 20:26:42,946 fail2ban.actions: WARNING [ssh-iptables] 192.168.2.5 already banned

  

fail2ban[防止linux服务器被暴力破解]的更多相关文章

  1. 使用 fail2ban 防御 SSH 服务器的暴力破解攻击

    对于SSH服务的常见的攻击就是暴力破解攻击——远程攻击者通过不同的密码来无限次地进行登录尝试.当然SSH可以设置使用非密码验证验证方式来对抗这种攻击,例如公钥验证或者双重验证.将不同的验证方法的优劣处 ...

  2. 入门系列之使用fail2ban防御SSH服务器的暴力破解攻击

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由SQL GM发表于云+社区专栏 介绍 对于SSH服务的常见的攻击就是暴力破解攻击--远程攻击者通过不同的密码来无限次地进行登录尝试.当 ...

  3. 防止服务器被暴力破解使用DenyHosts

    公司有台服务器被坏人盯上了,通过日志可以看到一直在做暴力破解ssh. 防止服务器被暴力破解使用DenyHosts 参考链接: 防止ssh破解,Ubuntu安装denyhosts的一些问题 防止你的ss ...

  4. 【Linux笔记】阿里云服务器被暴力破解

    一.关于暴力破解 前几天新购进了一台阿里云服务器,使用过程中时常会收到“主机被暴力破解”的警告,警告信息如下: 云盾用户您好!您的主机:... 正在被暴力破解,系统已自动启动破解保护.详情请登录htt ...

  5. linux centos7 防止暴力破解

    系统 centos 7.4 系统, 不知道的可以用 cat /etc/redhat-release 查看 利用到了linux 系统的日志,每次我们登陆服务器时,如果有登陆认证失败的情况,会在服务器的/ ...

  6. fail2ban的使用以及防暴力破解与邮件预警

    fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是防火墙),而且可以发送e-mail通知系统管理员! fail2ban运行机制:简单来说其功能就 ...

  7. Linux 密码的暴力破解

    Linux 的密码的介绍 两个文件 1 . /etc/passwd 2 . /etc/shadow ## 关于/etc/shadow 文件的介绍 1 . 第一个字段是用户名 2 . 第二字字段是加密的 ...

  8. Linux的一个暴力破解工具九头蛇hydra

    首先还是书写本文的 参考档:http://www.cnblogs.com/mchina/archive/2013/01/01/2840815.html 工具介绍:原文为官方英文解释本人给翻译下 数量最 ...

  9. linux 防止ssh暴力破解密码

    收集 /var/log/secure 里面的信息,若是某个IP 链接次数超过一定次数 ,则把此ip记录到/etc/hosts.deny里面 #!/bin/bash #Denyhosts SHELL S ...

随机推荐

  1. 利用insertd查出更新记录

    DROP TABLE #tableCREATE TABLE #table(CompanyID VARCHAR(20),BillNo VARCHAR(40))UPDATE dbo.SD_Inv_Move ...

  2. 02.02.01 第1章 简介及基础操作(Power BI商业智能分析)

    02.02.01.01 powerbi简介 00:10:59 02.02.01.02 query数据导入 00:03:26 具体操作实例如下: 02.02.01.03导入access数据 00:05: ...

  3. (29)Why Earth may someday look like Mars

    https://www.ted.com/talks/anjali_tripathi_why_earth_may_someday_look_like_mars/transcript00:12So whe ...

  4. s6-5 TCP 连接的建立

    TCP 连接的建立 采用三次握手建立连接 一方(server)被动地等待一个进来的连接请求 另一方(the client)通过发送连接请求,设置一些参数 服务器方回发确认应答 应答到达请求方,请求方最 ...

  5. vshost32-clr2.exe 已停止工作

    软件中使用了DevComponents.DotNetBar2.dll MessageBoxEx.Show("ddd");运行到这句出现如上错误 解决:在项目属性里->调试: ...

  6. hbuilder下用plus.barcode.Barcode做二维码扫描,当二维码容器的高度设置过低时,启动扫描会发生闪退

    解决办法: 将固定高度改为百分比

  7. eclipse项目无故报错,markers信息为An error occurred while filtering resources

    eclipse项目无故报错,markers信息为An error occurred while filtering resources 描述:eclipse项目和resource文件上有红色的叉,其m ...

  8. logminer日志挖掘

    参考自:https://blog.csdn.net/yes_is_ok/article/details/79296614 原文转自:http://blog.itpub.net/26736162/vie ...

  9. Redlock:Redis分布式锁最牛逼的实现

    普通实现 说道Redis分布式锁大部分人都会想到:setnx+lua,或者知道set key value px milliseconds nx.后一种方式的核心实现命令如下: - 获取锁(unique ...

  10. wordpess设置回复可见

    easy2hide 是一个不错的隐藏部分内容,评论后可见的插件,可在插件安装后台搜索 easy2hide 在线安装,或者在此下载 easy2hide. 在编辑文章的时候,切换到html文本编辑模式 测 ...