PAM和账户安全配置

  PAM(可插入认证模块)是UNIX系统上一个实现模块化的身份验证模块服务

当程序需要对用户进行身份验证时加载并执行的。PAM文件通常位于/etc/pam.d目录中。

配置文件

/etc/pam.d/password-auth

/etc/pam.d/system-auth

/etc/security/pwquality.conf

配置密码创建要求

编辑/etc/pam.d/password-auth和/etc/pam.d/system-auth,确定文件含有

password    requisite     pam\_pwquality.so try\_first\_pass local\_users\_only retry=3 authtok\_type=

编辑密码强度配置文件/etc/security/pwquality.conf

minlen = 14 dcredit \= -1 ucredit \= -1 ocredit \= -1 lcredit \= -1
  • minlen = 14 -  密码最小长度

  • ucredit = -1 - 必须包含一个大写字符

  • ocredit = -1 - 必须包含一个特殊字符

  • lcredit = -1 -必须包含一个小写字符

确保配置了失败密码尝试的锁定

在n次不成功的连续登录尝试后锁定用户ID可减轻暴力对系统的密码攻击

查看 ’/etc/pam.d/password-auth‘ 和 ’/etc/pam.d/system-auth‘文件

并确认 pam_faillock.so 周围有 pam_unix.so pam_unix.so 是 [success=1 default=bad]

auth required pam\_faillock.so preauth audit silent deny=5 unlock\_time=900 auth \[success\=1 default=bad\] pam\_unix.so auth \[default\=die\] pam\_faillock.so authfail audit deny=5 unlock\_time=900 auth sufficient pam\_faillock.so authsucc audit deny\=5 unlock\_time=900

限制密码重用次数

编辑/etc/pam.d/password-auth 和 /etc/pam.d/system-auth

password required pam\_pwhistory.so remember=5

确定密码的加密算法 SHA-512

编辑/etc/pam.d/password-auth 和 /etc/pam.d/system-auth

password    sufficient    pam\_unix.so     sha512

确保对su命令的访问受到限制

编辑/etc/pam.d/su

auth required pam\_wheel.so use\_uid

编辑/etc/group

将允许的用户加入wheel组,这里以root和redhat用户为例

wheel:x:10:root,redhat

账户安全设置

配置文件

  • /etc/login.defs

查看账户过期时间和其它信息

\[root@frog ~\]# chage -l redhat Last password change : Jun 11, 2020 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7

确保系统账户是non-login

检测脚本

egrep -v "^\\+" /etc/passwd | awk -F: '($1!="root" && $1!="sync" && $1!="shutdown" && $1!="halt" && $3<1000 && $7!="/sbin/nologin" && $7!="/bin/false") {print}'

修改为不允许登录

usermod -s /sbin/nologin <user>

脚本批量设定

uid的小于1000除开root用户,进行锁定,除开一些特殊用户,其它的都禁止登录。

#!/bin/bash for user in \`awk -F: '($3 < 1000) {print $1 }' /etc/passwd\` ; do if \[ $user != "root" \]; then usermod \-L $user if \[ $user != "sync" \] && \[ $user != "shutdown" \] && \[ $user != "halt" \];then usermod \-s /sbin/nologin $user fi fi done

本文转自 https://www.cnblogs.com/zydev/p/13095187.html,如有侵权,请联系删除。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

ubuntu22.04桌面版开启root用户登陆

ubuntu22.04桌面版默认不支持root用户登陆,测试环境每次都要敲个sudo,实在没有必要以上环境都是部署在3A服务器上的,感兴趣的朋友可以自己部署一套尝试下1.将下面两个文件/etc/pam.d/gdmpassword和/etc/pam.d/gdmautologin中的一行代码shellauthrequiredpamsucceedif.sou