linux基线排查
字数 1264 2025-08-22 12:22:24
Linux基线排查与安全加固指南
1. 账号管理与认证授权
1.1 用户账号口令检查
检查空口令账号:
awk -F: '($2==""){print$1}' /etc/shadow
- 有输出表示存在空口令账号,无输出表示不存在
$2表示密码字段,$1表示用户名
密码策略检查:
检查/etc/login.defs文件中的以下参数:
PASS_MAX_DAYS 90 # 密码最长过期天数
PASS_MIN_DAYS 80 # 密码最小过期天数
PASS_MIN_LEN 8 # 密码最小长度(在Ubuntu中固定为8位)
PASS_WARN_AGE 7 # 密码过期警告天数
1.2 root用户远程登录限制
- 修改SSH配置文件:
vim /etc/ssh/sshd_config
找到PermitRootLogin,去掉注释并设置为no
- 重启SSH服务:
systemctl restart sshd
# 或
systemctl restart ssh
1.3 检查UID为0的非root用户
awk -F: '($3==0){print$1}' /etc/passwd
- 应只有root用户的UID为0
- 发现其他UID为0的用户需要调查
1.4 设置sudo用户
- 创建新用户并设置密码:
useradd user_01
passwd user_01
- 修改sudoers文件:
chmod u+w /etc/sudoers && vim /etc/sudoers
u+w表示给文件所有者添加写入权限- 添加配置:
用户名 ALL=(ALL:ALL)ALL - 示例:
root ALL=(ALL:ALL)ALL表示root可以从任何终端以任何用户身份执行任何命令
- 测试sudo用户是否可用
1.5 启用SSH密钥登录并关闭密码登录
- 生成SSH密钥:
ssh-keygen
密钥默认存放在/home/用户名/.ssh/id_rsa
- 配置公钥:
cat /home/用户名/.ssh/id_rsa.pub >> /home/用户名/.ssh/authorized_keys
- 关闭密码登录:
vim /etc/ssh/sshd_config
修改相关参数后重启SSH服务
2. Linux系统文件与访问控制
2.1 远程连接安全配置
检查.netrc文件:
find / -name .netrc 2>/dev/null
.netrc文件可能包含明文认证信息- 用于FTP、Git、Curl等工具的自动认证
检查.rhost文件:
find / -name .rhost 2>/dev/null
.rhosts文件用于远程主机认证- 包含允许访问的主机名和用户列表
- 发现后应记录并考虑删除
2.2 用户umask安全配置
cat /etc/profile /etc/csh.login /etc/csh.cshrc /etc/bashrc 2>/dev/null | grep umask
- umask决定文件和目录的默认权限
- 示例:umask 022
- 文件权限:644 (rw-r--r--)
- 目录权限:755 (rwxr-xr-x)
- 预期结果:无错误的umask值
2.3 重要目录和文件权限设置
查找SUID/SGID文件:
find / -perm -04000 2>/dev/null # SUID
find / -perm -02000 2>/dev/null # SGID
- SUID权限:以文件属主身份执行
- SGID权限:以文件属组身份执行
- 2>/dev/null忽略错误信息
检查可写目录:
find / -type d -perm -o+w 2>/dev/null
- 查找任何人都有写权限的目录
检查隐藏文件和目录:
find / -name ".*" -print -xdev
- 查找所有隐藏文件和目录
2.4 系统core dump设置
编辑/etc/security/limits.conf,添加:
soft core 0
hard core 0
- 限制core dump文件生成
- 防止敏感信息泄露
3. Linux日志审计
3.1 登录事件记录
检查/etc/rsyslog.conf中的authpriv参数:
more /etc/rsyslog.conf
- 确保所有登录事件都被记录
- authpriv相关配置决定认证日志级别
4. 其他安全注意事项
- 定期检查
/etc/passwd和/etc/shadow文件完整性 - 监控
/etc/sudoers文件变更 - 定期审计系统日志
- 检查不必要的服务和进程
- 保持系统和软件更新
5. 实施建议
- 按照上述检查点建立定期检查机制
- 对发现的问题及时修复
- 记录所有检查结果和修复操作
- 根据业务需求调整安全策略
- 实施最小权限原则
通过以上基线检查和加固措施,可以有效提升Linux系统的安全性,减少潜在的安全风险。