CentOS HDFS如何配置安全
导读:CentOS 上 HDFS 安全配置实操指南 一 前置准备与基础安全 主机与解析:确保所有节点可通过主机名互相解析,建议统一使用小写主机名,并在所有节点维护一致的 /etc/hosts;Kerberos 领域与主机名保持一致可降低集成问题...
CentOS 上 HDFS 安全配置实操指南
一 前置准备与基础安全
- 主机与解析:确保所有节点可通过主机名互相解析,建议统一使用小写主机名,并在所有节点维护一致的 /etc/hosts;Kerberos 领域与主机名保持一致可降低集成问题。
- 时间同步:部署 NTP 保证集群时间误差在容差范围内(Kerberos 默认容忍约5分钟),避免因时钟漂移导致票据无效。
- 系统加固:最小化开放端口与服务、启用防火墙、及时打补丁;限制 root 直接登录、强化口令策略、必要时对关键文件设置不可变属性(如 chattr +i)。
- 传输加密:为 HDFS RPC/HTTP 启用 SASL/SSL/TLS,避免明文传输敏感数据。
- 审计与监控:开启与保留 NameNode/DataNode 审计日志,结合监控告警发现异常访问与失败登录。
二 部署与配置 Kerberos
- 安装软件包:在 KDC 节点安装 krb5-server、krb5-admin-server、krb5-workstation;在集群各节点安装 krb5-workstation。
- 配置 krb5.conf(示例要点):设置 default_realm、禁用 DNS 反查、票据生命周期(如 ticket_lifetime=24h、renew_lifetime=7d)、以及 udp_preference_limit=1 强制使用 TCP。
- 配置 KDC:编辑 /var/kerberos/krb5kdc/kdc.conf 与 kadm5.acl,指定支持的加密类型(如 aes256-cts)、管理员 keytab 与 ACL(如 ***/admin@REALM ***)。
- 初始化数据库与启动服务:执行 kdb5_util create -r YOUR.REALM.COM -s 初始化数据库;启动 krb5kdc 与 kadmind。
- 创建主体与密钥表:为每台主机创建 hdfs/@REALM 与 HTTP/@REALM 主体,导出 keytab;HTTP 主体用于 Web UI/HTTP 认证。
- 分发与权限:将 /etc/krb5.conf 同步到所有节点;将各主机的 hdfs.keytab 放置于 /etc/security/keytabs/,权限 400,属主 hdfs:hdfs。
三 配置 HDFS 启用安全
- 启用认证与授权(core-site.xml):
- hadoop.security.authentication=kerberos
- hadoop.security.authorization=true
- hadoop.security.auth_to_local(示例将 @YOUR.REALM.COM 后缀去除,便于本地映射)
- 服务主体与 keytab(hdfs-site.xml,按主机区分):
- dfs.namenode.kerberos.principal=nn/_HOST@REALM;dfs.namenode.keytab.file=/etc/security/keytabs/hdfs.headless.keytab
- dfs.datanode.kerberos.principal=dn/_HOST@REALM;dfs.datanode.keytab.file=/etc/security/keytabs/hdfs.headless.keytab
- dfs.namenode.http-authentication.kerberos.principal=HTTP/_HOST@REALM;dfs.namenode.http-authentication.kerberos.keytab=/etc/security/keytabs/hdfs.headless.keytab
- 权限与 ACL:
- dfs.permissions.enabled=true
- dfs.namenode.acls.enabled=true
- 启动顺序:先在各节点用 kinit -k -t /etc/security/keytabs/hdfs.headless.keytab nn/_HOST@REALM 测试票据获取,再启动 NameNode/DataNode;随后用普通用户 kinit 验证访问。
四 加密与数据保护
- 透明数据加密(TDE):创建加密区与密钥,对敏感目录启用静态加密。
- hdfs crypto -createZone -keyName myEncryptionKey -path /user/hadoop/encryptedData
- hdfs crypto -encrypt -path /user/hadoop/data -keyName myEncryptionKey
- 传输加密:为 HDFS RPC 与 HTTP 启用 SASL/SSL/TLS,确保客户端与服务端、浏览器与 NameNode Web UI 之间的通信加密。
- 密钥与权限:加密密钥由 KMS 托管,严格限制密钥访问权限与轮换策略;定期审计密钥使用。
五 验证与运维要点
- 验证清单:
- 票据与身份:在各节点执行 kinit 并用 klist -e 查看票据与加密类型;未持票应无法访问 HDFS。
- 访问测试:以普通用户执行 hdfs dfs -ls / 验证权限与 ACL;Web UI 通过 SPNEGO/Kerberos 登录。
- 加密验证:对加密区写入/读取文件,确认密文落盘与正常读取。
- 安全模式管理:仅在维护窗口使用,避免数据不一致风险。
- 进入:hdfs dfsadmin -safemode enter
- 退出:hdfs dfsadmin -safemode leave
- 强制:hdfs dfsadmin -safemode forceExit
- 运维建议:定期轮换 keytab 与 Kerberos 密码、审计失败登录与异常访问、持续监控关键指标与日志、保持 JCE 无限制策略 与 AES-256 算法可用。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS HDFS如何配置安全
本文地址: https://pptw.com/jishu/772994.html
