(系统环境CentOS7,Ubuntu16)
当今的系统没啥安全可谈,或者说安全具有相对性的.即便系统防护面面俱到,那么如果账户本身安全性不够呢?今天谈一下自己对账号安全的理解.
一 基本安全性
首先判断属性:
系统管理员,uid 0 gid 0
系统用户, uid 1-999
自定义用户,uid 1000-
禁止普通用户su切换root (很多人在工作中知道了管理员密码,使用sudo操作)
vim /etc/pam.d/su
取消注释 auth required pam_wheel.so group=your group
通过系统bug,进行账号提权的以后在讨论
强制下次登录修改密码
chage -d 0 user1
二 密码安全性
A 密码基本安全性
/etc/login.defs 设置登录密码有效期,密码长度等
PASS_MAX_DAYS 30 #密码的最大有效期30天, 99999:永久有期
PASS_MIN_DAYS 0 #是否可修改密码,0可修改,非0多少天后可修改
PASS_MIN_LEN 5 #密码最小长度,使用pam_cracklib module,该参数不再有效
PASS_WARN_AGE 7 #密码失效前多少天在用户登录时通知用户修改密码
B 大家知道shadow文件,现在通常是SHA512加密,加密5000次.
你修改加密次数. (许多Hash解密默认是加密5000次.)
/etc/login.defs
SHA_CRYPT_MIN_ROUNDS 1000-999999999
C 使用密码策略
安装 pam pam_cracklib module或pam_passwdqc module模块(下次详解),
控制密码复杂度,重复度等策略
三 账号管理
设置账号有效期 chage -E 2018-11-09 user1 (2018-11-10 就过期了)
过期时间是在shadow文件倒数第四个字段显示的整数,从1970101开始计数)
禁用账号
usermod -L user1
usermod -U user1 (解禁)
passwd -l user1
passwd -u user1 (解禁)
也可以直接修改shadow文件,在密码字段前加!
清理长期无用账号
userdel -r user1
无需登录账号
usermod -s /sbin/nologin user1
五 账户历史命令,自动注销
vim /etc/profile (全局生效)
HISTSIZE=200 (默认history命令只记录200条命令)
export HISTSIZE=200 (当前生效)
export TMOUT=600 (600秒自动注销)
vim .bash_logout 注销时执行命令, 添加
history -c (清空历史记录)
六 锁定 shadow文件
chattr +i /etc/shadow 锁定文件
chattr -i /etc/shadow 解锁文件
lsattr /etc/shadow 查看锁定状态
七 LOG确认
lastlog 用户登录情况
btmp