温馨提示×

Rust在CentOS上的安全配置怎么做

小樊
33
2025-12-09 12:32:22
栏目: 编程语言

Rust在CentOS上的安全配置清单

一 基础环境安全

  • 更新系统与软件包:执行yum update -y并定期执行,及时修补内核与依赖漏洞。
  • 启用并配置防火墙:使用firewalld仅放行必要端口(如22/80/443),变更后执行firewall-cmd --reload使规则生效。
  • 禁用不必要服务与端口:关闭未使用的服务,减少攻击面;可用nmap对主机进行端口扫描核验。
  • 强化SSH访问:在**/etc/ssh/sshd_config中设置PermitRootLogin no**,优先采用SSH密钥登录,必要时设置PasswordAuthentication no并重启sshd
  • 账户与密码策略:设置PASS_MAX_DAYS 90PASS_MIN_LEN 8、密码复杂度(如pam_pwquality.so)与失败锁定(如pam_tally2.so deny=5 unlock_time=300),对root执行chage -M 90 root
  • 文件与关键配置防护:对**/etc/passwd**、/etc/shadow等使用chattr +i设置不可变属性,防止被篡改。
  • SELinux:保持SELINUX=enforcing,仅在排障时临时切换为permissive并观察日志。
  • 审计与备份:启用并定期检查系统日志,定期备份关键数据与配置。

二 Rust工具链安装与更新

  • 使用官方脚本安装rustup(Rust版本管理器):执行curl --proto ‘=https’ --tlsv1.2 -sSf https://sh.rustup.rs | sh,按提示完成安装。
  • 加载环境变量:执行source $HOME/.cargo/env,确保cargo/rustcPATH中。
  • 验证安装:运行rustc --versioncargo --version确认工具链可用。
  • 保持工具链最新:定期执行rustup update,及时获取稳定版的安全修复与性能改进。

三 构建与运行的安全实践

  • 使用稳定工具链并定期更新:优先选择stable,通过rustup update stable保持最新。
  • 以发布模式构建:使用cargo build --release获得优化与更稳健的二进制;按需开启LTO、优化级别等以平衡性能与安全。
  • 代码质量与安全扫描:集成cargo clippy(代码规范与潜在缺陷检查)与cargo miri(基于解释器的内存安全与未定义行为检测,需在nightly工具链下使用)。
  • 依赖安全:定期审计Cargo.toml/Cargo.lock,关注依赖的安全公告与版本更新;谨慎引入来源不明的crate。
  • 运行最小化:服务以最小权限用户运行,仅暴露必要端口与接口;容器化部署时配合只读文件系统非特权用户最小Capabilities

四 最小可用配置示例

  • 防火墙仅放行必要端口(示例为22/80/443
    sudo systemctl start firewalld
    sudo systemctl enable firewalld
    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --permanent --add-port=80/tcp
    sudo firewall-cmd --permanent --add-port=443/tcp
    sudo firewall-cmd --reload
    
  • SSH安全基线(/etc/ssh/sshd_config)
    PermitRootLogin no
    PasswordAuthentication no
    # 重启sshd生效:sudo systemctl restart sshd
    
  • 密码策略与失败锁定(示例)
    # /etc/login.defs
    PASS_MAX_DAYS 90
    PASS_MIN_LEN 8
    
    # /etc/pam.d/system-auth(在相应行追加或修改)
    password requisite pam_pwquality.so retry=5 minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
    auth required pam_tally2.so deny=5 unlock_time=300
    
    # root账户
    sudo chage -M 90 root
    
  • Rust工具链安装与更新
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    source $HOME/.cargo/env
    rustc --version
    cargo --version
    rustup update
    
  • 代码质量与安全扫描
    cargo clippy
    cargo +nightly miri test
    

0