更多课程 选择中心

Linux培训
美国上市教育机构

400-111-8989

Linux培训

fail2ban说明、安装、配置、测试

  • 发布:linux培训
  • 来源:网络
  • 时间:2015-07-03 20:14

Fail2ban scans log files like /var/log/pwdfail or /var/log/apache/error_log and bans IP that makes too many password failures. It updates firewall rules to reject the IP address.

1、支持大量服务。如sshd,apache,qmail,proftpd,sasl等等

2、支持多种动作。如iptables,tcp-wrapper,shorewall(iptables第三方工具),mail otifications(邮件通知)等等。

3、在logpath选项中支持通配符

4、需要Gamin支持(注:Gamin是用于监视文件和目录是否更改的服务工具)

5、需要安装python,iptables,tcp-wrapper,shorewall,Gamin。如果想要发邮件,那必须安装postfix/sendmail

注:重启iptables服务的话,所有DORP将重置。

安装:(需要安装python)

tar jxvf fail2ban-0.8.4.tar.bz2

cd fail2ban-0.8.4

./setup.py install

配置:

/etc/fail2ban/fail2ban.conf

此文件定义了fai2ban日志级别、日志位置及sock文件位置。

loglevel = 3

logtarget = SYSLOG(需要把此值修改成日志文件如/var/log/fail2ban.log,用来记录日志信息,我用系统默认的SYSLOGR看不到fail2ban的日志,所以我修改了。重新启动fail2ban后就创建了此文件了。)

socket = /var/run/fail2ban/fail2ban.sock每一个设置,在此文件中都会有详细的说明。

/etc/fail2ban/jail.conf

此是fail2ban主要的配置文件。下面就来介绍一下这个文件的主要设置方法

[DEFAULT] #全局设置

ignoreip = 127.0.0.1 #忽略IP,在这个清单里的IP不会被屏蔽

bantime = 600 #屏蔽时间,以秒为单位

findtime = 600 #监测时间。在此期间内重试超过规定次数,会激活fail2ban采取相应的动作。(也可以理解成在这个时间段内超过规定次数会被ban掉。)

maxretry = 3 #最大尝试次数(经测试,好像有延迟)

backend = auto #日志修改检测机制(gamin、polling和auto这三种)下面都是一些子段的设置,但这里面的优先级会高于全局里面的设置,也已经说,当里面设置和全局设置有冲突的时候,会以此段设置为准。如果没有的话就会调用全局设置。

[ssh-iptables] #相当于标签说明

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@mail.com]

发送邮件dest是目标,sender是发送者(记得要有SMTP服务啊)

注意:此动作也和filter类似,都是调用相应的配置文件(动作的配置文件action.d下的ptables.conf和sendmail-whois.conf)

logpath = /var/log/secure 日志记录的位置

maxretry = 5 最大尝试次数,此项会覆盖全局中maxretry设置(次数会有延迟)此设置的大概意思就是

fail2ban 会按照你的过滤规则(filter = sshd 也就是filter.d/sshd.conf)去查看相应的日志文件(logpath=/var/log/secure),然后在findtime = 600 “10分钟” (此时间以全局的为准)之内符合条件

的记录下来,如果到达了maxretry = 3 “3次符合条件” 就对这个采取相应的动作action(ptables.conf和sendmail-whois.conf),并且限制的时间为bantime = 600 “10分钟”。

关于其他的子段设置是类似的,所以大家参考来修改就OK了。

fail2ban的相关命令

/usr/bin/fail2ban-client -h查看help

测试:

在192.168.64.133

[root@manager ~]# ssh 192.168.64.98

root@192.168.64.98's password:

Permission denied, please try again.

root@192.168.64.98's password:

Permission denied, please try again.

root@192.168.64.98's password:

在98上iptables -L -n

Chain fail2ban-SSH (1 references)

target prot opt source destination

DROP all -- 192.168.64.140 0.0.0.0/0

RETURN all -- 0.0.0.0/0 0.0.0.0/0

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:没有上一篇了
下一篇:PortSentry帮你发现此刻多少黑客在扫你
选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省