强化服务器安全!CentOS 7如何使用fail2ban防范SSH暴力破解攻击?

news/2024/11/8 0:33:18/

在这里插入图片描述

前言

本文主要讲解centos7操作系统下,如何使用fail2ban防范SSH暴力破解。

🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家
😉😉 💕 座右铭: 先努力成长自己,再帮助更多的人 一起加油进步
🍺🍺🍺 💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘

文章目录

  • 前言
  • 一. 实验环境
  • 二. 实验思路及步骤
  • 三. 实验过程
    • 3.1 用yum 安装 fail2ban
    • 3.2 相关的配置文件介绍
    • 3.3 修改配置文件
    • 3.4 重启服务
    • 3.5 测试
  • 四. 总结

一. 实验环境

本测试需要的环境:

  • 系统: centos7.9

  • python 版本大于2.4

  • IP: 192.168.1.163

  • hostname: mufenggrow163

二. 实验思路及步骤

本次使用用的工具是: fail2ban,这一款利用Python开发 的工具,它使用定义规则和过滤器来监视服务器上正在运行的服务日志,识别和封禁恶意的用户IP地址,从而防止他们继续进行攻击。

最初设计用于保护SSH服务,但现在已经扩展支持了其他服务,如FTP、HTTP、SMTP、POP3等。它可以在IP列表中封锁或者释放IP地址,支持系统日志、TCP Wrappers等多种方式存储禁止访问列表。

Fail2Ban还具有有用的其他功能,比如电子邮件通知,可以向管理员发送关于禁止IP列表的报告,允许黑名单或白名单IP地址、进行自定义禁止时间,以及支持客户端展示自定义页面等。

实验步骤:

  1. 配置好实验环境(上文已配好centos7的实验环境)
  2. 安装epel工具
  3. yum安装fail2ban
  4. 对配置文件进行设置
  5. 远程访问输错密码测试

三. 实验过程

3.1 用yum 安装 fail2ban

[root@mufenggrow163 ~]# yum -y install epel-release[root@mufenggrow163 ~]# yum -y install fail2ban

3.2 相关的配置文件介绍

/etc/fail2ban/action.d

#动作文件夹,内含默认文件。iptables以及mail等动作配置。

/etc/fail2ban/fail2ban.conf

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

/etc/fail2ban/filter.d

#条件文件夹,内含默认文件。过滤日志关键内容设置。

/etc/fail2ban/jail.conf

#主要配置文件,模块化。主要设置启用ban动作的服务及动作阀值。

3.3 修改配置文件

本次我们想要实现的是:SSH远程登录5分钟内3次密码验证失败,禁止用户IP访问主机1小时,1小时该限制自动解除,用户可重新登录。

因为动作文件(action.d/iptables.conf)以及日志匹配条件文件(filter.d/sshd.conf )安装后是默认存在的。基本不用做任何修改。所有主要需要设置的就只有jail.conf文件。启用SSHD服务的日志分析,指定动作阀值即可。

[root@mufenggrow163 ~]# vim /etc/fail2ban/jail.conf
[DEFAULT]               #全局设置。ignoreip = 127.0.0.1/8       #忽略的IP列表,不受设置限制。bantime  = 600             #屏蔽时间,单位:秒。findtime  = 600             #这个时间段内超过规定次数会被ban掉。maxretry = 60                #最大尝试次数。backend = auto            #日志修改检测机制(gamin、polling和auto这三种)。[sshd]               #单个服务检查设置,如设置bantime、findtime、maxretry和全局冲突,服务优先级大于全局设置。port    = sshlogpath = %(sshd_log)sbackend = %(sshd_backend)s#加入如下内容enabled  = true             #是否激活此项(true/false)修改成 true。filter = sshd                   #过滤规则filter的名字,对应filter.d目录下的sshd.conf。action = iptables[name=SSH, port=ssh, protocol=tcp]             #动作的相关参数,对应action.d/iptables.conf文件。sendmail-whois[name=SSH, dest=you@example.com, sender=fail2ban@example.com, sendername="Fail2Ban"]                    #触发报警的收件人。logpath = /var/log/secure          #检测的系统的登陆日志文件。这里要写sshd服务日志文件。 默认为logpath = /var/log/sshd.log 。#5分钟内3次密码验证失败,禁止用户IP访问主机1小时。 配置如下。bantime = 3600   #禁止用户IP访问主机1小时。findtime = 300    #在5分钟内内出现规定次数就开始工作。maxretry = 3       #3次密码验证失败。

3.4 重启服务

[root@mufenggrow163 ~]# systemctl start fail2ban

#启动fail2ban服务。

[root@mufenggrow163 ~]# systemctl enable fail2ban

#设置开机自动启动。

3.5 测试

  • 清空 日志
[root@mufenggrow163 ~]# > /var/log/secure  
  • 接下来故意输错三次密码:
ssh 192.168.1.63root@192.168.1.63's password:                #故意输入错误密码。Permission denied, please try again.root@192.168.1.63's password:                #故意输入错误密码。Permission denied, please try again.root@192.168.1.63's password:                #故意输入错误密码。Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
  • 查看是否被屏蔽:
