目录
3.2PAM(Pluggable Authentication Modules)可插拔式认证模块
一.账号安全控制
1.系统账号清理
- 将非登录用户的Shell设为/sbin/nologin
- 锁定长期不使用的账号
- 删除无用的账号
- 锁定账号文件passwd,shadow
[root@xlj1 ~]# chattr +i /etc/passwd /etc/shadow 锁定文件并查看状态
[root@xlj1 ~]# lsattr /etc/passwd /etc/shadow
----i-------- /etc/passwd
----i-------- /etc/shadow
1.2.密码安全控制
- 设置密码有效期
- 要求用户下次登录时修改密码
适用于新用户
[root@localhost ~]# vi /etc/profile 进入配置文件修改限制命令条数。适合新用户
export HISTSIZE=200 修改限制命令为200条,系统默认是1000条profile
[root@localhost ~]# source /etc/profile 刷新配置文件,使文件立即生效
适用于当前用户
[root@localhost ~]# export HISTSIZE=200
[root@localhost ~]# source /etc/profile
[root@localhost ~]# source /etc/profile 刷新配置文件,使文件立即生效
强制在下次登录时更改密码
[root@xlj1 ~]# chage -d 0 zhangsan
1.3.命令历史限制
- 减少记录的命令条数
- 注销时自动清空命令历史
1.4.终端自动注销
- 闲置600秒后自动注销
[root@xlj1~]# vi /etc/profile
HISTSIZE=200
登录时自动清空历史命令(永久)
[root@xlj1 ~]# echo"" > ~/.bash_history
登录时自动清空历史命令(临时)
[root@xlj1 ~]#vim ~/.bash_logout
history -c
clear
2.切换用户 su
2.1用途及用法
- 用途:Substitute User,切换用户
- 格式 su-目标用户
2.2密码验证
- root→任意用户,不验证密码
- 普通用户→其他用户,验证目标用户的密码
[jerry@xlj1 ~]$ su - root 带-选项表示将使用目标用户的登录Shell环境
口令:
[root@xlj1 ~]# whoami
root
2.3限制使用su命令的用户
- 将允许使用su命令的用户加入wheel组
- 启用pam_wheel认证模块
[root@xlj1 ~]# gpasswd -a tsengyia wheel
tsengyia
正在将用户"tsengyia"加入到“wheel"组中
2.4限制使用 su 命令的用户
- 将允许使用su命令的用户加入wheel组
- 启用pam_wheel认证模块
2.5查看 su 操作记录
- 安全日志文件: /var/log/secure
3.PAM认证原理
- PAM认证一般遵循的顺序:Service (服务)-->PAM (配置文件) --> pam *.so;
- PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于 /lib64/security/下)进行安全认证
- 用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的
3.1su命令的安全隐患
- 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
- 为了加强 su 命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用 su 命令进行切换
3.2PAM(Pluggable Authentication Modules)可插拔式认证模块
- 是一种高效而且灵活便利的用户级别的认证方式
- 也是当前Linux服务器普遍使用的认证方式
3.4PAM认证原理
- 一般遵循的顺序 Service (服务) →PAM (配置文件) →pam_*.so
- 首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证
- 用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
- 不同的应用程序所对应的PAM模块是不同的
3.5PAM认证的构成
(1)查看某个程序是否支持PAM认证,可以用Is命令
- 查看su是否支持PAM模块认证 Is /etc/pam.d | grep su
(2)查看su的PAM配置文件:cat letc/pam.d/su
每一行都是一个独立的认证过程
每一行可以区分为三个字段
- 认证类型
- 控制类型
- PAM模块及其参数
3.6PAM安全认证流程
控制类型也称做Control Flags,用于PAM验证类型的返回结果
- required验证失败时仍然继续,但返回Fail
- requisite验证失败则立即结束整个验证过程,返回Fail
- sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
- optional不用于验证,只显示信息
(通常用于session类型)
4.sudo 机制提升权限
4.1配置sudo授权
visudo
或
vi /etc/sudoers (此文件的默认权限为440, 保存退出时必须执行 ":wq!" 命令来强制操作)
4.2语法格式:
用户 主机名=命令程序列表
用户 主机名=(用户)命令程序列表
用户:直接授权指定的用户名,或采用"组名"的形式(授权一个组的所有用户)
主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名, ALL则代表所有主机
(用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命
命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径多个命令之间以逗号 "," 进行分隔。ALL则代表系统中的所有命令
4.3 sudo参数命令
-l | 列出用户在主机上可用的和被禁止的命令;一般配置好/etc/sudoers后,要用这个命令来查看和测试是不是配置正确的 |
-v | 验证用户的时间截;如果用户运行sudo后,输入用户的密码后,在短时间内可以不用输入口令来直接进行sudo操作:用 -v 可以跟踪最新的时间戮 |
-u | 指定以以某个用户执行特定操作 |
-k | 删除时间截,下一个sudo命令要求用求提供密码 |