账号安全基本措施

系统账号清理

非登录用户的shell改为/sbin/nologin

usermod -s /sbin/nologin user1

锁定长期不用的账号

方法1

usermod -L user1(锁定后的账户shadow文件密码段全面有!)

usermod -U user1(解锁)

方法2

passwd -l user1(锁定后的账户shadow文件密码段全面有!!,注意和usermod有区别,一个!或者两个!!的区别)

passwd -u user1(解锁)

passwd -S user1 (检查锁定情况)

删除无用的账号

userdel -r user1(r代表一并删除家目录)

使用su命令切换用户z

  • 用途:Substitute User,切换用户
  • 格式:su -目标用户

密码验证

root-->任意用户,不验证密码

普通用户-->其他用户,验证目标用户的密码

[jerr@localhost~]$ su -root

口令

[jerr@localhost~]# whoami

root

带-选项表示将使用目标,用户的登录shell环境

限制使用su命令的用户

  • 将允许使用su命令的用户加入wheel组
  • 启用pa_wheel认证模块

[root@localhost~]# vi/etc/pam.d/su

#%PAM-1.0

auth sufficient pam_rootok.so

auth required pam_wheel.so use_uid

(a)以上两行是默认状态(及开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换

(b)两行都注释也是运行所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码:如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam_)

查看su操作记录

安全日志文件

Linux中的PAM安全认证

默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登陆密码,带来安全风险

为了加强

PAM认证原理

一般遵循的顺序

Service(服务)->PAM(配置文件)->pam_*.so

PAM认证的构成

查看某个程序是否支持PAM认证,可以用ls命令

示例:查看su是否支持PAM模块认证

ls /etc/pam.d|grep su

查看su的PAMpzwj:cat/etc/pam.d/su

  • 每一行都是一个独立的认证过程
  • 每一行可以区分为三个字段

认证类型

控制类型

PAM模块及其参数

使用sudo机制提升权限

su命令的缺点

sudo命令的用途及用法

  • 用途:以其他用户身份(如root)执行授权的命令
  • 用法:sudo 授权命令

配置sudo授权

visudo或vi/etc/sudoers

记录格式:用户 主机名=命令程序列表

[root@localhost~]#visudo

......

%wheel ALL=NOPASSWD:ALL

jerry localhost=/sbin/ifconfig

syrianer localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route

Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum

mile localgost=PKGTOOLS

调整BIOS引导设置

  • 将第一引导设备设为当前系统所在硬盘
  • 禁止从其他设备(光盘、U盘、网络)引导系统
  • 将安全级别设为setup,并设置管理员密码

GRUB限制

  • 使用grub2-makpasswd-pbkdf2生成密钥
  • 修改/etc/grub.d/00_header
  • 生成新的grub.cfg配置文件

限制root只在安全终端登陆

安全终端配置:/etc/securetty

[root@localhost~]# vi

禁止普通用户登陆

建立/etc/nologin文件

删除nologin文件或重启后即恢复正常