温馨提示×

Linux Python如何进行安全配置

小樊
43
2025-12-29 23:52:48
栏目: 编程语言

Linux Python 安全配置清单

一 运行环境与权限最小化

  • 使用虚拟环境隔离依赖:优先使用内置的 venv,避免污染系统 Python;在虚拟环境中安装与运行依赖,便于审计与回滚。
  • 创建专用低权限系统用户运行服务,避免以 root 直接执行;按需设置项目目录权限(如目录 750、文件 640),仅授予必要访问。
  • 需要提升权限时遵循最小权限原则:优先通过文件权限/用户组调整解决访问受限,谨慎使用 sudo;若必须提权,仅授予最小必要能力并在完成后及时降权。
  • 为可执行脚本添加 shebang(如:#!/usr/bin/env python3)并使用 chmod +x 设置可执行位,便于规范调用与权限控制。

二 系统与网络安全

  • 持续更新系统与 Python 包:及时修补已知漏洞,降低被利用风险。
  • 配置防火墙仅开放必要端口与服务:
    • RHEL/CentOS 使用 firewalld(如:firewall-cmd --permanent --add-port=8000/tcp && firewall-cmd --reload)。
    • Ubuntu/Debian 使用 ufw(如:ufw allow 80,443/tcp && ufw enable)。
  • 生产 Web 服务启用 HTTPS/TLS:通过 Nginx/Apache 终止 TLS,证书可用 Let’s Encrypt certbot 自动签发与续期。
  • 加固 SSH 访问:禁用 root 登录、使用密钥认证、限制可登录用户与来源网段。
  • 部署入侵防护:如 fail2ban 自动封禁暴力破解来源,降低爆破风险。

三 代码与依赖安全

  • 严格输入验证与输出编码:校验数据类型、长度与格式,避免 SQL 注入、XSS 等常见漏洞。
  • 禁止使用危险函数:如 eval()/exec() 处理不受信输入;数据库访问使用参数化查询/ORM
  • 安全存储密码与密钥:使用强哈希(如 bcrypt/scrypt),敏感信息放入 环境变量 或受控配置,禁止硬编码。
  • 依赖与代码漏洞扫描:定期审计第三方库;可使用 bandit 对 Python 代码进行安全扫描。
  • 发布侧加固(可选):使用 PyArmor 做脚本加密/混淆,或用 Cython 编译为二进制以增大逆向难度(注意这并非绝对防护)。

四 进程隔离与强制访问控制

  • 启用 SELinux(RHEL/CentOS 常见):为 Python 进程设置最小权限的域类型,必要时基于 audit2allow 生成自定义策略模块并加载,降低被攻破后的横向影响。
  • 使用 AppArmor(Debian/Ubuntu 常见):为 /usr/bin/python3 或具体应用生成并加载配置文件,限制对文件、目录与能力的访问。
  • 原则:优先采用系统级 MAC(SELinux/AppArmor)与最小权限运行,辅以网络与文件权限控制,形成纵深防御。

五 日志审计与运行监控

  • 启用详细日志并集中采集:记录访问、错误、权限异常与关键业务事件;定期审计日志以发现异常模式。
  • 配置审计守护进程与关键系统活动监控:对特权操作、登录与策略变更进行告警与追踪。
  • 建立备份与恢复策略:定期备份代码、配置与数据,并进行恢复演练,确保可用性。

0