CentOS 上提升 Python 安全性的实用清单
一 基础系统与运行时安全
二 网络与访问控制
三 配置与密钥管理
四 代码与依赖安全
五 加固检查清单与快速命令
| 领域 | 关键措施 | 验证方式 |
|---|---|---|
| 系统与包 | 系统与安全更新、pip 升级 | yum check-update、pip list --outdated |
| 运行环境 | venv 隔离、pyenv/SCL 管理 | which python、python -V、pip list |
| 网络与端口 | firewalld 仅放通必要端口、Nginx 终止 TLS | firewall-cmd --list-all、ss -lntp |
| 应用安全 | API-Key/JWT、限流、输入校验 | 日志审计、压测与规则验证 |
| 密钥配置 | .env 不上库、600 权限、系统变量优先 | git status、ls -l、env |
# 1) 系统与包
sudo yum update -y
pip install -U pip
pip list --outdated
# 2) 虚拟环境与隔离
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# 3) 防火墙仅放通 443(示例)
sudo firewall-cmd --permanent --zone=public --add-port=443/tcp
sudo firewall-cmd --reload
# 4) Nginx 最小 HTTPS 片段(/etc/nginx/conf.d/app.conf)
# server { listen 443 ssl; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem;
# location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto $scheme; } }
# 5) 以非 root 运行(示例服务)
sudo useradd -r -s /sbin/nologin myapp
sudo chown -R myapp:myapp /opt/myapp
sudo -u myapp /opt/myapp/venv/bin/gunicorn app:app
提示:变更前在测试环境验证,变更后保留回滚方案与审计日志,并安排定期安全评估与演练。