目录
1.2 chattr 锁定重要账号文件(如passwd、shadow、fstab等)
一、账户安全措施
1.1 账户管理
- 锁定账户:usermod -L 或passwd -l
- 解锁账户:usermod -U 或passwd -u
- 删除账户:userdel -r 用户名(并删除家目录)
-
设置账户无法登录:创建(useradd)或修改(usermod)账户时加 -s /sbin/nologin
将非登录用户的shell设置为nologin:
1.2 chattr 锁定重要账号文件(如passwd、shadow、fstab等)
lsattr /etc/passwd /etc/shadow #查看文件的状态
chattr +i /etc/passwd /etc/shadow #锁定文件
chattr -i /etc/passwd /etc/shadow #解锁文件
修改密码(l两种方法)
echo 密码 | passwd --stdin 用户名
passwd 用户名
1.3 清除历史记录
命令:history
history 记录存放文件:~/.bash_history
临时清空:history -c
永久清空:echo " ">~/.bash_history,再history -c 清空缓存的记录,如下图:
二、切换用户和限制用户
2.1 su:切换用户
su命令即 switch user,命令可以切换用户身份,并且以指定用户的身份执行命令
2.2 切换用户的方式:
su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换
su - UserName:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换
三、PAM安全认证
3.1.su命令的安全隐患
- 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险;
- 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换。
3.2 PAM可插拔式认证模块
- 是一种高效而且灵活便利的用户级别的认证方式;
- 也是当前Linux服务器普遍使用的认证方式。
3.3 PAM认证原理
- PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_*.so;,
- PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于/lib64/security/下)进行安全认证。
- 用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的。
- 如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/。
- PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用.
sudo
3.1 sudo的概念及特性
概念:
sudo 即superuser do,允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性在最早之前,一般用户管理系统的方式是利用su切换为超级用户。
特性:
- sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员
- sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器
- sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票
- sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440
3.2 sudo的配置
配置sudo文件: letclsudoers直接编辑sudo文件更改完成后必须visudo -c检查语法
官方推荐配置sudo: visudo等价于修改sudo的配置文件,但是此命令会自动检查语法是否正确
配置语法介绍(可使用通配符):
root ALL=(ALL) ALL
用户或组(组前需加%) 登入主机(可写网段)以什么身份执行(可不写) 运行那些命令(命令的绝对路径)
3.3 sudo实例:
1.通过visudo命令 进入root样式后,在下方按格式填写一个允许zhangsan用户使用cat命令查看/etc/shadow文件
- 用户: 直接授权指定的用户名,或采用“&组名"的形式(授权一个组的所有用户)。
- 主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机。
- 用户:用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令。
- 命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“。"进行分隔。ALL则代表系统中的所有命令。
2. 切换zhangsan用户尝试查看/etc/shadow文件,提示权限不足
3.使用sudo命令查看/etc/shadow文件
4.设置别名:用关键字来进行设置别名,批量控制用户
要求:控制用户进行sudo操作时无法使用重启(reboot)、关机(poweroff)、切换init和无法删除
第一步:vim /etc/sudoers 或者visudo 修改配置文件
第二步:添加配置