一、账号安全控制
1.系统账号清理
1.1 将非登录用户设置为无法登录
usermod -s /etc/nologin pkm #将名为pkm 用户的shell设为/sbin/nologin
用户 pkm 将无法登录
1.2 锁定长期不使用的账号
usermod -L 用户名 #锁定用户账号密码
usermod -U 用户名 #解锁用户账号密码passwd -S 用户名 #查看用户账号状态
1.3 删除无用账号
userdel -r 用户名 #删除用户
1.4 锁定账号文件 /etc/passwd 与 /etc/shadow
chattr +i /etc/passwd #锁住文件passwd
chattr -i /etc/passwd #解锁文件passwd
lsattr /etc/passwd #查看文件锁定状态
2.密码安全控制
2.1 密码安全有效期
2.1.1 创建新用户适用
vim /etc/login.defs #在/etc/login.defs配置文件里设置
2.1.2 适用于已有用户
chage 选项 用户名
设置账号过期日期
强制用户下次登陆修改密码
3. 历史记录限制
当我们使用history 命令时可以查看到历史使用命令,这非常的不安全
3.1 临时清除历史命令记录
history -c #清除历史命令记录
3.2 登出时自动删除历史命令记录
1.vim .bash_logout
2.rm -f $HOME/.bash_history
3.3 设置历史命令条数
1. vim /etc/profile
2. export HISTSIZE= 设定的条数
3.4 设置终端自动注销
1. vim /etc/profile
2. export TMOUT=5
4. su 切换用户
4.1 su 命令
su - 目标用户 # 将使用目标用户登录Shell环境
su 目标用户 #不改变当前工作目录和环境变量设置,不完全切换
4.2禁止用户使用su命令
默认情况下,任何用户都允许使用 su 命令,从而有机会反复尝试其他用户(如 root) 的登录密码,这样带来了安全风险
将授权使用 su 命令 的用户添加到 wheel 组,修改/etc/pam.d/su 认证配置以启用 pam_wheel 认证
gpasswd -a 用户名 组名 #将用户添加到组
解开#注释,将pkm加入wheel组之后就可以普通用户之间切换登录
二、PAM 模块认证
Linux-PAM,是linux可插拔认证模块,是一套可定制、 可动态加载的共享库,使本地系统管理员可以随意选择程序的认证方式
PAM使用/etc/pam.d/下的配置文件,来管理对程序的认证方式。应用程序调用相应的PAM配置文件,从而调用本地的认证模块,模块放置在/1ib64/security下,以加载动态库的形式进行认证。比如使用su命令时,系统会提示输入root用户的密码,这就是su命令通过调用PAM模块实现的
1. 查看某个程序是否支持 PAM 模块
ls /etc/pam.d
2. PAM认证流程:
required: 表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败。
requisite: 与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。
sufficient: 如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值。
optional: 不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于session类型),
三、sudo 机制提升权限
普通用户想要使用某些命令但没有权限:
在/etc/sudoers 内进行sudo 设置
visudo 或 vim /etc/sudoers
1. sudo 语法格式:
用户 主机名=命令程序列表
用户 主机名=(用户)命令程序列表
使用户jqg 在所有(ALL)主机都可使用useradd,userdel命令
创建用户cs:
删除用户cs:
2.多个用户或组设置别名
当使用相同授权的用户较多,或者授权的命令较多时,可以采用集中定义的别名。用户、 主机、命令部分都可以定义为别名(必须为大写)
分别通过关键字User_Alias、Host_Alias、Cmnd_Alias来进行设置
切换到cs 使用useradd命令 创建用户wjh
3.启用sudo操作日志
sudo日志记录可被管理员查看,在/etc/sudoers 文件中增加“Defaults logfile”设置
用户使用sudo命令 可在/var/log/sudo 查看到使用记录
四、限制更改GRUB 引导参数
通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁
可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数
grub2 - setpassword #直接设置grub密码
在开机时按esc键,e键进行编辑
此时系统提示我们需要输入用户名和密码才能进入编辑: