Linux账号安全

账号安全

目录

账号安全

系统账号清理

禁止root用户登录

禁止普通用户登录

密码安全控制

设置密码有效期

使用su命令切换用户

密码验证

限制用户使用su命令

Linux中的PAM安全认证

su命令的安全隐患

PAM可插拔式认证模块

PAM认证原理

PAM安全认证流程 ​


系统账号清理

禁止root用户登录

在 Linux 系统中,login 程序会读取/etc/securetty 文件,以决定允许 root 用户从哪些终端(安全终端)登录系统

vi /etc/securetty          

#tty5          

//想要不让在哪个终端登陆就在该终端前加注释#

tty6

禁止普通用户登录

login 程序会检查/etc/nologin 文件是否存在,如果存在,则拒绝普通用户登录系统(root 用户不受限制)

touch /etc/nologin

//创建/etc/nologin文件即禁止普通用户登录

rm -rf /etc/nologin               

//删除该文件即取消登录限制

密码安全控制

change -M 日期 用户  设置用户密码有效期

change -E xxxx-xx-xx   设置过期日期(年月日)

设置密码有效期

vim /etc/login.defs     (适用于新建用户)

强制使某个用户下次登陆时更换密码

chage -d 0 用户     

防止历史记录泄露

不法分子会查看上次输入的记录,可能导致root密码等重要信息揭露

减少记录的命令条数

vi /etc/profile            

export HISTZIZE=200    

登录时自动清理历史记录

vim ~/.bashrc

echo " " > ~/.bash_history   

终端自动注销

当终端处于闲置一段时间后实现自动注销

vim /etc/profile            

export TMOUT=600             

使用su命令切换用户


Substitute User,切换用户
su  -目标用户

密码验证

root→任意用户,不验证密码
普通用户→其他用户,验证目标用户的密码

限制用户使用su命令

将允许使用su命令的用户加入wheel组
启用pam_wheel认证模块

Linux中的PAM安全认证

su命令的安全隐患

 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险

 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换

PAM可插拔式认证模块

 是一种高效而且灵活便利的用户级别的认证方式

 也是当前Linux服务器普遍使用的认证方式

PAM认证原理

 一般遵循的规律

Service(服务)→ PAM(配置文件)→ pam_*.so

 首先要确定哪一项服务,然后加载相应的 PAM 的配置文件(位于 /etc/pam.d 下),最后调用认证文件(位于 /lib64/security 下)进行安全认证

 用户访问服务器时,服务器的某一个服务程序把用户的请求发送到 PAM 模块进行认证

 不同的应用程序所对应的 PAM 模块是不同的

 如果想要查看某个程序是否支持 PAM 认证,可以使用 ls 命令,进行查看 /etc/pam.d/

第一列代表PAM认证模块类型

auth:对用户身份进行识别,如提示输入密码,判断是否为root。

account:对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最大用户数等。

password:使用用户信息来更新数据,如修改用户密码。

session:定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统。

第二列代表PAM控制标记

required:表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败。

requisite:与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。

sufficient:如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值。

optional:不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于 session 类型)。

include:表示在验证过程中调用其他的PAM配置文件。比如很多应用通过完整调用/etc/pam.d/system-auth(主要负责用户登录系统的认证工作)来实现认证而不需要重新逐一去写配置项。

第三列代表PAM模块,默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径。

第四列代表PAM模块的参数,这个需要根据所使用的模块来添加

PAM安全认证流程

 

猜你喜欢

转载自blog.csdn.net/Alen686/article/details/113933337
今日推荐