目录
一、账号安全基本措施
1、系统账号清理
将非登录的用户hehe设为sbin/nologin
锁定长期不使用的账号
删除无用的账号
锁定账号文件passwd,shadow
2、密码安全控制
设置密码有效期
限制用户下次登录就需要更改密码
3、命令历史限制
减少记录的命令条数
注销时自动清空
4、终端自动注销
5、限制su命令用户
6、PAM安全认证
1,使用usermod锁定和解锁用户
usermod -L 用户名:对用户进行锁定
usermod -U 用户名:对用户进行解锁(由于新建的用户还没有设置密码,所以此处提示我们需要设置密码后解锁用户)
usermod -p 用户名:对未设置密码的用户进行设置密码并解锁
2、使用passwd锁定和解锁用户
passwd -l 用户名:对用户进行锁定
passwd -u 用户名:对用户进行解锁
userdel -r 用户名:删除无用的用户
chattr +i /etc/passwd /etc/shadow:对账号文件passwd,shadow进行锁定,锁定后将无法创建用户。
chattr -i /etc/passwd /etc/shadow:对账号文件passwd,shadow进行解锁,解锁后可以正常创建用户。
同时,这两条命令也可以对文件进行锁定与解锁,锁定后将无法对此文件进行修改和删除等操作,解锁后恢复正常。
vi /etc/login.defs
PASS_MAX_DAYS 30
修改密码配置文件,适用于新建用户
chage -M 30 hehe
cat /etc/shadow | grep hehe
直接修改有效期,适用于已有用户
PASS_MAX_DAYS 99999:密码最长有效期
PASS_MIN_DAYS 0 :密码最短有效期
PASS_MIN_LEN 0 :推荐密码最小位数
PASS_WARN_AGE 7 : 设定在密码失效前多少天开始通知用户更改密码
chagr -d 0 hehe
cat /etc/shadow | grep hehe
想要减少历史记录的命令条数,我们先进入/etc/profile环境变量文件中进行设置,保存退出后将其设置为生效,命令为:source /etc/profile,或者直接重启
此处1000改为所需要显示的命令条数,wq保存退出
source /etc/profile识别此次修改,然后可以用history查看历史命令条数
进入开机启动配置文件进行修改
输入echo '' > ~/.bashrc(自动清空命令历史)
限制600秒自动注销
vi /etc/profile
进入配置文件进行修改
export TMOUT=600
设置注销时间为600秒
source /etc/profile
重新加载配置文件
默认情况下,如何用户都允许使用su命令,从而与机会反复尝试其他用户的登录密码,这样带来了安全风险。为了加强su命令的使用控制,可以借助于pam_wheel认证模块只允许极个别用户使用 su 命令进行切换。实现过程如下:将授权使用 su 命令 的用户添加到 wheel 改/etc/pam.d/su 认证配置以启用 pam_wheel 认证。
root→任意用户 不需要验证密码
普通用户→其它用户 需要验证目标用户的密码
借用pam_wheel命令来限制用户su命令进行切换
将授权使用su命令的用户添加到whell组
进入su命令的配置文件
对su命令进行修改
进入修改界面后输入命令set nu(显示行数)
第二行是对root进行修改(此处不需要该)
第六行是对whell组内的用户进行修改是否能使用su命令(以最前面#为判断标准,有#无法使用,无#可以使用)
PAM认证一般遵循的顺序:service(服务)- PAM(配置文件)-pam *.so:
PAM认证首先要确定哪一项应用服务,然后加载相应的pam配置文件,/etc/pam.d下。不同的应用程序所对应的PAM模块也是不同的
第一列代表PAM认证模块的类型
auth:对用户身份仅从识别
account:对账号各项属性进行检查
password:使用用户信息来更新数据
session:定义登陆前以及推出后所要进行的会话操作管理
第二列代表PAM控制标记
required:表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败。
requisite:与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。
sufficient:如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值。
optional: 不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于session类型),
include:表示在验证过程中调用其他的PAM配置文件。比如很多应用通过完整调用/etc/pam.d/system-auth(主要负责用户登录系统的认证工作)来实现认证而不需要重新逐一去写配置项。
第三列代表PAM模块
默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径。同一个模块,可以出现在不同的模块类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的模块类型编制了不同的执行函数。
第四列代表PAM模块的参数
这个需要根据所使用的模块来添加。传递给模块的参数。参数可以有多个,之间用空格分隔开
每一行都是一个独立的认证过程
每一行可以区分为三个字段:认证类型、控制类型、PAM模块及其参数
PAM 认证类型包括四种:
认证管理(authentication management):接受用户名和密码,进而对该用户的密码进行认证;
帐户管理(account management):检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登录是否有时间段的限制等;
密码管理(password management):主要是用来修改用户的密码;
会话管理(session management):主要是提供对会话的管理和记账。 控制类型也可以称做 Control Flags,用于 PAM 验证类型的返回结果。
1.required验证失败时仍然继续,但返回 Fail
2.requisite验证失败则立即结束整个验证过程,返回 Fail
3.sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
4.optional不用于验证,只是显示信息(通常用于 session 类型)