首页主机资讯Ubuntu HDFS配置安全设置

Ubuntu HDFS配置安全设置

时间2025-12-15 17:01:05发布访客分类主机资讯浏览471
导读:Ubuntu 上 HDFS 安全配置实操指南 一 前置准备与基础加固 主机与解析:为所有节点配置静态主机名与**/etc/hosts**,主机名建议使用小写,避免集成 Kerberos 时出错。 时间同步:部署 NTP 保证集群时钟同步(...

Ubuntu 上 HDFS 安全配置实操指南

一 前置准备与基础加固

  • 主机与解析:为所有节点配置静态主机名与**/etc/hosts**,主机名建议使用小写,避免集成 Kerberos 时出错。
  • 时间同步:部署 NTP 保证集群时钟同步(Kerberos 对时间敏感)。
  • 防火墙:使用 ufw 仅放行必要端口(如 8020/9000、50070/9870、50075、50010、22),最小化暴露面。
  • 系统加固:启用 AppArmor,强化 SSH(禁用 root 登录、限制可登录用户、改端口),并保持系统与安全补丁及时更新(如 unattended-upgrades)。
  • 账号与目录:为 Hadoop 服务创建专用系统用户(如 hdfs),数据与日志目录设置最小权限与属主

二 启用 Kerberos 身份认证

  • 安装与配置 KDC(MIT Kerberos)
    • 安装:sudo apt-get install -y krb5-kdc krb5-admin-server krb5-user
    • 配置 /etc/krb5.conf(示例):
      • [libdefaults] 中设定 default_realm,如 EXAMPLE.COM;设置 ticket_lifetime / renew_lifetime(如 24h/7d)、forwardable=true、合理的 clockskew
      • [realms] 指定 kdcadmin_server 主机名(FQDN)。
    • 初始化数据库:sudo kdb5_util create -r EXAMPLE.COM -s;编辑 /var/lib/krb5kdc/kadm5.acl 授予管理员权限(如 ***/admin@EXAMPLE.COM ***)。
    • 启动服务:sudo systemctl enable --now krb5-kdc kadmind
  • 创建主体与导出 keytab
    • 服务主体(每个节点):kadmin.local -q “addprinc -randkey hdfs/$(hostname -f)@EXAMPLE.COM”;kadmin.local -q “addprinc -randkey HTTP/$(hostname -f)@EXAMPLE.COM”。
    • 导出 keytab(权限 600,属主 hdfs):kadmin.local -q “ktadd -k /etc/security/keytabs/hdfs.keytab hdfs/$(hostname -f)@EXAMPLE.COM”;kadmin.local -q “ktadd -k /etc/security/keytabs/spnego.keytab HTTP/$(hostname -f)@EXAMPLE.COM”。
  • Hadoop 启用 Kerberos
    • core-site.xml:
      • hadoop.security.authenticationkerberos
      • hadoop.security.authorizationtrue
    • hdfs-site.xml(示例,按节点替换 _HOST 为 FQDN):
      • dfs.namenode.kerberos.principal:hdfs/_HOST@EXAMPLE.COM;dfs.namenode.keytab.file:/etc/security/keytabs/hdfs.keytab
      • dfs.datanode.kerberos.principal:hdfs/_HOST@EXAMPLE.COM;dfs.datanode.keytab.file:/etc/security/keytabs/hdfs.keytab
      • dfs.namenode.http-authentication.kerberos.principal:HTTP/_HOST@EXAMPLE.COM;dfs.namenode.http-authentication.kerberos.keytab:/etc/security/keytabs/spnego.keytab
      • dfs.web.authentication.kerberos.principal:HTTP/_HOST@EXAMPLE.COM;dfs.web.authentication.kerberos.keytab:/etc/security/keytabs/spnego.keytab
    • 分发 keytab 与 krb5.conf 到所有节点,统一 /etc/krb5.conf
  • 启动与验证
    • 使用 hdfs 用户重启 HDFS:stop-dfs.sh & & start-dfs.sh。
    • 客户端获取票据:kinit hdfs/NN_FQDN@EXAMPLE.COM 或 kinit -kt /path/hdfs.keytab hdfs/NN_FQDN@EXAMPLE.COM;klist 查看票据;用 hdfs dfs -ls / 验证访问。

三 授权与访问控制

  • 文件系统权限与属主
    • 建议:hdfs dfs -chown hdfs:hadoop /;hdfs dfs -chmod 755 /;为用户家目录:hdfs dfs -mkdir -p /user/;hdfs dfs -chown : /user/;hdfs dfs -chmod 700 /user/。
  • 启用 HDFS ACL(细粒度授权)
    • 在 hdfs-site.xml 启用:dfs.namenode.acls.enabled true
    • 示例:hdfs dfs -setfacl -m user:alice:r-x /data;hdfs dfs -setfacl -m group:dev:rwx /data;hdfs dfs -getfacl /data。
  • 启用服务级授权(可选)
    • 在 hdfs-site.xml 开启 dfs.permissions.enabled true(默认开启),并配置 dfs.permissions.superusergroup(如 hadoop)。

四 加密与数据保护

  • 传输加密(RPC/HTTP)
    • 启用 SASLHTTPS:在 hdfs-site.xml 设置 dfs.http.policy HTTPS_ONLY;为 NameNode/DataNode/JournalNode 配置 SSL/TLS(证书、密钥、信任库),并开放 9870/9864/9866/9867 等 HTTPS 端口。
  • 透明数据加密(TDE)
    • 创建加密区域:hdfs crypto -createZone -keyName myKey -path /secure
    • 使用加密区域:hdfs dfs -mkdir /secure/project;hdfs crypto -listZones;如需迁移数据,先 put 到加密区或按官方流程导入。
  • 数据完整性与备份
    • HDFS 自身通过校验和保障块完整性;关键数据建议定期备份异地容灾,并制定恢复演练计划。

五 审计监控与运维安全

  • 审计与日志
    • 启用 HDFS 审计日志(AccessAudit),集中到 Ranger/Solr/ELK 做留存与检索;NameNode/DataNode 日志与 audit log 设置合适的保留周期访问控制
  • 监控与告警
    • 监控关键指标(如 BlockMissing、UnderReplicatedBlocks、FailedVolumes、NameNode RPC latency),对异常(如权限突变、频繁 403/401、异常访问源)配置告警
  • 安全运维
    • 定期轮换 keytabKerberos 密码;限制 keytab 分发范围;为运维操作使用最小权限跳板机;变更前后进行配置审计与回归测试

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu HDFS配置安全设置
本文地址: https://pptw.com/jishu/771814.html
Ubuntu HDFS配置更新步骤 Ubuntu HDFS如何备份配置

游客 回复需填写必要信息