Linux系统安全及应用
账户安全控制
Linux系统是通过登录用户账号来进入操作系统的
系统账号清理
1)禁用不常用的账户,防止用户身份被冒充。
usermod -L zhangsan 锁定账号
passwd -l zhangsan 锁定用户密码
2)设置密码满足复杂性,满足四分之三原则,长度不低于七位。
echo “123456” | passwd --stdin zhangsan
3)定期修改密码,防止密码被暴力破解。
4)删除不常用的用户,禁用或者删除不用的用户,增强安全性。
userdel [-r] zhangsan
5)设置管理服务账户禁止系统登陆,防止权限过大发生误操作。
如果服务器中的用户账号已经固定,不再更改,还可以采用锁定账号配置文件的方法
chattr +i /etc/passwd /etc/shadow
#锁定文件
lsattr /etc/passwd /etc/shadow
#查看为锁定的状态
chattr -i /etc/passwd /etc/shadpow
#解锁文件
lsattr /etc/passwd /etc/shadow
#查看为解锁的状态
密码安全控制
设置密码有效期
命令历史限制
历史命令的限制:
减少记录的命令条数
登录时自动清空命令历史
用户的切换和提权
为了保护Linux服务器的安全,所以要限制普通用户的权限,而且还要指定几个用户成为管理员所以要需要用户权限的切换和提权。
su命令 切换用户
root用户到普通用户不需要密码
普通用户到其他用户需要验证用户密码
限制使用su命令的用户
a)以上两行是默认状态(即开启第一-行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。
b)两行都注释也是运行所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码;如果第.行不注释,则root使用su切换普通用户就不需要输入密码(pamrootok.so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。)
c)如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令。
d)如果注释第一行,开启第二行,表示只有wheel组内的用户才能使用su命令,root用户也被禁用su命令。
gpasswd -a zhangsan wheel
#添加授权用户zhangsan 到wheel 组中
groups zhangsan
vim /etc/pam.d/su
auth required pam_ wheel.so use_ uid
#去掉此行开头的注释
启用pamwheel认证以后,未加入到wheel组内的其他用户将无法使用su命令
查看su操作记录
安全日志文件: /var/log/secure
sudo 命令 提升执行权限
通过 su 命令可以非常方便地切换为另一个用户,但前提条件是必须知道目标用户的登录密码
对于生产环境中的 Linux 服务器,每多一个人知道特权密码,那么其安全风险也就增加一份
那么,有没有一种这种的办法,既可以让普通用户拥有一部分管理权限,又不需要将 root 用户的密码告诉他呢,这就是 sudo 命令,可以提升执行权限
不过需要管理员预先进行授权,指定允许哪些用户以超级用户(或者其他普通用户)的身份来执行哪些命令
配置sudo授权
visudo 或者 vim /etc/sudoers
PAM 安全认证
PAM(Pluggable Authenticcation Modules),是 Linux 系统可插拔认证模块
Linux 系统使用 su 命令存在安全隐患,默认情况下,任何用户都允许使用 su 命令,从而有机会反复尝试其他用户(如 root)的登录密码,带来安全风险
为了加强 su 命令的使用控制,可以借助于 PAM 认证模块,只允许极个别用户使用 su 进行切换。
PAM(Pluggable Authenticcation Modules),是 Linux 系统可插拔认证模块
Linux 系统使用 su 命令存在安全隐患,默认情况下,任何用户都允许使用 su 命令,从而有机会反复尝试其他用户(如 root)的登录密码,带来安全风险
为了加强 su 命令的使用控制,可以借助于 PAM 认证模块,只允许极个别用户使用 su 进行切换