账号安全基本措施
系统账号清理
·将非登录用户的shell设为/sbin/nologin
usermod -s /sbin/nologin
·锁定长期不使用的账号
usermod -L 用户名
passwd -l 用户名
passwd -S 用户名
·删除无用的账户
userdel -r 用户名 ###删除连带家目录-r
·锁定账户文件passwd、shadow
chattr +i /etc/passwd /etc/shadow ###锁定文件并查看状态
lsattr /etc/passwd /etc/shadow
chattr -i /etc/passwd /etc/shadow ###解锁文件
·设置密码有效期
·要求用户下次登录是修改密码
vi /etc/login.defs ###修改密码配置文件适用于新建用户
PASS_MAX_DAYS XX ###打开login.defs文件后修改密码有效期时间,xx表示天数
chage -M 30 用户名 ###适用于已有用户
chage -d 0 用户名 ###强制在下次登录是更改密码
命令历史限制
减少记录的命令条数
vi /etc/profile
登录时自动清空命令历史
vi ~/.bashrc
echo "" >~/.bash_history
终端自动注销
vi /etc/profile
export TMOUT=600(闲置600秒后自动注销)
使用su命令切换用户
su -目标用户(切换用户)(-选项表示将使用目标用户的登录shell)
密码验证
root用户可以随意切换到任意一个用户,不需要验证密码
普通用户切换到其他用户,需要验证目标用户的密码
限制使用su命令的用户
将允许使用su命令的用户加入wheel组
启用pam_wheel认证模块
vi /etc/pam.d/su
Linux中的PAM安全认证
su命令的安全隐患
默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户的登录密码,带来安全风险。
为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
PAM认证的构成
查看某个程序是否支持PAM认证,可使用ls命令
查看su的PAM配置文件:cat /etc/pam.d/su
每一行都是一个独立的认证过程
每一行可以区分为三个字段(认证类型;控制类型;PAM模块及其参数)
使用sudo机制提升权限
sudo命令的用途及用法
用途:以其他用户身份(如root)执行授权的命令
用法:sudo 授权命令
配置sudo授权
visudo或者vi /etc/sudoers
记录格式:用户 主机名=命令程序列表(可以使用通配符和取反符号!)
sudo 命令 第一次执行需要验证密码,默认超时时长为5分钟,在此期间不再重复验证密码
使用关键字User_Alias、Host_Alias、Cmnd_Alias来进行设置别名(别名必须为大写)
查看sudo操作记录
需要启用Defaults logfile配置
默认日志文件:/var/log/sudo
sudo -l 可以查看当前用户获得那些 sudo 权限
终端登录安全控制
限制root只在安全终端登录
安全终端配置:/etc/securettly