温馨提示×

rust在centos中的安全设置

小樊
39
2026-01-02 02:02:20
栏目: 编程语言

Rust 在 CentOS 的安全设置实践

一 系统层安全基线

  • 身份鉴别与登录策略
    • 设置密码复杂度与有效期(如:PASS_MAX_DAYS 30 等),降低被猜解与复用风险。
    • 配置登录失败锁定与超时:在 /etc/pam.d/sshd 增加 pam_tally2 规则(如:deny=3unlock_time=300),并设置 TMOUT=180(会话空闲 180 秒 自动断开);SSH 侧建议 ClientAliveInterval 60ClientAliveCountMax 10(空闲超时约 10 分钟)。
  • 访问控制
    • 禁止 root 远程登录(PermitRootLogin no),仅允许普通用户登录后提权;必要时限制可登录用户组(如仅允许 wheel 组 su 到 root)。
  • 防火墙与端口
    • 启用 firewalld(CentOS 7+):仅放行必要端口(如 22/80/443 或你的应用端口),默认拒绝其余入站。
  • SELinux
    • 保持 SELinux enforcing,必要时为目标服务编写最小权限策略,避免直接 setenforce 0
  • 审计与日志
    • 启动并配置 auditd,对关键文件与目录(如 /etc/passwd、应用配置、代码目录)设置审计规则,便于溯源。

二 Rust 工具链与构建环境安全

  • 安装与最小权限
    • 使用官方脚本安装 rustup:执行 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh,完成后执行 source "$HOME/.cargo/env";建议为构建与运行创建 非 root 专用用户,遵循最小权限原则。
  • 构建依赖与工具链
    • 安装编译所需系统依赖(如 gcc、make、curl),确保能正常构建含 C 依赖的 crate;按需安装开发工具组(如 Development Tools)。
  • 软件源与可信下载
    • 为提升可用性与合规性,可配置 Rustup 镜像crates.io 镜像(如中科大源);安装完成后执行 rustc -Vcargo -V 验证版本与可用性。

三 运行与部署安全

  • 服务最小暴露面
    • 仅开放必要端口与协议,使用 firewalld 精准放行;对外服务尽量置于 非 22 端口并做好端口变更通知与访问控制。
  • 进程隔离与权限控制
    • 非 root 用户运行服务;通过 systemd 配置最小权限、工作目录、日志输出与重启策略,避免使用 CAP_SYS_ADMIN 等宽泛能力。
  • 网络安全
    • 对外服务启用 TLS;禁用明文协议与过时密码套件;对外仅暴露必要接口,内部组件间使用 127.0.0.1 或私有网段通信。
  • 文件与目录
    • 代码与构建产物目录设置合理权限(如仅属主读写执行);敏感配置(如 .env、密钥)权限 600,禁止纳入代码仓库。
  • 日志与审计
    • 启用应用日志与 auditd 审计,记录关键文件访问、权限变更与提权行为;定期审计 /var/log/secure/var/log/audit/audit.log 等日志。

四 快速检查清单

检查项 期望状态 验证命令或路径
防火墙状态 firewalld 运行且仅放行必要端口 systemctl status firewalld;firewall-cmd --list-ports
SSH 安全 PermitRootLogin no;空闲超时约 10 分钟 grep -E '^PermitRootLogin
登录失败锁定 失败 3 次锁定 5 分钟 pam_tally2 --user ;查看 /etc/pam.d/sshd
SELinux enforcing getenforce;/etc/selinux/config
auditd 已启动并配置关键审计规则 systemctl status auditd;/etc/audit/rules.d/*.rules
Rust 工具链 非 root 可用且版本正常 rustc -V;cargo -V;id
监听端口 仅必要端口监听 ss -tulpen

0