目录
引言:
所有的操作系统都有用户,正常情况下一个账号代表一个用户,而我们需要根据需要对不同的账号进行不同的设置。
账号安全控制
系统账号清理:
主要有以下功能:
- 将非登录用户的shell设为/sbin/nologin
- 锁定长期不使用的账号
- 删除无用账号
- 锁定账号文件(passwd,shadow)
在Linux系统中除了管理员创建的用户外还有系统或程序安装过程而生成的用户账号,他们只是用来维护系统运作、启动或保持服务器进程,一般是不允许登录的,因此也称为非登录用户。
在工作中我们可能会遇到需要将某个无用用户账号删除(在删除之前建议通过文字询问领导是否确认删除该用户账号)
在工作中遇到长期不使用的用户账号或员工离职后我们可以将该用户账号锁定
锁定账号: passwd -l 账户名 或 usermod -L 账户名
解锁账号:passwd -u 账户名 或 usermod -U 账户名
查看用户状态:passwd -S 用户名
除此之外我们还可以锁定用户账号文件:
锁定:chattr +i
解锁:chattr -i
查看文件状态:lsattr 文件名
密码安全控制
主要有以下功能:
- 设置密码的有效期
- 要求用户下次登陆时修改密码
为了安全起见我们都会设置一个密码的有效期,而针对新建的用户和已经存在的用户有着两种不同的设置密码有效期的方式
针对新建的用户:vim /etc/ login.defs
针对已经存在的用户: chage -M 天数 用户名
在创建用户时,由于方便管理基本上所创建的账号密码都是一致的,而交付到用户手中使用时为了安全考虑需要让用户修改密码 。
chage -d 0 用户名 #强制在下次登陆时修改密码
命令历史限制
主要功能:
- 减少记录的命令条数
- 注销时自动清空命令历史
在我们平时的工作中所使用的命令会有记录,这有时会很方便,但也存在安全隐患,因此我们有时需要清空历史。
而清楚历史记录也有两种方式:一种是临时删除,一种是永久删除
临时删除(重启后可恢复历史记录):history -c
永久删除:在 ~(宿主目录)下vim.bashrc ,在里面输入 echo ' ' > ~ /.bash_history
终端自动注销
主要功能:设置用户限制多少秒以后自动注销
案例:设置180秒后自动注销
步骤:
- 进入系统环境变量文件:vim /etc/profile
- 输入:export TMOUT=180
- 保存:wq
- 刷新:source /etc/profile
su命令
主要功能:切换用户
格式:su - 目标用户
密码验证:root用户切换到其他用户时不需要密码验证,其他任意用户切换到root用户时需要密码验证
补充:whoami 命令 #查看当前用户
限制使用su命令
主要功能:限制部分用户使用su命令
在工作中可能会遇到用户通过su命令试root用户的密码,这样存在安全隐患,所以我们需要限制除指定的用户外使用su命令。
操作步骤:
- 讲允许使用su命令的用户加入wheel组中
- 启用pam_wheel认证模块
案例:设置张三用户可以使用su命令切换用户,其他的用户都不可以使用
步骤:
- 先将张三用户加入wheel组中:gpasswd -a zhangsan wheel
- 查看wheel中有那些用户:grep wheel /etc/group
- 开启pam_wheel认证模块:vim /etc/pam.d/su 然后将auth required pam_wheel行的注释取消(去除前面的#号)
在/etc/pam.d/su文件里设置禁止用户使用su命令
开启2行注释6行(默认状态):允许所有用户间使用su命令进行切换
两行都注释:也是运行所有用户都能使用su命令,但root’下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam rootok. so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。)
开启两行:只有root用户和wheel组内的用户才可以使用su命令
sudo命令
配置文件为 /etc/sudoers,文件的默认权限为 440(修改保存退出时必须执行":wq!"命令来强制操作)
使用visudo 或 vi /etc/sudoers配置
格式:用户 主机名列表=命令程序列表
PAM安全认证
- PAM(Pluggable Authenticcation Modules),是 Linux 系统可插拔认证模块(可以认为是一个配置文件或一个小模块)
- 是一套可定制、 可动态加载的共享库,使本地系统管理员可以随意选择程序的认证方式
PAM及作用
- PAM 是一种高效而且灵活便利的用户级别认证方式,它也是当前 Linux 服务器普遍使用的认证方式
- PAM使用/etc/pam.d/下的配置文件,来管理对程序的认证方式。应用程序调用相应的PAM配置文件,从而调用本地的认证模块,模块放置在/1ib64/security下,以加载动态库的形式进行认证。比如使用su命令时,系统会提示输入root用户的密码,这就是su命令通过调用PAM模块实现的
PAM认证原理
认证过程:用户去访问服务——访问su——PAM认证下面的su的配置文件(/etc/pam.d/)——去调用wheel.so模块
PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_ *.so;
PAM认证首先要确定哪一项应用 服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于/lib64/security/下)进行安全认证。
用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的。
如果想查看某个程序是否支持PAM 认证,可以用ls命令进行查看/etc/pam.d/
PAM认证的构成
- 每一行都是一个独立的认证和过程,它们按从上往下的顺序依次由 PAM 模块调用
cat /etc/pam.d/su
ls /lib64/security #查看pam模块
第一列 :代表PAM认证模块类型,分别代表四种不同的任务
认证模块类型 | 作用 |
auth | 对用户身份进行识别,如提示输入密码,判断是否为 root |
password | 使用用户信息来更新数据,如修改用户密码 |
session | 使用用户信息来更新数据,如修改用户密码 |
session | 定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统 |
第二列:PAM使用控制类型来处理和判断各个模块的返回值
第三列:代表PAM模块,默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径
同一个模块,可以出现在不同的模块类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的模块类型编制了不同的执行函数
第四列:代表PAM模块的参数,这个需要根据所使用的模块来添加
PAM 控制类型
总结:
本文主要介绍账号安全的相关内容,比较适合小白观看、本文清楚的对账号的每一项管理的操作及命令