一、系统账号清理
1、将用户设置为无法登录
命令:usermod -s /sbin/nologin + 用户名
tail /etc/passwd :查看用户的属性
2、锁定用户
命令:passwd -l + 用户名 :锁定用户的密码
passwd -u + 用户名 :解锁用户的密码
3、删除用户
命令:userdel -r + 用户名 :删除用户的同时删除用户的家目录
4、锁定文件
命令:chattr +i +文件 ,可以对文件进行锁定,不得任意改动文件或目录,不能对文件进行编辑、删除等操作。
chattr -i +文件 ,即对文件解除锁定。
lsattr + 文件 ,查看文件是否被锁定。
二、密码安全控制
对已有用户设置密码规则
命令:chage + 选项 + 用户名
选项:-m :密码可更改的最小天数,每隔多少天才可以设置一次密码
-M :密码保持有效的最大天数,每隔多少天要设置一次密码
-d :上一次更改的日期,- d 0表示强制下一次登录必须要改密码
三、历史命令
Shell 命令历史机制为用户提供便利的同时,另一方面也带来了潜在的风险。只要获得命令历史文件,该用户的命令操作过程将会一览无余,如果曾经在命令行输入明文的密码,则无意之中服务器的安全壁垒又多了一个缺口。Bash 终端环境中,历史命令的记录条数由变量 HISTSIZE 控制,默认为 1000 条。通 过修改/etc/profile 文件中的 HISTSIZE 变量值,可以影响系统中的所有用户。
命令:history -c 和 clear 都表示临时清理历史命令,重启或切换用户即失效
修改记录历史命令的默认值:
四、切换用户
命令 :su
su 用户名:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换,只切换一部分;
su - 用户名:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换,切换用户身份更彻底;
注意:su 切换新用户后,使用 exit 退回至旧的用户身份,而不要再用 su 切换至旧用户,否则会生成很多的bash子进程,环境可能会混乱。
五、PAM安全认证
1、概述
PAM是插件式验证模块,最常见的功能是用户名、密码验证功能。开发出一款软件如果用到用户名和密码功能时就会调用PAM架构中的密码模块,不需要二次开发。 PAM是一种高效且灵活的用户级别的认证方式,也是当前linux服务器普遍使用的认证方式。
2、PAM认证原理
PAM认证一般遵循这样的顺序:Service(服务)→PAM(配置文件)→pam_*.so。
PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认模块(位于/lib64/security/下) 进行安全认证。
用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程席所对应的PAM模块也是不同的。
3、PAM安全认证流程
required验证失败时仍然继续,但是返回Fail
requisite验证失败则立即结束整个验证过程,返回Fail
suficient验证成功则立即返回,不再继续,否则忽略结果并继续
六、limit
limit 功能:在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可运行的进程数量,可用内存空间等
命令:ulimit -a :显示当前所有的资源限制
ulimit -n +数字:设置内核可以同时打开的文件描述符的最大值.单位:n
七、sudo
sudo是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具。sudo不仅减少了root用户的登录和管理时间,同样也提高了安全性。
sudo能够授权指定用户在指定主机上运行某些命令,并可以记录日志,记录每个用户进行了什么操作。在用户使用sudo命令时需要输入密码,输入密码后有效期为5分钟。sudo的配置文件是/etc/sudoers,它允许系统管理员集中的管理用户的使用权限和使用的主机。
修改sudo配置文件: