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 解锁账号文件
2,密码安全控制设置密码有效期
要求用户下次登录时修改密码
设置密码有效期——适用于新建用户
编辑配置文件/etc/login.defs[root@localhost ~]# vim /etc/login.defs 编辑配置文件信息
设置密码的有效期——适用于已有用户[root@localhost ~]# chage -M 30 zhangsan 设置已有用户的密码有效期
要求用户下次登录时修改密码(先用passwd把李四设置一个密码)[root@localhost ~]# chage -d 0 lisi 设置李四用户在下次登录时修改密码
登录进去需要设置新的密码,先输入当前你设置的密码
密码要符合不能过于简单,不能连续的字母和数字,有效密码例如:qwer1995
3,命令历史限制减少记录的命令条数
注销时自动清空命令历史
设置你的系统命令历史限制(全局/etc/profile)[root@localhost ~]# vim /etc/profile 配置系统环境变量的配置文件
注销时自动清空命令历史——设置用户的个人配置文件~/.bash_logout
终端自动注销——限制600秒自动注销[root@localhost ~]# vim /etc/profile 配置系统环境变量的配置文件
(二)用户切换与提权,PAM认证
使用su命令切换用户
用途及方法用途:切换用户
格式:su - 目标用户
密码验证root>任意用户,不验证密码
普通用户>其他用户,验证目标用户的密码
限制使用su命令的用户将允许使用su命令的用户加入wheel组(安全组)
启用pam_wheel认证模块vim /etc/pam.d/su 启用pam_wheel模块 修改他的配置文件
这时在用zhangsna去切换管理员的账号就权限不够不能切换了
我们用root用户将zhangsan用户加入到wheel组中,就又可以切换管理员了
查看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安全认证流程
使用sudo机制提升权限
sudo的用途及用法用途:以其他用户身份(如root)执行授权的命令
用法:sudo 授权命令
配置sudo授权visudo或者vim /etc/sudoers
记录格式:用户 主机名列表+命令程序列表
我们没有配置授权的时候使用sudo修改网卡ip信息
我们配置一下sudo授权[root@localhost ~]# visudo 配置授权信息
这时我们就可以使用sudo修改网卡的ip地址了
查看sudo操作记录需启用Defaults logfile配置
默认日志文件:/var/log/sudo
使用visudo添加日志启用配置
查看sudo操作过程的日志文件
后两个部分在下一遍文章中体现
谢谢阅读!!!