防止暴力破解,教你如何在登录失败后实施10分钟账户锁定策略!

最近,在服务器上发现了异常的登录尝试。尽管您的团队已经采取了强密码策略和其他安全措施来加固服务器,但恶意程序仍然通过暴力破解的方式试图多次尝试猜测正确的凭据以获取访问权限。为了增强系统的安全性,特别是防止此类暴力破解攻击,本教程将向您展示如何配置 pam_faillock 模块。通过这项配置,一旦用户在 SSH 登录中连续失败3次,其账户将会被自动锁定10分钟,有效地阻止进一步的未授权访问尝试。

什么是pam_faillock

pam_faillock 是一个 PAM(Pluggable Authentication Modules,可插入认证模块)模块,用于在 Linux 系统中限制用户登录失败次数的功能。其作用主要有以下几点:

  1. 登录失败计数器管理pam_faillock能够跟踪用户登录失败的次数。当用户连续多次登录失败时,它会增加计数器,并根据设定的策略来处理这些失败尝试。

  2. 限制登录:一旦用户登录失败的次数达到预设的阈值,pam_faillock 可以执行一些动作,例如锁定用户账户,禁止用户继续登录一段时间,或者需要管理员介入才能解锁账户。

  3. 保护系统安全:通过限制登录失败次数,pam_faillock 能够减少恶意用户通过暴力破解或者字典攻击等方式尝试访问系统的可能性,从而增强系统的安全性。

  4. 配置灵活pam_faillock 的行为可以通过配置文件(如 /etc/security/faillock.conf)进行定制,管理员可以根据自己的安全需求调整失败锁定的策略和参数。

案例演示

环境准备

本案例中采用Rocky Linux,具体的版本如下:

[root@rocky ~]# cat /etc/redhat-release
Rocky Linux release 9.0 (Blue Onyx)
[root@rocky ~]#

默认情况下,系统已经安装好了pam_faillock模块。

[root@rocky ~]# rpm -qa | grep pam
pam-1.5.1-9.el9_0.1.x86_64
systemd-pam-250-6.el9_0.1.x86_64
[root@rocky ~]#

配置PAM配置文件以启用pam_faillock

  1. 打开/etc/pam.d/password-auth 的 PAM 配置文件:
 vim  /etc/pam.d/password-auth
  1. 在文件中找到或添加以下行(确保在适当的位置添加):

具体的代码如下:

auth        required      pam_faillock.so preauth silent audit deny=3 unlock_time=600
auth        [default=die] pam_faillock.so authfail audit deny=3
account     required      pam_faillock.so
  • 解释一下这些参数:
    • deny=3:允许的最大失败次数。在这里,设置为3次。
    • unlock_time=600:账户被锁定的时间(以秒为单位)。在这里,设置为10分钟(600秒)。
    • preauthauthfail 分别用于预认证和认证失败时调用 pam_faillock
  1. 保存并关闭文件。

  2. 默认情况,锁定机制对root用户不生效的,然后,将该文件的内容复制到system-auth文件中,执行如下命令:

cat /etc/pam.d/password-auth > /etc/pam.d/system-auth

重启 SSH 服务以应用更改

根据您的 Linux 发行版,使用以下命令重启 SSH 服务:

systemctl restart sshd

检查ssh的服务器是否正常,通过如下命令查看:

测试配置是否生效

  1. 新建测试用户,并修改密码
[didiplus@rocky ~]$ useradd didiplus
[didiplus@rocky ~]$ passwd didiplus #为didiplus用户修改密码
  1. 使用 SSH 连接到您的 Linux 服务器,故意输入错误密码三次。

  1. 第三次失败后,尝试使用正确的密码登录。如果一切设置正确,您将会被提示账户已被锁定,并显示锁定时间。

    • 通过faillock 可以查看被锁定的时间,从那个台服务器登录的。如下图:
    • 也可以通过日志文件查看,如下图:

通过这些步骤,您已经成功地配置了 pam_faillock,使得在 SSH 登录失败3次后自动锁定用户账户10分钟,从而增强了系统的安全性。

