目录
前言
作为一个开放源代码的操作系统,Linux服务器以其安全、高效和稳定的显著优势而得以广泛应用,下面主要从账户安全、系统引导、登录控制的角度,优化Linux系统的安全性。
一、账号安全
1、系统账号清理
将非登录用户的shell设为/sbin/nologin;
锁定长期不使用的账号:passwd -l ; usermod -L
删除无用账号:userdel -r
锁定账号文件:passwd -u;usermod -U
2、密码安全
设置密码有效期
新建账号:
vim /etc/login.defs
PASS_MAX_DAYS 30
已有账号:
chage -M 30 lisi
要求用户下次登录时修改密码
chage -d 0 zhangsan
3、命令历史限制
3.1 减少记录的命令条数
vi /etc/profile
HISTSIZE=200
3.2 注销时自动清空历史命令
vi ~/.bash_logout
history -c
clear
history -w 保存 (保存到~/.bash_history)
history -c 删除 (退出删除历史:vim ~/.bash_logout)
3.3 终端自动注销
vim ~/.bash_profile
export TMOUT=300 (无操作,300注销)
二、su命令
1、su切换用户
su zhangsan (不改变当前目录)
su - zhangsan (切换到用户的宿主目录)
2、 限制su命令
启用pam_wheel认证模块
vim /etc/pam.d/su
auth required pam_wheel.so use_uid
把使用su命令的用户加入wheel组
gpasswd -a zhangsan wheel
三、PAM安全认证
1、PAM认证的构成
1.1 查看PAM认证
查看su是否支持PAM模块认证
[root@localhost ~]# ls /etc/pam.d | grep su
ksu
su
sudo
sudo-i
su-l
1.2 查看PAM配置文件
[root@localhost ~]# cat /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required pam_wheel.so use_uid
auth substack system-auth
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so
每一行都是一个独立的认证过程;每一行可以区分为三个字段
2、PAM认证类型
认证管理:接受用户名和密码,进而对该用户的密码进行认证
账户管理:检查账户是否被允许登录系统,账号是否已经过期,账号的登录是否有时间限制等
密码管理:主要是用来修改用户的密码
会话管理:主要是提供对话的管理与记账
3、su命令的安全隐患
默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户,如(root)的登录密码,带来安全风险,为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
4、PAM可插拔式认证模块
是一种高效而且是灵活便利的用户级别的认证方式,也是当linux服务器普遍使用的认证方式。
5、PAM认证原理
Service(服务)——PAM(配置文件)——pam_*.so
首先要确定哪一项服务,然后加载相应的PAM配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证;用户访问服务器时,服务器某一服务程序把用户的请求发送到PAM模块进行验证;不同的应用程序所对应的PAM模块是不同的.
6、PAM安全认证流程
required验证失败时仍然继续,但返回Fail;
requisite验证失败时立即结束整个验证过程,返回Fail;
sufficien验证成功则立即返回,不再继续,否则忽略结果并继续;
optional不用于验证,只显示信息(通常用于session类型)
7、PAM模块顺序
7.1 第一列代表PAM认证模块类型
auth:对用户身份进行识别,如提示输入密码,判断是否为root。
account:对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最大用户数等
password:使用用户信息来更新数据,如修改用户密码
session:定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和