注意:
本文所述知识和工具仅用于学习和实验。
任何人不得私自或在无授权的情况下尝试破解他人主机,否则将承担相应的法律责任!!!*
Fail2ban 是一个用于防止恶意登录尝试的安全工具,它可以监控系统日志文件,检测到恶意行为后,暂时封锁相关的IP地址。
1.Fail2ban安装
#加载源 yum -y install epel-release #安装fial2ban yum -y install fail2ban #启动fail2ban systemctl start fail2ban #如果找不到epel源,或下载有问题。可以从阿里巴巴开源镜像源网站找到epel的配置方式和仓库地址 #https://developer.aliyun.com/mirror/epel?spm=a2c6h.13651102.0.0.3e221b11rAl7uh
2.Fail2ban 配置文件
Fail2ban 的基本配置文件:
Jail规则
/etc/fail2ban/jail.conf
或 /etc/fail2ban/jail.local
:
这是 Fail2ban 的主要配置文件之一,jail.local
通常用于用户定义的自定义配置。如果在 jail.local
中定义了与 jail.conf
中相同的规则,将会覆盖 jail.conf
中的配置。
在这个文件中,你可以配置 jails,也就是定义监视和响应规则的地方。
每个 jail 代表一个特定的监视规则。
例如,你可以定义针对SSH登录尝试的监视规则。
需要注意的是,配置规则时需要谨慎,避免封锁了合法用户。
动作(actions)
/etc/fail2ban/action.d/
:
这个目录包含了 Fail2ban 可用的动作(actions)。
动作定义了在检测到恶意行为时应该执行的操作,比如封锁IP地址、发送邮件通知等。
例如,iptables
是一个常用的动作,用于在防火墙中添加规则以阻止恶意IP。
过滤器(filters)
/etc/fail2ban/filter.d/
:
这个目录包含了 Fail2ban 可用的过滤器(filters)。过滤器用于定义如何在日志中匹配恶意行为。
比如,针对 SSH 登录失败的过滤器会匹配相关日志中的错误消息,从而确定是否有恶意登录尝试。
其他配置
/etc/fail2ban/jail.d/
:
这个目录包含了 Fail2ban 针对特定 jails 的自定义配置。
你可以在这里创建单独的配置文件以覆盖默认的 jails 配置。
/etc/fail2ban/fail2ban.conf
:
这是 Fail2ban 的主要配置文件,包含了全局配置选项,如 loglevel、socket、pidfile 等。
/etc/fail2ban/fail2ban.local
:
这是一个用于用户自定义配置的文件。如果在此文件中定义了与 fail2ban.conf
中相同的选项,将会覆盖 fail2ban.conf
中的配置。
3.Fail2ban配置规则
Fail2ban 的配置规则是在 jail.local
或 jail.conf
文件中定义的。这些规则用于监视日志文件并触发相应的动作以响应恶意行为。
Fail2ban 读取配置文件的顺序如下,.local 会覆盖 .conf:
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.local
以下是一个基本的 Fail2ban 配置规则示例,用于防止 SSH 恶意登录尝试:
3.1.配置 jail.local
文件
#复制自定义配置文件 cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local #使用vim或nano 修改文件 vim /etc/fail2ban/jail.local
3.2.添加一个新的 jail 规则
在文件中添加以下内容:
[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 3600
参数说明:
[sshd]
是一个自定义的标识符,它定义了这个 jail 的名称。
enabled = true
表示启用这个 jail 规则。
port = ssh
指定了监视的端口,这里是 SSH 的默认端口。如果有多个端口用,进行分割filter = sshd
指定了使用的过滤器,即
sshd.conf 中定义的过滤器。
logpath = /var/log/auth.log
指定了监视的日志文件路径。maxretry = 3 表示在一定时间内,如果有3次登录失败尝试,则触发动作。
3.3.保存文件并重启服务
systemctl restart fail2ban
3.4.查看防护状态
systemctl fail2ban status sshd
这里 Banned IP list : 被禁止的ip
这个配置示例针对SSH的恶意登录尝试,当在一小时内有3次登录失败时,将封锁相关IP地址。
可以根据需要修改maxretry
和bantime
参数,以及添加其他的 jail 规则来适应不同的场景。
4.使用Medusa进行SSH口令破解(实验)
4.1 Medusa介绍及安装
全名:梅杜莎并行网络登录审计工具
梅杜莎(Medusa)旨在成为一款高速、大规模并行、模块化的登录暴力破解工具。
其目标是支持尽可 能多允许远程身份验证的服务。
作者认为该应用程序的一些关键特点包括: 基于线程的并行测试。
可以同时针对多个主机、用户或密码执行暴力破解测试。
灵活的用户输入。
目标信息(主机/用户/密码)可以以多种方式指定。
例如,每个项目可以是单个 条目,也可以是包含多个条目的文件。
此外,一种组合文件格式允许用户优化其目标列表。
模块化设计。每个服务模块都存在为独立的 .mod 文件。
这意味着为了扩展支持的暴力破解服务列 表,不需要对核心应用程序进行修改。
更多内容请参考官网:Foofus Networking Services - Medusa
安装方法:
#加载源 yum install epel-release -y #安装软件 yum install medusa
4.2 编写字典及运行命令
创建一个p.txt文本,使用vim或nano加入以下内容(也可把自己的密码放入进行验证):
hellokitty 123456 qwerty aaaaaa
运行命令
#运行命令,进行弱口令审计(破解) medusa -h 192.168.230.101 -u root -P p.txt -M ssh
参数说明:
-h target_host
: 指定目标主机或IP地址。
-u username
: 指定目标用户名。
-P password_file
: 指定包含密码列表的文件。
-M module
: 指定要使用的模块或协议(例如,ssh、ftp、http)。
4.3 验证结果
按照3.4中的方法,查看是fail2ban是否有监测到medusa的破解行为。
更多操作可按实际业务需求开展,如有疑问可以留言哦,谢谢!(完)