如果需要手动解锁账户,可以使用 faillock 命令:

faillock --user <username> --reset

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/27238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文章分享 | Ribo-seq与RNA-seq联合分析揭示uAUG-ds翻译调控机制

技术简介 RNA-seq主要从转录组水平分析基因的表达调控机制&#xff0c;检测用于核糖体翻译的RNA序列及二级结构。Ribo-seq主要用于检测核糖体翻译的起始位置、翻译富集区和翻译终止位置。RNA-seq与Ribo-seq联合分析可以准确检测mRNA上游5’UTR区的uORFs翻译调控结构&#xff0…

SSM小区疫情防控系统-计算机毕业设计源码03748

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 小区疫情防控系统&#xff0c;主要的模块包括查看首页、轮播图&#xff08;轮播图管理&#xff09;、社区公告管理&#xff08;社区公告&#…

Opengauss开源4年了,都谁在向其贡献代码?

2020 年 6 月 30 日&#xff0c;华为将Opengauss正式开源&#xff0c;截止目前已经过去4年时间&#xff0c;社区力量对这款数据库产品都起到了哪些作用&#xff0c;谁的代码贡献更大一些&#xff1f; 根据社区官网信息统计&#xff0c;截止目前&#xff08;2024年6月12日&…

2024年护网行动全国各地面试题汇总(5)作者:————LJS

2024护网蓝队面试题第一大题 目录 一. 目前有防火墙&#xff0c;全流量检测&#xff0c;态势感知&#xff0c;IDS&#xff0c;waf&#xff0c;web服务器等设备&#xff0c;如何搭建一个安全的内网环境&#xff0c;请给出大概拓扑结构 &#xff08;适用于中高级&#xff09; 1.1…

查看电子磁盘ssd空间信息并释放zfs空间@FreeBSD

发现问题 在某宝买了一块32G的ssd电子盘&#xff0c;但是在FreeBSD里面使用df看到的空间较少&#xff0c;只有15G&#xff0c;一度怀疑是发错货了。不过自己清楚的记得swap分区还分了4G&#xff0c;这样铁定是大于16G的&#xff0c;应该是32G没错。但是少掉的那部分空间跑哪里…

安装前端依赖node-sass报错

文章目录 问题1&#xff1a;node-sass报错问题2&#xff1a;node-gyp报错问题3&#xff1a;node-sass再次报错问题4&#xff1a;node-sass三次报错 问题1&#xff1a;node-sass报错 问题描述&#xff1a;经常会碰到一个新的项目安装依赖时&#xff0c;会报node-sass版本的问题…

揭秘裂变客户背后的心理学:如何触动用户分享欲望?

在当今的社交媒体时代&#xff0c;裂变客户——即用户主动分享并推广某一产品或服务&#xff0c;已成为企业营销的重要策略。那么&#xff0c;如何触动用户的分享欲望呢&#xff1f;这背后其实隐藏着深刻的心理学原理。本文将以looka这个知名的国外设计工具为例&#xff0c;为s…

# RocketMQ 实战:模拟电商网站场景综合案例(五)

RocketMQ 实战&#xff1a;模拟电商网站场景综合案例&#xff08;五&#xff09; 一、mybatis 逆向工程使用 4、逆向工程 生成 的 .xml 配置文件。 4.1、生成的 TradeCouponMapper.xml 文件。 <?xml version"1.0" encoding"UTF-8" ?> <!DOC…

Spring Cloud Stream 消息驱动基础入门与实践总结

Spring Cloud Stream是用于构建与共享消息传递系统连接的高度可伸缩的事件驱动微服务框架&#xff0c;该框架提供了一个灵活的编程模型&#xff0c;它建立在已经建立和熟悉的Spring熟语和最佳实践上&#xff0c;包括支持持久化的发布/订阅、消费组以及消息分区这三个核心概念。…

激活和禁用Hierarchy面板上的物体

