如何在 Debian 上配置 Hadoop 安全设置
导读:在 Debian 上配置 Hadoop 安全设置 一 基础安全加固 系统账户与最小权限 为 Hadoop 各组件创建专用系统账户与组(如:hdfs、yarn、mapred,统一归属组 hadoop),遵循最小权限原则;进程与目录分离,避...
在 Debian 上配置 Hadoop 安全设置
一 基础安全加固
- 系统账户与最小权限
- 为 Hadoop 各组件创建专用系统账户与组(如:hdfs、yarn、mapred,统一归属组 hadoop),遵循最小权限原则;进程与目录分离,避免以 root 运行服务。
- 文件与目录权限
- 本地数据目录与日志目录使用严格的属主与权限,示例:
- 本地:dfs.namenode.name.dir、dfs.datanode.data.dir → hdfs:hadoop,700
- 本地日志:$HADOOP_LOG_DIR → hdfs:hadoop,775;$YARN_LOG_DIR → yarn:hadoop,775
- YARN 本地/日志目录:yarn.nodemanager.local-dirs、yarn.nodemanager.log-dirs → yarn:hadoop,755
- 容器执行器:container-executor → root:hadoop,6050(setuid/setgid);配置 conf/container-executor.cfg → root:hadoop,只读
- HDFS 关键目录(示例):
- / → hdfs:hadoop,755
- /tmp → hdfs:hadoop,1777(粘滞位)
- /user → hdfs:hadoop,755
- yarn.nodemanager.remote-app-log-dir → yarn:hadoop,1777
- mapreduce.jobhistory.intermediate-done-dir → mapred:hadoop,1777;done-dir → mapred:hadoop,755
- 本地数据目录与日志目录使用严格的属主与权限,示例:
- 防火墙与端口
- 启用 UFW 并仅开放必要端口(示例):
- Namenode RPC:8020/9000;Web UI:50070/50470
- SecondaryNameNode:50090
- DataNode:50010、50020、50075/50475
- ResourceManager:8088;调度:8030–8033;NodeManager:8040–8042
- JobHistory:10020、19888;SSH:22
- 启用 UFW 并仅开放必要端口(示例):
- 时间与 DNS
- 部署 NTP/Chrony 保证节点时间一致(Kerberos 强依赖时间同步);确保 DNS/hosts 解析正确,避免服务主体与主机名不一致导致认证失败。
二 启用 Kerberos 强认证
- 部署 KDC(Debian 示例)
- 安装软件包:sudo apt-get install krb5-kdc krb5-admin-server
- 配置 /etc/krb5.conf(示例):
- [libdefaults] 中设定 default_realm
- [realms] 指定 kdc 与 admin_server
- [domain_realm] 映射域名与 realm
- 创建服务与用户主体
- 在 KDC 上创建主体(示例):
- addprinc -randkey hdfs/your-nn.example.com
- addprinc -randkey yarn/your-rm.example.com
- addprinc -randkey mapred/your-jhs.example.com
- 导出 keytab(每个节点不同):xst -k /etc/security/keytab/nn.service.keytab hdfs/your-nn.example.com
- 在 KDC 上创建主体(示例):
- Hadoop 启用安全认证
- core-site.xml:
- hadoop.security.authentication=kerberos
- 可选:hadoop.security.authorization=true(服务级授权)
- hdfs-site.xml(示例):
- dfs.namenode.kerberos.principal=nn/_HOST@REALM
- dfs.namenode.keytab.file=/etc/security/keytab/nn.service.keytab
- 同理为 dfs.datanode.kerberos.principal/keytab、dfs.secondary.namenode.kerberos.principal/keytab 配置
- YARN 与 MapReduce(示例):
- yarn.resourcemanager.principal / keytab、yarn.nodemanager.principal / keytab
- mapreduce.jobhistory.principal / keytab
- Web 控制台安全
- 启用 HTTPS/SSL 保护 Web UI;为 HTTP 主体配置 HTTP/_HOST@REALM 与对应 keytab
- 用户侧认证
- 终端用户先 kinit 获取票据;服务进程使用 keytab 自动续票。
- core-site.xml:
三 HDFS 与 YARN 权限与授权
- HDFS 权限模型
- 使用 hdfs dfs -chmod/-chown/-setfacl 管理权限;对共享目录(如 /tmp、/user)设置合适权限与粘滞位;对敏感目录采用最小权限与 ACL 细粒度控制。
- 服务级授权
- 启用 hadoop.security.authorization 后,通过 core-site.xml 的 security.service.authorization 相关属性限制服务间访问(白名单)。
- YARN 与 MapReduce
- 以专用系统用户运行 ResourceManager/NodeManager/JobHistory(如 yarn、mapred),目录与日志按前述权限配置;提交作业遵循队列与权限策略。
四 运行与验证
- 启动顺序与票据
- 先启动 KDC,再启动各 Hadoop 服务;使用 klist 检查票据与 keytab 有效性;服务日志应无 GSSAPI/认证失败 报错。
- 常用运维与安全模式命令
- 查看/进入/离开安全模式:hdfs dfsadmin -safemode get|enter|leave
- 安全模式要点:NameNode 启动时会进入安全模式,待满足数据块安全阈值后自动退出;该机制用于保护数据一致性,与 Kerberos 身份安全是不同维度(不要混淆)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在 Debian 上配置 Hadoop 安全设置
本文地址: https://pptw.com/jishu/758381.html
