了解CentOS 7账号安全控制与sudo授权命令
一、系统账号清理
1.将非登陆用户的Shell设为/sbin/nologin或者/bin/falsh
usermod -s /sbin/nologin 用户名
2.锁定长期不使用的账号与解锁账户
usermod -L 用户名 锁定用户账户
usermod -U 用户 解锁用户账户
passwd -l 用户名 锁定用户密码
passwd -u 用户名 解锁用户账户
passwd -S 用户名 查看用户状态
3.删除无用的账号
userdel -r 用户名 删除用户及其宿主目录
4.清空一个账号密码
passwd -d 用户名 清空账户密码
5.锁定与解锁账号文件chattr、lsattr
chattr +i /etc/passwd /etc/shadow 锁定文件 (passwd和shadow可以同时锁定)
lsattr /etc/passwd /etc/shadow 查看文件状态
chattr -i /etc/passwd /etc/shadow 解锁文件
/etc/passwd和/etc/shadow都存放的用户账号信息,锁定一个都无法创建用户与更改密码
二、密码安全控制
1.设置密码有效期
chage -M 日期 用户 用户名 设置用户密码有效期 (适用已有用户)
chage -E xxxx-xx-xx 用户名 设置账户过期日期
2.强制下次登陆更换密码
chage -d 0 用户 强制在下次登陆时更改密码
cat /etc/shadow | grep 用户 shadow文件中的第三个字段被修改为01
三、命令历史限制
1.减少记录的命令条数
/etc/profile这个文件是系统全局变量配置文件,可以通过重启系统或者执行source /etc/profile命令使文件被读取重载。
[root@localhost ~]# vim /etc/profile 编辑全局变量配置文件
export HISTSIZE=150 默认1000条 输入=150 :wq
2.登陆时自动清空历史命令
~/.bashrc文件中的命令会在每次打开新的bash shell时(也包括登录系统)被执行
[root@localhost ~]# vim ~/.bashrc echo " " > ~/.bash_history
:wq
init 6
history
四、终端自动注销
闲置300秒后自动注销,与上方减少历史条数类似
vi /etc/profile //编辑全局变量配置文件
export TMOUT=300 //输出timeout=300
. /etc/profile
五、使用su命令切换用户
1.用途及用法
用途:Substitute User,切换用户
格式 : su - 目标用户
2.密码验证
root—任意用户,不验证密码
普通用户—其他用户,验证目标用户的密码
su - root 带-选项表示将使用目标用户的登陆Shell环境
(一)限制用户使用su命令
将允许使用su命令的用户加入wheel组
启用pam_wheel认证模块
su命令具有安全隐患:
su命令使得每个用户都具有反复尝试其他用户的登陆密码,若是root用户,则风险更大。
所以需要加强su命令的使用控制,可以借助PAM认证模块,仅允许极个别指定用户可使用su命令进行切换
将允许使用su命令的用户加入wheel组
gpasswd -a admin wheel 将用户“admin”加入到wheel组中
在/etc/pam.d/su文件里设置禁止用户使用su命令
vim /etc/pam.d/su
auth sufficient pam_rootok.so
六、linux中的PAM安全认证
1、su命令的安全隐患
默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
2、PAM可插拔式认证模块
是一种高效而且灵活便利的用户级别的认证方式
也是当前Linux服务器普遍使用的认证方式
3、PAM认证原理
PAM认证一般遵循的规律
Service(服务)→ PAM(配置文件)→ pam_*.soPAM认证
首先要确定哪一项服务,然后加载相应的 PAM 的配置文件(位于 /etc/pam.d 下),最后调用认证文件(位于 /lib64/security 下)进行安全认证
用户访问服务器时,服务器的某一个服务程序把用户的请求发送到 PAM 模块进行认证
不同的应用程序所对应的 PAM 模块是不同的
如果想要查看某个程序是否支持 PAM 认证,可以使用 ls 命令,进行查看 /etc/pam.d/
七、使用sudo机制授权
1.命令:
visudo
或者
vi /etc/sudoers(此文件的默认权限为 440,保存退出时必须执行“:wq!”命令来强制操作)
2.格式
用户 主机名=命令程序列表
用户 主机名=(用户) 命令程序列表
用户:直接授权指定的用户名,或采用“%组名”的形式(授权一个组的所有用户
主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机
(用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令
命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“,”进行分隔。ALL则代表系统中的所有命令