1、准备工作&#xff1a; (1) 在HIerarchy上添加待隐藏/显示的物体&#xff0c;名字自取。如&#xff1a;endImage (2) 在Inspector面板&#xff0c;该物体的名称前取消勾选&#xff08;隐藏&#xff09; (3) 在HIerarchy上添加按钮&#xff0c;名字自取。如&#xff1a;tip…

前端开发之TCP与UDP认识

上一篇&#x1f449;: 前端开发之性能优化 TCP与UDP 三次握手 1. 初始状态&#xff1a; 客户端开始时处于CLOSED状态&#xff0c;表明没有活动的连接。服务器监听特定端口&#xff0c;处于LISTEN状态&#xff0c;等待连接请求。 2. 第一次握手&#xff08;SYN_SENT状态&am…

sklearn(Scikit-learn)入门学习教程

sklearn&#xff08;Scikit-learn&#xff09;是一个功能强大的Python机器学习库&#xff0c;它提供了丰富的工具和方法&#xff0c;用于数据挖掘、数据分析和预测建模。以下是一个关于sklearn的清晰教程&#xff0c;涵盖了其主要特点和功能&#xff1a; 1. sklearn简介 定义…

FPGA “+:”、“-:“语法

“:”变量[起始地址 : 数据位宽] <–等价于–> 变量[(起始地址数据位宽-1)&#xff1a;起始地址] data[0 : 8] <–等价于–> data[7:0] data[15 : 2] <–等价于–> data[16:15] “-:”变量[结束地址 -: 数据位宽] <–等价于–> 变量[结束地址&#xf…

【机器学习300问】117、序列模型中的符号表示方法?以命名实体识别(NER)任务为例。

在序列模型中&#xff0c;特别是在命名实体识别(NER)任务中&#xff0c;我们通常会用一系列符号来表示输入序列、目标标签以及模型的结构和操作。本文列出一些常见的符号表示方法&#xff0c;结合NER任务进行解释。 一、什么是命名实体识别任务&#xff1f; &#xff08;1&am…

mysql8.0 sql_mode与ONLY_FULL_GROUP_BY报错

如果你的项目出现如下类似的错误 ### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 字段名 which is not functionally dependent on columns in GROUP BY…

PostgreSQL导出导出压缩文件大小

1、导出 pg_dump -h [你的IP地址] -p [你的端口号名称] -U [你的用户名称] -d [你的数据库名称] -t [将要导出数据的表] -F c > [保存路径] 注意&#xff1a; 据说会话创建密码即可不需要输入密码&#xff0c;我试了下不行&#xff1a; export PGPASSWORD你的密码 2…

JSON、yam|fIProperties

JSON、YAML和Properties都是数据序列化和存储的格式&#xff0c;它们各自有独特的特点和适用场景。 1. JSON (JavaScript Object Notation) : 特点&#xff1a;JSON是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和生成。它基于ECMA…

YUV格式与RGB格式详解

图像处理 文章目录 图像处理前言YUV 格式YUV 采样 前言 像素格式描述了像素数据存储所用的格式&#xff0c;定义了像素在内存中的编码方式。RGB 和 YUV 为两种经常使用的像素格式。/ 1024 / 1024 2.63 MB 存储空间。 RGB 和 RGBA 格式 RGB 图像具有三个通道 R、G、B&#xff…

Gobject tutorial 一

参考&#xff1a; https://github.com/ToshioCP/Gobject-tutorial/tree/main?tabreadme-ov-file Gobject class and instance Gobject 实例是通过函数g_object_new创建的。Gobject不仅包含实例还包含类。 Gobject的类是在第一次调用g_object_new函数时被创建的。并且对于一…

HyperBDR新版本上线,自动化容灾兼容再升级!

本次HyperBDR v5.5.0版本新增完成HCS&#xff08;Huawei Cloud Stack&#xff09;8.3.x和HCSO&#xff08;Huawei Cloud Stack Online&#xff09;自动化对接&#xff0c;另外还突破性完成了Oracle云(块存储模式)的自动化对接。 HyperBDR&#xff0c;云原生业务级别容灾工具。支…