温馨提示×

Linux Minimal如何提高安全性

小樊
58
2026-01-12 09:43:04
栏目: 智能运维

Linux Minimal 安全加固清单

一 基础基线

  • 保持系统为最小化安装,仅启用必需软件包与服务;上线前与运行中定期执行补丁更新(优先安全更新)。
  • 清理无用账户与高危服务:检查是否存在空口令账户(如:awk -F: '($2 == ""){print $1}' /etc/shadow)、是否存在UID=0的额外账户(如:awk -F: '($3 == 0){print $1}' /etc/passwd),并清理或锁定不必要的系统账户;默认禁用或移除telnet、rsh、ftp、rpcbind、xinetd等老旧/明文协议服务。
  • 启动并持久化防火墙:CentOS/RHEL 使用 firewalld,Ubuntu/Debian 使用 UFW;默认拒绝入站、仅放行必要端口(如 SSH)。
  • 强化SSH:禁止 root 远程登录、改用密钥登录、可变更默认端口、限制来源网段;为运维创建普通用户并加入 wheel/sudo 组,通过 sudo 精细授权。
  • 部署fail2ban 保护 SSH 等暴露面,配置失败重试阈值与封禁时长,降低暴力破解风险。

二 身份鉴别与访问控制

  • 口令策略:在 /etc/login.defs 设置密码生命周期(如:PASS_MAX_DAYS 90PASS_MIN_LEN 8PASS_WARN_AGE 14);在 /etc/pam.d/system-auth 使用 pam_pwquality.so 强制复杂度(如:minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 difok=5 enforce_for_root)。
  • 登录失败锁定:在 /etc/pam.d/sshd/etc/pam.d/login 配置 pam_tally2.so(如:deny=5 lock_time=30 unlock_time=600 even_deny_root root_unlock_time=600);解锁用 pam_tally2 -u <user> -r
  • 限制 su:在 /etc/pam.d/su 加入 auth required pam_wheel.so use_uid,仅允许 wheel 组成员切换到 root。
  • 会话与历史:设置 TMOUT=600(10 分钟无操作自动退出)、HISTSIZE=5HISTFILESIZE=5,减少信息泄露与会话劫持面。
  • 权限最小化:为服务创建专用系统用户(如:useradd -r -s /sbin/nologin nginx),以最小权限运行;通过 sudoers 白名单授权(如:deployer ALL=(www-data) NOPASSWD: /usr/local/bin/deploy.sh),避免授予不必要的高危命令。

三 服务与网络加固

  • 服务最小化:列出并禁用非必需开机服务(如:systemctl list-unit-files --type=service | grep enabledsystemctl disable <svc> && systemctl stop <svc>),减少攻击面。
  • 防火墙精细化:
    • firewalld(CentOS/RHEL):启用并持久化规则,按需仅放行 SSH/HTTP/HTTPS 等;可配置源地址白名单富规则(如:firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="80" protocol="tcp" accept')。
    • UFW(Ubuntu/Debian):默认拒绝入站、允许出站;按需放行端口与来源(如:ufw allow from 192.168.1.100 to any port 3306/tcp)。
  • 登录防护:启用 fail2ban,为 SSH 设置“短时间多次失败即封禁”的策略(如:5 分钟内失败 3 次封禁 1 小时),并启用日志以便审计。
  • 端口与服务暴露:变更 SSH 端口仅作为“安全通过 obscurity”的辅助手段,必须配合密钥登录与防火墙白名单;对外最小化暴露,数据库、管理端口不对公网开放。

四 日志审计与完整性

  • 集中与保护日志:确保 rsyslog/journald 正常运行,关键日志(如 /var/log/secure/var/log/auth.log)定期归档;建议配置远程日志(如 rsyslog over TLS)以防本地篡改或删除。
  • 审计关键文件:使用 auditd 监控敏感文件变更(如:auditctl -w /etc/passwd -p wa -k passwd_changes),便于事后追溯。
  • 完整性校验:部署 AIDE 建立基线并定期校验(如:aideinit 初始化;aide --check 检查),发现未授权变更及时处置。
  • 合规提示:如按等保 2.0 要求,需覆盖“身份鉴别、访问控制、安全审计、入侵防范、恶意代码防范、剩余信息保护”等控制点,上述措施可作为通用实现路径。

五 维护与验证

  • 持续更新与核查:启用自动安全更新(如 Ubuntu 的 unattended-upgrades、RHEL/CentOS 的 yum-cron 仅安全更新);每月至少一次手动核查可升级包与策略有效性。
  • 例行巡检:定期执行基线核查与攻防演练验证,包括:监听端口与服务(ss -tulnsystemctl list-unit-files --type=service)、防火墙状态与规则(firewall-cmd --list-allufw status)、SSH 配置与密钥登录、fail2ban 状态、账户与 sudo 授权、日志与审计告警。

0