文章目录
系统账号清理
1.将非登录用户的Shell设为/sbin/nologin
usermod -s /sbin/nologin 用户名
如图:
2.锁定长期不使用的账号
命令:usermod -L用户名,passwd -l 用户名,passwd -S 用户名
如图
3.删除无用的账号
命令:userdel [-r] 用户名
4.锁定账号文件
命令:passwd,shadow.
- chattr +i /etc/passwd/etc/shadow(锁定)
- lsattr /etc/passwd /etc/shadow
- chattr -i /etc/passwd /etc/shadow(解锁)
如图:
密码安全控制
1.设置密码有效期
2. 要求用户下次登录时修改密码
命令:vi /etc/login.defs
chage -M 30 用户名(适用于新建用户)
chage -d 0 用户名(强制下次登录时更改密码)
如图:
命令历史限制
- 减少记录的命令条数
- 登录时自动清空命令历史
命令:vi /etc/profile
找到HISTSIZE=1000(修改这个文件)
注:改完之后不会立即生效
注:只会保留最后50行
或者登录清除历史命令
如图
终端自动注销
闲置600秒后自动注销
命令:
vi /etc/profile
export TMOUT=600
source /etc/prodile
如图
注:这个值代表三分钟内没有任何操作便会自动注销
取消命令:unset TMOUT
使用SU命令切换用户
用途及用法
- 用途:Substitute User,切换用户
- 格式:su -目标用户
密码验证
- root->任意用户,不验证密码
- 普通用户->其他用户,验证目标用户的密码
命令:
su -root (带-选项表示将使用目标用户的登录shell环境)
whoami(查看当前用户)
限制使用su命令的用户
- 将允许使用su命令的用户加入wheel组
- 启用pam_wheel认真模块
命令:
gpasswd -a anan wheel (正在将用户“anan ”加入“wheel”组中)
vi /etc/pam.d/su
如图
linux中的pam安全认证
1.su命令的安全隐患
●默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
●为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
2.PAM(Pluggable Authentication, Modules)可插拔式认证模块
●是一种高效而且灵活便利的用户级别的认证方式
●也是当前Linux服务器普遍使用的认证方式
命令:
cd /lib64/security/
ls
PAM安全认真流程
控制类型也称做Control Flags,用于PAM验证类型的返回结果
1.required验证失败时仍然继续,但返回Fail
2.requisite验证失败则立即结束整个验证过程,返回Fail
3.sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
4.optional不用于验证,只显示信息sudo(通常用于session类型)
使用sudo机制提示权限
1.su命令的缺点
2.sudo命令的用途及用法
- 用途:以其他用户身份(如root)执行授权的命令
- 用法:sudo 授权命令,用户 主机名=(用户)命令程序
配置sudo授权
- visudo或者vi /etc/sudoers(此文件的默认权限为440,保存退出时必须执行":wq!"命令来强制操作)
- 记录格式 :用户 主机名=命令程序列表
注:
用户:直接授权指定的用户名,或采用"*组名"的形式(授权一个组的所有用户)。
主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名AAL则代表所有主机
(用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令
命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号" ,"进行分隔。ALL则代表系统中的所有命令
命令格式例如:
admin ALL=/sbin/ifconfig #说明admin在所有主机上拥有ifconfig权限
admin1 localhost=/sbin/,!/sbin/reboot,!/sbin/poweroff #通配符“”表示所有、取反符号“!”表示排除 #说明admin1拥有除了重启和关机的所有权限
%wheel ALL=NOPASSWD: ALL #表示wheel组成员无需验证密码即可使用sudo执行任何命令(删除#就需要密码了)
admin2 ALL=(root)NOPASSWD: /bin/kill, /usr/bin/killall #说明admin2用户不需要输入密码即可执行kill和killall命令
注:退出之后,使用命令前面需要加sudo,使用命令需要密码
创建别名
用户别名 User_Alias
主机别名 Host_Alias
命令别名 Cmnd_Alias
如图所例
注:在root用户输入vim /etc/sudoers
启用sudo操作日志
命令:
visudo
Defaults logfile = “/var/log/sudo”
如图
查看sudo操作记录
- 需启用Defaults logfile配置
- 默认日志文件:/var/log/sudo
查询授权的sudo操作
命令:sudo -l
开关机安全控制
调整BIOS引导设置
- 将第一引导设备设为当前系统所在硬盘
- 禁止从其他设备(光盘、U盘、网络)引导系统
- 将安全级别设为setup,并设置管理员密码
GRUB限制
- 使用grub2-mkpasswd-pbkdf2生成密钥
- 修改/etclgrub.d/00_header文件中,添加密码记录
- 生成新的grub.cfg配置文件
命令
grub2-mkpasswd-pbkdf2–>#根据提示设置GRUB 菜单的密码
PBKDF2 hash of your password is grub.pbkdf2…–>#省略部都分内容为经过加密生成的密码字符串
cp /boot/grub2/grub.cfg /boot/grub2/ grub.cfg.bak
cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
vim /etc/grub.d/o0_header
cat <<EOF
set superusers=“root”–>#设置用户名为root
password pbkdf2 root grub.pbkdf2…–>#设置密码,省略部分内容为经过加密生成的密码字符串
grub2-mkconfig -o /boot/grub2/grub.cfg–>#生成新的grub.cfg文件
重启系统进入GRUB菜单时,按e键将需要输入账号密码才能修改引导参数。