目录: 1、为文件设置密码 2、系统账号清理 3、密码安全控制 4、命令历史限制 5、su命令切换用户 6、PAM认证 7、sudo 账号基本安全措施:系统账号清理、密码安全控制、命令历史清理、自动注销
为文件设置密码:
grub2 -setpassword 设置后 进入单用户会要求输入密码:系统账号清理:
将非登录用户的shell设为/sbin/nologin 锁定长期不适用的账号 删除无用的账号 锁定账号文件passwd、shadow chatter 锁定配置文件
锁定后能读不能改 解锁: +i换成-i last查看用户最后登录时间
密码安全控制
1、设置密码有效期 2、要求用户下次登录时修改密码 新建用户: vim /etc/login.defs 对于已有用户可以使用chage命令 chage chage 选项 用户 -m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。 -M:密码保持有效的最大天数。 -w:用户密码到期前,提前收到警告信息的天数。 -E:帐号到期的日期。过了这天,此帐号将不可用。 -d:上一次更改的日期。 -i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。 -l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期 -d 0 chage -d 0 abc //abc用户下次登录改密码 强制改密码:先输的是当前密码,之后是更改密码命令历史限制
历史默认记录1000条临时生效:
history -c永久更改:
vim /etc/profile //在HISTSIZE那改,并且前面加export和空格 export HISTSIZE=200 其中200是变量,可以根据自己的需要更改 为什么export:在当前文档设置 只对这个文档设置,加入export对所有的文档都生效开机后清除历史命令
.bashrc 开机后会自动 执行此文件中的命令 .bash_logout 登出会自动执行此文件里的内容 history的命令实际上是存在.bash_history 可以在.bashrc和bash_logout那设置 vim ~/.bash_logout //关机清除 echo " " >~/.bash_history (关机清除实验后没有变化不知道为什么) vim ~/.bashrc //开机清除 echo " " >/~/.bash_history (这个成功了) 设置长时间未使用进行登出: vim /etc/profile export TMOUT=30s (30s后退出) source /etc/profile //刷新一下su命令切换用户
可以无限试su(容易被黑客试密码) 格式:su -目标用户 直接su就是切换到root 有无-的区别是,加了-,连你的bash环境也切换,比如root切普通用户,你还是在root目录,加了-,那你目录也自动切成普通用户,完整的切换。 密码验证: root切任意用户不用密码 普通用户切其他用户要密码 限制使用su命令的用户 将允许使用su命令的用户加入wheel组 gpasswd -a a wheel 启用pam_wheel vim /etc/pam.d/su 更改的是第二和第六行,给他们+上# 2 # auth sufficient pam_ rootok.so 6 #auth required pam_ wheel.so use_ _uid a)以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。 b)两行都注释也是允许所有用户都能使用su命令,但root'下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam rootok. so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。) c)如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令 d)如果注释第一行,开启第二行,表示只有whee1组内的用户才能使用su命令,root用户也被禁用su命令。 wheel 组 在linux中是超级管理员组 加到超级超级管理员组 gpasswd -a zhangsan wheelPAM认证
PAM 只关注如何为服务验证用户的 API,通过提供一些动态链接库和一套统一的API 接口,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序一种认证框架,自身不做认证。 一般遵循的顺序:Service(服务)→PAM(配置文件)→pam_*.so rpm -qi pam 查看当前pam模块 相关文件: 包名: pam 模块文件目录:/lib64/security/*.so 特定模块相关的设置文件:/etc/security/ 应用程序调用PAM模块的配置文件:/etc/pam.d/APP_NAME- 主配置文件:/etc/pam.conf,默认不存在,一般不使用主配置
- 为每种应用模块提供一个专用的配置文件:/etc/pam.d/APP_NAME
- 注意:如/etc/pam.d存在,/etc/pam.conf将失效