#可以查看到192.168.1.64该IP被iptables禁止所有访问。Chain fail2ban-SSH (1 references)target     prot opt source               destinationREJECT      all  --  192.168.1.64        anywhereRETURN     all  --  anywhere           anywhere
  • 使用fail2ban-client命令查看:
[root@mufenggrow163 ~]# fail2ban-client status             #配置好之后我们检测下fail2ban是否工作。Status|- Number of jail:    1`- Jail list:        sshd              #具体看某一项的状态也可以看,如果显示被ban的ip和数目就表示成功了,如果都是0,说明没有成功。[root@mufenggrow163 ~]# fail2ban-client status sshdStatus for the jail: sshd|- Filter|  |- Currently failed:    0|  |- Total failed:    0|  `- Journal matches:   _SYSTEMD_UNIT=sshd.service + _COMM=sshd`- Actions|- Currently banned: 1|- Total banned: 1`- Banned IP list:       192.168.1.64
  • 查看fail2ban的日志
[root@mufenggrow163 ~]# fail2ban-client status             #配置好之后我们检测下fail2ban是否工作。Status|- Number of jail:    1`- Jail list:        sshd              #具体看某一项的状态也可以看,如果显示被ban的ip和数目就表示成功了,如果都是0,说明没有成功。[root@mufenggrow163 ~]# fail2ban-client status sshdStatus for the jail: sshd|- Filter|  |- Currently failed:    0|  |- Total failed:    0|  `- Journal matches:   _SYSTEMD_UNIT=sshd.service + _COMM=sshd`- Actions|- Currently banned: 1|- Total banned: 1`- Banned IP list:       192.168.1.64
  • 查看fail2ban的日志能够看到相关的信息。

[root@mufenggrow163 ~]# tail /var/log/fail2ban.log

2023-6-07 16:11:01,476 fail2ban.actions [27932]: NOTICE [sshd] Ban 192.168.1.64

四. 总结

问题: 如果你的同事,一不小心输错三次密码,被封IP,如何解决?
清空日志,重启fail2ban
或者直接从黑名单中移除。

 fail2ban-client set ssh-iptables  unbanip 192.168.1.22

💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!
💕 本文由沐风晓月原创,首发于CSDN博客, 博客主页:mufeng.blog.csdn.net
💕 日拱一卒无尽有,功不唐捐终入海
💕 喜欢的话记得点赞收藏哦


http://www.ppmy.cn/news/311945.html

相关文章

Win10系统重装 华硕笔记本电脑

记录一下Win10系统重装的笔记。 下载win10重装的官网工具 连接:https://www.microsoft.com/zh-cn/software-download/windows10格式化8GB的金士顿u盘 插入电脑 打开工具 按照要求制作U盘格式化工具制作完U盘工具之后 重启电脑 进入BIOS设置(进入方法好像…

华硕笔记本重装win10

1.准备一个空U盘 下载ultro,将系统镜像刻录到U盘中 具体步骤 2.将电脑设置成USB启动 具体步骤 3.装系统 插入U盘,开机,按ESC进入,选择USB,然后选选选就完事了。

华硕rog笔记本怎么设置u盘启动重装系统

有不少小伙伴因为种种原因导致电脑系统无法使用,需要通过u盘重装系统的方法解决,但是自己又不知道怎么设置u盘启动怎么办。最近就有网友想了解自己的华硕rog笔记本怎么设置u盘启动重装系统,下面小编就教下大家华硕rog笔记本设置u盘启动重装系…

【华为OD统一考试B卷 | 100分】数字涂色(C++ Java JavaScript Python)

题目描述 疫情过后,希望小学终于又重新开学了,三年二班开学第一天的任务是将后面的黑板报重新制作。 黑板上已经写上了N个正整数,同学们需要给这每个数分别上一种颜色。 为了让黑板报既美观又有学习意义,老师要求同种颜色的所有数都可以被这种颜色中最小的那个数整除。 现在…

华硕笔记本连不上无线怎么办

第一,先确认无线开关是否打开。方法是:FNF12的组合,可以开启无线开关。 第二,确认无线服务是否开启,方法:winR——>输入services.msc,找到WLAN auto config(或Wireless Zero Con…

【代码随想录】刷题Day53

1.最长公共子序列 1143. 最长公共子序列 和之前的一道题目的区别就是这个子序列不需要每个字符相邻。那么条件就变成两种了,一种是当前的字符相同,一种是不同。相同跟之前的条件一样;不同则需要继承上次比较的较大值。if (text1[i - 1] tex…

Win10更换壁纸一直跳到纯色背景问题解决记录

WinE快捷键打开文件资源管理器 输入路径:C:\Users\你的用户名\AppData\Roaming\Microsoft\Windows\Themes 将里面的的TranscodedWallpaper改为TranscodedWallpaper.old即可解决

Windows7只能设置纯色背景解决方法

解决设置设置纯色图片,不能设置其他背景图片的方法。比如这样的。 首先找到这个目录C:\Users\(这个位置填写你的电脑用户名)\AppData\Roaming\Microsoft\Windows\Themes,(Users也有可能是中文名——用户)把…