CentOS 上保障 Rust 应用安全的实用方案
一 系统基线加固
账户与登录安全
/etc/ssh/sshd_config 中配置 ClientAliveInterval 60、ClientAliveCountMax 10(约 10 分钟 无响应断开)。PermitRootLogin no;按需更改默认端口(如 5028),并启用 Protocol 2。/etc/pam.d/sshd 增加 auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=10。/etc/login.defs 设置 PASS_MIN_LEN 18 等强口令要求。服务与端口最小化
审计与完整性
service auditd start;在 /etc/auditd/rules.d/audit.rules 增加关键文件监控,例如:-w /etc/passwd -p rwxa,审计日志位于 /var/log/audit/audit.log。chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow(变更前先评估维护影响)。二 Rust 应用与依赖安全
工具链与代码质量
依赖与漏洞治理
内存与并发安全
Rc/Arc 互相持有)导致的内存泄漏,必要时使用 Weak三 运行与进程安全
最小权限运行
sudo setcap 'cap_net_bind_service=+ep' /path/to/app。systemd 服务加固示例
/etc/systemd/system/your-rust-app.service:[Unit]
Description=Your Rust Application
After=network.target
[Service]
User=appuser
Group=appgroup
ExecStart=/opt/yourapp/target/release/your-app
Restart=always
RestartSec=3
# 可选:降低权限
# CapabilityBoundingSet=CAP_NET_BIND_SERVICE
# AmbientCapabilities=CAP_NET_BIND_SERVICE
# NoNewPrivileges=yes
# ProtectSystem=strict
# PrivateTmp=yes
[Install]
WantedBy=multi-user.target
systemctl daemon-reload、systemctl enable --now your-rust-app、journalctl -u your-rust-app -f。四 持续监控与响应
日志与审计
监控与告警
备份与演练