CentOS6.3下安装fail2ban防暴力破解工具
发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽),如:当有人在试探你的SSH、SMTP、FTP密码,只要达到你预设的次数,fa
千家信息网最后更新 2024年12月13日CentOS6.3下安装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源,这里采用的是yum直接装(也可源码安装) vim /etc/yum.repos.d/CentOS-Base.repo 在最后新增: [atrpms] 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=1 enabled=1 然后直接就yum装:yum -y install fail2ban 安装完成后,服务配置目录为:/etc/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 #启动脚本文件 二、安装后配置 首先来看看日志文件的默认定义: cat /etc/fail2ban/fail2ban.conf |grep -v ^# [Definition] loglevel = 3 logtarget = SYSLOG #我们需要做的就是把这行改成/var/log/fail2ban.log,方便用来记录日志信息 socket = /var/run/fail2ban/fail2ban.sock 再来看看主配置默认生效的配置: 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 #最大尝试次数 PS:logpath(Centos5和Rhel5中)要写成/var/log/secure,这个是系统登陆日志,不能随意设置 service fail2ban start #启动服务即可(就用默认的主配置文件里定义的) service iptables start #fail2ban依赖预iptables #之前改过日志路径,不行的话就再重启fail2ban 三、测试功能 测试机:192.168.30.251 fail2ban:192.168.29.253 在测试机上ssh 192.168.29.253,并且连续输入超过5次密码不对(经测试有延迟,多试几次),就会出现下图,连接不上fail2ban上会产生日志记录:阻挡了此ip的续连四、扩展说明 其实fail2ban的功能还是很丰富的,刚刚只是测试了它默认开启的防ssh暴力破解功能。 这里介绍防止vsftpd被暴力破解功能. 1.YUM安装vsftpd(yum配置略) #yum install vsftpd -y 2.配置vsftpd,开启访问日志和传输日志支持 #vi /etc/vsftpd/conf/vsftpd.conf 添加: xferlog_enable=YES dual_log_enable=YES vsftpd_log_file=/var/log/vsftpd.log 3.配置fail2ban的jail.conf文件,添加如下内容 #vi /etc/fail2ban/jail.conf 添加: [vsftpd-iptables] enabled = true filter = vsftpd action = iptables[name=VSFTPD, port=21, protocol=tcp] sendmail-whois[name=VSFTPD, dest=you@example.com] logpath = /var/log/secure maxretry = 5 bantime = 68400 4.重启iptables和fail2ban服务. service iptables restart service fail2ban restart ------------------补 充---------------------- 一 安装 Fail2ban 服务 下载rpmforge , 里面有大量最新的rpm包. wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm 开始yum吧~~! yum install fail2ban fail2ban noarch 0.8.2-3.el5.rf rpmforge 125 k Installing for dependencies: gamin gamin-python 安装是十分简单的拉. fail2ban 原理 fail2ban 调用 iptables 实时阻挡外界的***,按照你的要求在一段时间内找出符合条件的日志,然后动作。 二 设定fail2ban服务 fail2ban 的设定档在这里 /etc/fail2ban fail2ban.conf 日志设定文档 jail.conf 阻挡设定文档 /etc/fail2ban/filter.d 具体阻挡内容设定目录 三 为何需要安装fail2ban呢? Extmail 本身是没有邮件系统被***的解决方案,***是会不断user unknow地试探pop3 smtp 认证得到密码或电邮地址,大家可能问得到邮地址有何作用呢?电邮地址是可以贩卖的哦!而且十分值钱的,如果垃圾邮件者购买了这些地址,你的邮件服务器就有排忙了。 你话需不需要安装个fail2ban保护呢? 四 实施保护 1. 保护 SSH 拦截 先看看fail2ban是如何拦截的? cat /etc/fail2ban/filter.d/sshd.conf failregex = ^%(__prefix_line)s(?:error: PAM: )?Authentication failure for .* from \s*$ ^%(__prefix_line)sFailed [-/\w]+ for .* from (?: port \d*)?(?: ssh\d*)?$ ^%(__prefix_line)sROOT LOGIN REFUSED.* FROM \s*$ ^%(__prefix_line)s[iI](?:llegal|nvalid) user .* from \s*$ ^%(__prefix_line)sUser \S+ from not allowed because not listed in AllowUsers$ ^%(__prefix_line)sauthentication failure; logname=\S* uid=\S* euid=\S* tty=\S* ruser=\S* rhost=(?:\s+user=.*)?\s*$ ^%(__prefix_line)srefused connect from \S+ \(\)\s*$ ^%(__prefix_line)sAddress .* POSSIBLE BREAK-IN ATTEMPT\s*$ fail2ban 使用了正则表达式找出: Authentication failure/authentication failure ROOT LOGIN REFUSED refused connect from POSSIBLE BREAK-IN ATTEMPT not allowed because not listed in AllowUsers 以上的状况,可以根据你实际要求删减. 其中 为建立连接的IP 开启 SSH 拦截 vi /etc/fail2ban/jail.conf [ssh-iptables] enabled = true filter = sshd action = iptables[name=SSH, port=ssh, protocol=tcp] sendmail-whois[name=SSH, dest=收件者电邮地址, sender=寄件者电邮地址] logpath = /var/log/secure maxretry = 3 findtime = 300 bantime = 86400 fail2ban 会按照你的要求去查看/var/log/secure日志文件,然后在findtime = 300 "5分钟" 之内符合条件 的记录下来,如果到达了maxretry = 3 "3次符合条件" 就阻挡这个IP连接22端口 bantime = 86400 "一天的时间". 2. POP3 保护拦截 cat /etc/fail2ban/filter.d/courierlogin.conf failregex = LOGIN FAILED, .*, ip=\[\]$ 这里表示错误地输入用户名/密码的pop3连接. 开启 pop3 保护 vi /etc/fail2ban/jail.conf [POP3] enabled = true filter = courierlogin action = iptables[name=pop3, port=110, protocol=tcp] logpath = /var/log/maillog bantime = 1800 findtime = 300 maxretry = 15 大家应该懂得如何看了吧? 我不写拉!好累。参数可以按照你实际要求修改噢~! 3. POP3-SSL 保护拦截 cat /etc/fail2ban/filter.d/courierlogin-ssl.conf failregex = LOGIN FAILED, .*, ip=\[\]$ 这里表示错误地输入用户名/密码的pop3-ssl连接. vi /etc/fail2ban/jail.conf [POP3-SSL] enabled = true filter = courierlogin-ssl action = iptables[name=pop3-ssl, port=995, protocol=tcp] logpath = /var/log/maillog bantime = 1800 findtime = 300 maxretry = 15 4 SMTP 保护拦截 cat /etc/fail2ban/filter.d/couriersmtp.conf failregex = postfix/smtpd.* warning: unknown\[\]: SASL LOGIN authentication failed: authentication failure 这里表示错误地输入用户名/密码的smtp连接. vi /etc/fail2ban/jail.conf [SMTP] enabled = true filter = couriersmtp action = iptables[name=smtp, port=25:366, protocol=tcp] logpath = /var/log/maillog bantime = 1800 findtime = 300 maxretry = 15 参数可以按照你实际要求修改. 5. Extmail 登录保护 由于Extmail 的web mail 登入没有做到保护,现在加固吧! vi /etc/fail2ban/filter.d/extmail.conf failregex = extmail.*: user=.*, client=, module=login, status=badlogin 这里表示错误地输入用户名/密码的web mail 登入. vi /etc/fail2ban/jail.conf [extmail] enabled = true filter = extmail action = iptables[name=httpd, port=http, protocol=tcp] logpath = /var/log/maillog bantime = 300 findtime = 300 maxretry = 6 6. POSTFIX 保护User unknow 的试探. 不知道这个动作的意思先看看这篇文章。 http://hi.baidu.com/enjoyunix/blog/item/e8506058fd3c3189810a183a.html vi /etc/fail2ban/filter.d/postfix.conf failregex = reject: RCPT from (.*)\[\]: 450 vi /etc/fail2ban/jail.conf [POSTFIX] enabled = true filter = postfix action = iptables[name=postfix, port=25, protocol=tcp] logpath = /var/log/maillog bantime = 43200 findtime = 1200 maxretry = 5 这里保护了User unknow 的试探以及垃圾邮件跳信***。 五 看看iptables iptables -L -nv pkts bytes target prot opt in out source destination 0 0 fail2ban-pop3-ssl tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:995 773 83329 fail2ban-postfix tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 299 12660 fail2ban-pop3 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:110 301 12740 fail2ban-ftp tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 3354 253K fail2ban-SSH tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 438 33979 fail2ban-httpd tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 5703 packets, 829K bytes) pkts bytes target prot opt in out source destination Chain fail2ban-SSH (1 references) pkts bytes target prot opt in out source destination 3354 253K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 Chain fail2ban-ftp (1 references) pkts bytes target prot opt in out source destination 301 12740 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 Chain fail2ban-httpd (1 references) pkts bytes target prot opt in out source destination 438 33979 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 Chain fail2ban-pop3 (1 references) pkts bytes target prot opt in out source destination 299 12660 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 Chain fail2ban-pop3-ssl (1 references) pkts bytes target prot opt in out source destination 0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 Chain fail2ban-postfix (1 references) pkts bytes target prot opt in out source destination 773 83329 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 Chain fail2ban-smtp (0 references) pkts bytes target prot opt in out source destination 0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 如何监察呢? #watch -n 1 fail2ban-client status POSTFIX Status for the jail: POSTFIX |- filter | |- File list: /var/log/maillog | |- Currently failed: 2 | `- Total failed: 22 `- action |- Currently banned: 0 | `- IP list: `- Total banned: 0 看看那些垃圾邮件者真是好无聊!不断地试探我的邮件服务器呢。 六 看看fail2ban的日志 # cat fail2ban.log | grep '] Ban ' 2009-04-07 20:22:44,575 fail2ban.actions: WARNING [POSTFIX] Ban ip地址 就以看到过去有那些IP拦截了,以及是那个服务。 # cat fail2ban.log | grep '] Unban ' 可以查看什么时候解的。
日志
服务
文件
配置
保护
动作
邮件
地址
密码
功能
系统
错误
支持
测试
输入
时间
条件
次数
用户
用户名
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器硬盘哪个品牌好
eda软件开发工程师学历
游戏服务器运维是什么
健全网络安全法律法规体系
vs怎么插入数据库
运营商网络安全口号
软件开发分什么啊
数据库创建班级表
服务器硬盘直接插上可以用吗
无线网络技术WIFI
超凡人网络技术有限公司
怎么租用云服务器
数据库的备份导入导出
怎么删除数据库文件代码
音乐软件开发 懂音乐
网络技术与应用军职在线答案
关于网络安全的毛笔字内容
国开行苏州软件开发中心百度
中国国防部网络安全司
怎样让个人电脑变成服务器
世界山茶属数据库
西游h5数据库文件
网络安全宣传的主要内容
视频怎么绑定到服务器失败
面临网络安全威胁有哪些
一款软件开发大概需要多少钱
高中网络技术应用试卷
南京软件开发人员外包招标
微擎怎么共用数据库
可以把软件开发的本质概括为