确保Linux用户密码文件(通常是/etc/shadow
)的安全性至关重要,以下是分层次的综合解决方案:
bash
sudo chmod 600 /etc/shadow # 仅root可读写
sudo chown root:root /etc/shadow
suid/sgid
程序:
bash
sudo find / -type f -perm /6000 -exec chmod a-s {} \; 2>/dev/null
/etc/login.defs
和/etc/security/pwquality.conf
):
bash
sudo vi /etc/security/pwquality.conf
# 示例配置:
minlen = 12
minclass = 3 # 至少包含数字/大写/小写/特殊字符中的3类
maxrepeat = 3
bash
sudo chage -M 90 username # 每90天修改密码
sudo chage -W 7 username # 密码过期前7天提醒
bash
sudo authselect select shadow sha512
bash
sudo sed -i 's/^ENCRYPT_METHOD.*/ENCRYPT_METHOD SHA512/' /etc/login.defs
bash
sudo auditctl -w /etc/shadow -p wa -k shadow_access
bash
sudo lastb | head -n 20 # 查看失败登录
sudo grep "Failed password" /var/log/auth.log
bash
sudo passwd -l root # 锁定root密码(仅允许sudo)
sudo vi /etc/ssh/sshd_config
# 添加:PermitRootLogin no
bash
sudo apt install libpam-google-authenticator
# 编辑/etc/pam.d/sshd添加:
auth required pam_google_authenticator.so
bash
sudo tar -czf /backup/shadow_backup.tar.gz --owner=root --group=root /etc/shadow
sudo openssl enc -aes-256-cbc -salt -in /backup/shadow_backup.tar.gz -out /backup/shadow_encrypted.tar.gz
bash
sudo passwd -l ALL_USERS # 锁定所有账户
sudo killall -u hacked_user # 终止可疑用户进程
sudo rpm -Va | grep '^..5' # 检查被修改的系统文件(RHEL/CentOS)
通过以上措施,可显著降低密码文件泄露风险。关键点在于:最小权限+强加密+持续监控+纵深防御。建议结合企业安全策略(如LDAP集成、SIEM日志分析)进一步加固。