温馨提示×

debian进程安全防护怎么做

小樊
35
2025-12-24 12:19:56
栏目: 智能运维

Debian 进程安全防护实操清单

一 基础与访问控制

  • 保持系统与软件为最新:执行sudo apt update && sudo apt upgrade,及时修补漏洞。
  • 最小权限与提权控制:日常使用普通用户 + sudo,禁止直接以root登录与操作。
  • 强化SSH:更改默认端口、禁用root远程登录、启用密钥认证,并配合防火墙仅放行必要来源与端口。
  • 主机防火墙:使用ufwiptables仅开放所需端口(如 22/80/443),默认拒绝其他入站。
  • 系统访问控制:按需使用sudo、PolicyKit精细授权;停用不需要的服务与入口;必要时用**TCP Wrapper(/etc/hosts.allow、/etc/hosts.deny)**做服务级黑白名单。

二 进程运行权限与能力隔离

  • 最小权限运行:为服务创建专用系统用户/组,避免使用 root 直接启动;文件与目录权限遵循最小可见原则。
  • Linux 能力(Capabilities)细粒度授权:用setcap赋予进程仅需要的特权,例如允许非 root 进程绑定低端口:
    sudo setcap cap_net_bind_service=+ep /usr/bin/myapp
  • 强制访问控制(MAC):启用并编写AppArmor策略,限制进程对文件、目录、网络与能力的访问;必要时结合seccomp进行系统调用白名单约束。
  • 系统级沙盒与隔离:利用namespacescgroups v2(Debian 11+ 默认统一层级)对进程做资源与可见性隔离,配合容器/沙盒运行不可信工作负载。

三 资源限制与异常进程治理

  • 资源限制(ulimit/PAM):为关键用户/服务设置会话级上限,防止资源耗尽与 fork 炸弹。示例:
    • 查看:ulimit -a
    • 会话临时设置:ulimit -n 1024(打开文件数)、ulimit -u 500(进程数)、ulimit -m 512000(物理内存 KB)、ulimit -t 300(CPU 时间秒)、ulimit -s 1024(堆栈 KB)
    • 永久生效:在**/etc/security/limits.conf配置如:
      username soft nofile 1024
      username hard nofile 65535
      并确保 PAM 启用:在
      /etc/pam.d/system-auth**加入 session required pam_limits.so
  • 进程可见性隔离(多用户环境):挂载**/proc时使用hidepid**降低信息泄露与横向侦察风险:
    • 立即生效:mount -o remount,rw,hidepid=2 /proc
    • 开机持久:/etc/fstab 添加 proc /proc proc defaults,hidepid=2 0 0
    • 运维/监控例外:可加 gid=admin 将指定组保留全局进程可见性。

四 监控检测与响应

  • 集中与自动化监控:定期审计**/var/log/auth.log、/var/log/syslog**,使用fail2ban自动封禁暴力来源,配合rkhunter等做恶意软件基线核查。
  • 日志告警与审计:为关键进程与认证事件配置实时告警,保留集中化日志与必要的审计策略,缩短检测与响应时间。
  • 备份与演练:对配置与关键数据定期备份,并进行恢复演练,确保事件后可快速回滚与取证。

五 快速实施范例

  • SSH 加固:PermitRootLogin no;PubkeyAuthentication yes;PasswordAuthentication no;Port <自定义端口>;重启 sshd。
  • 防火墙放行:ufw allow <自定义SSH端口>;ufw allow 80,443/tcp;ufw enable。
  • 服务最小权限:创建用户appuser;chown/chmod 限制可执行文件与数据目录;必要时 setcap cap_net_bind_service=+ep /usr/bin/myapp。
  • AppArmor 策略:为 /usr/bin/myapp 建立 /etc/apparmor.d/usr.bin.myapp,按需仅允许读写的配置/日志路径与必要能力,执行 apparmor_parser -r 加载。
  • 资源限制:在 /etc/security/limits.conf 为 appuser 设置 nofile/hard nofile/nproc 等上限,并确保 /etc/pam.d/system-auth 包含 session required pam_limits.so。

0