Fail2ban 安装配置和Medusa的实验

注意:

本文所述知识和工具仅用于学习和实验。

任何人不得私自或在无授权的情况下尝试破解他人主机,否则将承担相应的法律责任!!!*

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.localjail.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地址。

可以根据需要修改maxretrybantime参数,以及添加其他的 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的破解行为。

更多操作可按实际业务需求开展,如有疑问可以留言哦,谢谢!(完)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Medusa是一个基于深度学习的图像生成模型,它可以生成逼真的人脸图像。下面是一个简单的Medusa使用教程: 1. 安装依赖:首先,你需要安装Python和一些依赖库,比如TensorFlow和NumPy。你可以使用pip命令来安装它们: ``` pip install tensorflow numpy ``` 2. 下载预训练模型:Medusa的开发者已经在GitHub上提供了预训练模型,你可以从以下链接下载: ``` https://github.com/Psyche-mia/Medusa ``` 3. 导入模型和相关库:将下载的预训练模型文件导入到你的项目中,并导入相关的库: ```python import tensorflow as tf import numpy as np # 导入预训练模型 model_path = 'path_to_model/medusa.pb' with tf.gfile.GFile(model_path, 'rb') as f: graph_def = tf.GraphDef() graph_def.ParseFromString(f.read()) tf.import_graph_def(graph_def, name='') ``` 4. 生成图像:使用Medusa生成图像的过程涉及到向模型输入噪声并获取输出图像。以下是一个简单的函数来执行这个过程: ```python def generate_image(): with tf.Session() as sess: input_tensor = sess.graph.get_tensor_by_name('input:0') output_tensor = sess.graph.get_tensor_by_name('output:0') # 生成噪声 noise = np.random.randn(1, 512) # 输入噪声并获取输出图像 generated_image = sess.run(output_tensor, feed_dict={input_tensor: noise}) # 将图像从[-1, 1]范围转换为[0, 255]范围 generated_image = (generated_image + 1) * 127.5 # 显示生成的图像 plt.imshow(generated_image[0].astype(np.uint8)) plt.show() ``` 5. 调用生成函数:调用上述生成函数来生成图像: ```python generate_image() ``` 这只是一个简单的Medusa使用教程。你可以根据自己的需要对其进行更多的定制和扩展。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值