一、基本安全措施
1、系统账号清理
(1)将非登录用户的shell设为/sbin/nologin
a、usermod -s
b、chsh(交互式修改)
c、chsh -s
除了以上这三种方法,也可以直接vi编辑/etc/passwd文件进行修改
(2)锁定长期不是用的账号
a、锁定:passwd -l+用户名(将在密文前增加两个“!”)解锁:passwd -u+用户名
b、锁定:usermod -L+用户名(将在密文前增加一个“!”)解锁:usermod -U+用户名
查看:passwd -S
除了以上这两种种方法,也可以直接vi编辑/etc/shadow文件进行修改
(3)删除无用的账号
userdel [-r] +用户名
(4)锁定账号文件(/etc/passwd、/etc/shadow)
锁定:chattr +i
解锁:chattr -i
查看:lsattr
2、密码安全控制
(1)设置密码有效期
给已存在的用户的密码设置有效期:chage -M+天数+用户名
passwd -x+天数+用户名
给以后添加的用户的默认密码设置有效期:通过vi编辑/etc/login.defs文件,修改“PASS_MAX_DAY”后面的数值
(2)要求用户下次登录时修改密码
chage -d 0+用户名
3、命令历史限制
history:查看历史命令
echo $HISTSIZE:查看历史命令条数
(1)减少历史的命令条数
通过vi编辑文件/etc/profile文件,修改“HISTSIZE=”后面的数值,修改完后:source /etc/profile(. /etc/profile)
export HISTSIZE=跟自己设置的数值,修改完后:source /etc/profile(. /etc/profile)
(2)注销时自动清空历史命令
vi编辑宿主目录下的“.bash_logout”文件,添加history -c,(虽然删除了历史命令但是.bash_logout这个文件里还有所以)保存退出之后:>.bash_history(清空这个文件里的历史命令)
4、终端自动注销
a、通过vi编辑/etc/profile文件添加“TMOUT=自己设定的数值(以秒为单位)”,source /etc/profile(. /etc/profile)
b、export TMOUT=自己设定的数值,source /etc/profile(. /etc/profile)
若想取消这个变量:unset TMOUT
二、切换用户
su:切换用户
格式:su [-] 目标用户(“-”等同于“--login”或“-l”,表示切换用户后进入目标用户登录的shell环境)
查看su操作记录(安全日志文件:/var/log/secure):tac /var/log/secure
三、PAM安全认证(可插拔认证模块PAM)
1、PAM认证原理(PAM认证一般遵循的顺序):Service--->PAM--->pam_*.so
2、常见的四种认证类型:auth 认证管理 接受用户名和密码,进而对该用户的密码进行认证
account 账户管理 检查账户是否被允许登录系统,账号是否过期,账号的登录是否有时间段的限制等权限
password 密码管理 主要是用来修改用户的密码
session 会话管理 只要是提供对会话的管理和记账
3、常见的五种控制类型:required 验证失败仍然继续,但返回fail
requisite 验证失败则立即结束整个验证过程,返回fail
sufficient 验证成功则立即返回,不再继续,否则忽略结果并继续
optional 不用于验证,只是显示信息(通常用于session类型)
include 不进行认证,转到后面PAM模块进行认证
四、sudo命令:提升用户的执行权限
1、sudo:以其他的用户身份执行授权的命令
2、格式:sudo+授权的命令
3、配置sudo授权
a、添加单个用户的sudo授权
visudo或者vi /etc/sudoers,添加配置内容:Defaults logfile=/var/log/sudo
配置的内容的格式为:用户+主机名列表=命令程序列表(命令前加“!”表示“除了”此命令)
b、批量授权:将希望提权的用户加入wheel组
Host Aliases:主机别名
User Aliases:用户别名
Command Aliases:命令别名
设置别名后添加格式:用户别名+主机别名=命令别名(大写)
4、查询授权操作:sudo -l