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用户远程登录限制

  1. 修改SSH配置文件:
vim /etc/ssh/sshd_config

找到PermitRootLogin,去掉注释并设置为no

  1. 重启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用户

  1. 创建新用户并设置密码:
useradd user_01
passwd user_01
  1. 修改sudoers文件:
chmod u+w /etc/sudoers && vim /etc/sudoers
  • u+w表示给文件所有者添加写入权限
  • 添加配置:用户名 ALL=(ALL:ALL)ALL
  • 示例:root ALL=(ALL:ALL)ALL表示root可以从任何终端以任何用户身份执行任何命令
  1. 测试sudo用户是否可用

1.5 启用SSH密钥登录并关闭密码登录

  1. 生成SSH密钥:
ssh-keygen

密钥默认存放在/home/用户名/.ssh/id_rsa

  1. 配置公钥:
cat /home/用户名/.ssh/id_rsa.pub >> /home/用户名/.ssh/authorized_keys
  1. 关闭密码登录:
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. 其他安全注意事项

  1. 定期检查/etc/passwd/etc/shadow文件完整性
  2. 监控/etc/sudoers文件变更
  3. 定期审计系统日志
  4. 检查不必要的服务和进程
  5. 保持系统和软件更新

5. 实施建议

  1. 按照上述检查点建立定期检查机制
  2. 对发现的问题及时修复
  3. 记录所有检查结果和修复操作
  4. 根据业务需求调整安全策略
  5. 实施最小权限原则

通过以上基线检查和加固措施,可以有效提升Linux系统的安全性,减少潜在的安全风险。

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