Linux的系统安全及应用我将分三部分来讲解理论跟实践相结合,此文先带大家了解一下账号安全控制!!!



(一)基本安全措施

用户账号是计算机使用者的身份凭证或标识,每个要访问系统资源的人,必须凭借其用 户账号才能进入计算机。在 Linux 系统中,提供了多种机制来确保用户账号的正当、安全使 用。

1,系统账号清理

  • 将非登录用户的shell设为/sbin/nologin(vim /etc/passwd)

  • 锁定长期不使用的账号(passwd或者usermod)

  • 删除无用的账号(userdel)

  • 锁定账号文件passwd,shadow

锁定文件并查看状态—chattr,lsattr

[root@localhost ~]# lsattr /etc/passwd /etc/shadow  查看状态
---------------- /etc/passwd
---------------- /etc/shadow
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow  锁定账号文件
[root@localhost ~]# lsattr /etc/passwd /etc/shadow  查看此时状态为i锁定状态
----i----------- /etc/passwd
----i----------- /etc/shadow
[root@localhost ~]# useradd zhangsan   可以尝试添加一个用户
useradd:无法打开 /etc/passwd
[root@localhost ~]# tail -3 /etc/passwd   因为passwd文件锁定所以无法添加
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
test1:x:1000:1000:test1:/home/test1:/bin/bash
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow   解锁账号文件

Linux系统安全及应用—账号安全控制(九)_系统账号清理

2,密码安全控制

  • 设置密码有效期

  • 要求用户下次登录时修改密码

设置密码有效期——适用于新建用户

编辑配置文件/etc/login.defs

[root@localhost ~]# vim /etc/login.defs  编辑配置文件信息

Linux系统安全及应用—账号安全控制(九)_密码安全控制_02

Linux系统安全及应用—账号安全控制(九)_命令历史自动注销_03

Linux系统安全及应用—账号安全控制(九)_命令历史自动注销_04

设置密码的有效期——适用于已有用户

[root@localhost ~]# chage -M 30 zhangsan  设置已有用户的密码有效期

Linux系统安全及应用—账号安全控制(九)_密码安全控制_05

要求用户下次登录时修改密码(先用passwd把李四设置一个密码)

[root@localhost ~]# chage -d 0 lisi   设置李四用户在下次登录时修改密码

Linux系统安全及应用—账号安全控制(九)_命令历史自动注销_06

登录进去需要设置新的密码,先输入当前你设置的密码

Linux系统安全及应用—账号安全控制(九)_账号安全_07

密码要符合不能过于简单,不能连续的字母和数字,有效密码例如:qwer1995

Linux系统安全及应用—账号安全控制(九)_账号安全_08

3,命令历史限制

  • 减少记录的命令条数

  • 注销时自动清空命令历史

设置你的系统命令历史限制(全局/etc/profile)

[root@localhost ~]# vim /etc/profile  配置系统环境变量的配置文件

Linux系统安全及应用—账号安全控制(九)_账号安全_09

Linux系统安全及应用—账号安全控制(九)_账号安全_10

注销时自动清空命令历史——设置用户的个人配置文件~/.bash_logout

Linux系统安全及应用—账号安全控制(九)_系统账号清理_11

Linux系统安全及应用—账号安全控制(九)_密码安全控制_12

终端自动注销——限制600秒自动注销

[root@localhost ~]# vim /etc/profile  配置系统环境变量的配置文件

Linux系统安全及应用—账号安全控制(九)_系统账号清理_13


(二)用户切换与提权,PAM认证

使用su命令切换用户

用途及方法

  • 用途:切换用户

  • 格式:su - 目标用户

密码验证

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

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

Linux系统安全及应用—账号安全控制(九)_账号安全_14

限制使用su命令的用户

  • 将允许使用su命令的用户加入wheel组(安全组)

  • 启用pam_wheel认证模块

vim /etc/pam.d/su 启用pam_wheel模块 修改他的配置文件

Linux系统安全及应用—账号安全控制(九)_密码安全控制_15

这时在用zhangsna去切换管理员的账号就权限不够不能切换了

Linux系统安全及应用—账号安全控制(九)_账号安全_16

我们用root用户将zhangsan用户加入到wheel组中,就又可以切换管理员了

Linux系统安全及应用—账号安全控制(九)_账号安全_17

查看su操作记录

  • 安全日志文件:/var/log/secure

su命令的安全隐患

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

  • 为加强su的使用控制,可以借助PAM认证模块,只允许极个别用户使用su命令进行切换

PAM可插拔式认证模块,他是一种高效而且灵活便利的用户级别的认证方式,他也是当前Linux服务器普遍使用的认证方式

  • pam认证一般遵循的顺序:service>pam(配置文件)>pam_*.so

  • pam认证首先要确定哪一项服务,然后加载相应的pam配置文件(/etc/pam.d)下,最后调用认证文件(/lib/security)进行安全认证

  • 用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到pam模块进行认证

  • 不通的应用程序所对应的的pam模块也是不同的

  • 查看某个程序是否支持pam认证,可用ls命令进行查看,例如查看su是否支持pam模块认证(ls /etc/pam.d | grep su)

  • 查看su的pam配置文件:cat /etc/pam.d/su

  • 每一行都是一个独立的认证过程

  • 每一行可以区分为三个字段(认证类型,控制类型,pam模块及其参数)

PAM安全认证流程

Linux系统安全及应用—账号安全控制(九)_系统账号清理_18

使用sudo机制提升权限

sudo的用途及用法

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

  • 用法:sudo 授权命令

配置sudo授权

  • visudo或者vim /etc/sudoers

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

我们没有配置授权的时候使用sudo修改网卡ip信息

Linux系统安全及应用—账号安全控制(九)_系统账号清理_19

我们配置一下sudo授权

[root@localhost ~]# visudo  配置授权信息

Linux系统安全及应用—账号安全控制(九)_账号安全_20

这时我们就可以使用sudo修改网卡的ip地址了

Linux系统安全及应用—账号安全控制(九)_密码安全控制_21

查看sudo操作记录

  • 需启用Defaults logfile配置

  • 默认日志文件:/var/log/sudo

使用visudo添加日志启用配置

Linux系统安全及应用—账号安全控制(九)_命令历史自动注销_22

查看sudo操作过程的日志文件

Linux系统安全及应用—账号安全控制(九)_密码安全控制_23


后两个部分在下一遍文章中体现

谢谢阅读!!!