温馨提示×

Debian系统如何加固

小樊
42
2025-12-26 11:40:55
栏目: 智能运维

Debian系统安全加固清单

一 基础与系统更新

  • 保持系统与软件为最新:执行sudo apt update && sudo apt full-upgrade -y,并定期检查安全公告与订阅Debian Security Announce
  • 启用自动安全更新:安装并启用unattended-upgrades,仅自动拉取与安装安全更新,减少暴露窗口。
  • 加固软件源与完整性:仅使用官方/可信镜像,确保GPG签名校验开启,避免来自不可信源的软件包。
  • 最小化安装:卸载或禁用不必要的软件包与服务,降低攻击面。

二 身份与访问控制

  • 禁止直接使用root登录:创建普通用户并加入sudo组,日常以普通用户操作,需要提权时使用sudo
  • 强化SSH安全:
    • 禁用root远程登录:PermitRootLogin no
    • 禁用空密码:PermitEmptyPasswords no
    • 优先使用密钥认证,必要时再禁用密码登录:PasswordAuthentication no
    • 可限定可登录用户与来源网段(如AllowUsers),并保留Protocol 2
  • 强化密码策略:通过PAM设置最小长度复杂度定期更换要求,杜绝弱口令与复用。
  • 可选:在支持的硬件上启用安全启动 Secure Boot,提升固件与引导链完整性。

三 网络与防火墙

  • 使用UFWiptables/ip6tables实施最小暴露:仅开放必要端口(如SSH 22/TCP、HTTP 80/TCP、HTTPS 443/TCP),默认拒绝其他入站。
  • 细化规则:对SSH可按需限制来源IP段;仅允许已建立连接的入站回包(状态匹配);按需记录被拒包日志以便审计。
  • 定期审查与演练防火墙规则,随业务变更及时更新。

四 服务与应用安全

  • 关闭或卸载不必要的网络服务与端口,减少攻击面。
  • 部署Logwatch进行日志汇总,部署Fail2ban自动封禁暴力破解来源。
  • 如部署LAMP
    • Apache仅启用必要模块,限制目录访问,避免目录列表泄露;
    • MySQL执行mysql_secure_installation,删除匿名账户、限制远程访问
    • PHP在php.ini中禁用危险函数(如exec、system、shell_exec、passthru),并合理设置上传大小等;
    • 使用Certbot申请Let’s Encrypt证书,强制HTTPS
  • 启用AppArmor等强制访问控制,限制程序行为边界。

五 审计监控与备份恢复

  • 启用auditd记录关键系统调用与安全事件,集中存储与定期审计日志。
  • 部署监控告警(如Nagios、Zabbix)与日志分析(如Logwatch),及时发现异常登录、暴力尝试与资源异常。
  • 制定并执行定期备份(配置与数据分离),验证可恢复性;对敏感数据实施传输与静态加密(如TLS/eCryptfs/EncFS)。
  • 建立变更管理定期复检机制:例行检查安全配置、用户权限、开放端口与证书有效期,形成持续加固闭环。

0