温馨提示×

HBase安全设置CentOS上怎么操作

小樊
31
2025-12-07 22:01:30
栏目: 智能运维

CentOS 上 HBase 安全设置实操指南

一 前置准备与系统加固

  • 更新系统与依赖,修复已知漏洞:sudo yum update -y
  • 配置并启用防火墙,仅开放必要端口(示例为常用端口,按实际组件启用):
    • Master Web UI:16010/tcp
    • RegionServer Web UI:16030/tcp
    • HBase Master 服务端口:16000/tcp
    • RegionServer 服务端口:16020/tcp
    • ZooKeeper 客户端端口:2181/tcp
    • HDFS NameNode IPC:8020/tcp
    • HBase REST(如启用):9090/tcp
      命令示例:
    • 开放端口:sudo firewall-cmd --permanent --zone=public --add-port=16000/tcp --add-port=16010/tcp --add-port=16020/tcp --add-port=16030/tcp --add-port=2181/tcp --add-port=8020/tcp --add-port=9090/tcp
    • 重载规则:sudo firewall-cmd --reload
  • 强化系统口令策略(示例):编辑 /etc/login.defs,设置 PASS_MIN_LEN 10;必要时使用 chattr +i 保护关键账户文件(谨慎评估变更风险)。

二 启用 Kerberos 强认证

  • 安装与配置 KDC(示例):
    • 安装包:sudo yum install -y krb5-server krb5-utils
    • 编辑 /etc/krb5.conf,设置默认域与 KDC/管理服务器:
      • [libdefaults] 中设定 default_realm = YOUR-REALM.COM
      • [realms] 中设定 YOUR-REALM.COM = { kdc = kdc.your-realm.com; admin_server = admin.your-realm.com }
      • [domain_realm] 映射 .your-realm.comyour-realm.comYOUR-REALM.COM
  • 在所有节点安装 Kerberos 客户端:sudo yum install -y krb5-workstation
  • 创建 HBase 服务 Principal 与 Keytab(在 KDC 或管理节点执行):
    • 创建主体:kadmin.local -q “addprinc hbase/_HOST@YOUR-REALM.COM”
    • 导出 Keytab:kadmin.local -q “xst -k /etc/security/keytabs/hbase.service.keytab hbase/_HOST@YOUR-REALM.COM”
    • 设置权限:chown hbase:hbase /etc/security/keytabs/hbase.service.keytab; chmod 400 /etc/security/keytabs/hbase.service.keytab
  • hbase-site.xml 启用 Kerberos 与 RPC 加密:
    • hbase.security.authentication=kerberos
    • hbase.security.authorization=true
    • hbase.master.kerberos.principal=hbase/_HOST@YOUR-REALM.COM
    • hbase.regionserver.kerberos.principal=hbase/_HOST@YOUR-REALM.COM
    • hbase.rpc.protection=privacy(可选:authentication/integrity/privacy)
  • 分发 Keytab 到各节点相同路径,保持文件权限为 400,属主为 hbase

三 授权与访问控制 ACL

  • 启用 HBase ACL(在 hbase-site.xml):hbase.acl.defaultAction=DENY(默认拒绝,显式授权)。
  • 使用 HBase Shell 授权示例:
    • 授予用户对表的读写权限:grant ‘user1’, ‘RW’, ‘table1’
    • 撤销权限:revoke ‘user2’, ‘W’, ‘table1’
  • 建议为运维与系统账户授予最小权限,业务权限按表/列族/命名空间细化。

四 加密与审计

  • 传输加密:
    • RPC 层启用 hbase.rpc.protection=privacy(见上节);
    • 如启用 REST/Thrift,配置 SSL/TLS 证书与端口(证书路径、信任库、密钥库与密码按环境配置)。
  • 存储加密:
    • 启用 透明数据加密 TDE(HFile/列族级加密,需 HDFS KMS 或本地密钥提供者,按官方文档生成/分发密钥并配置 HBase 表/列族属性)。
  • 审计与合规:
    • 启用 HBase 访问审计日志,记录用户操作与访问轨迹,结合 Ranger/Sentry 做细粒度策略与统一审计(可选)。

五 启动验证与常见问题

  • 有序重启集群:先停 RegionServer,再停 Master;启动顺序相反。
  • 验证 Kerberos:在各节点执行 kinit -k -t /etc/security/keytabs/hbase.service.keytab hbase/$(hostname -f)@YOUR-REALM.COM;使用 klist 查看票据。
  • 验证连通与功能:
    • HBase Shell:hbase shell 后执行 listscan ‘users’ 等;
    • Web UI:访问 http://:16010http://:16030 检查状态。
  • 常见问题排查:
    • 启动失败且报 SASL 错误:检查 principal 名称_HOST 替换是否正确、Keytab 路径与权限是否一致;
    • 无法列出表:确认 ACL 已为当前用户授予相应权限;
    • 端口不通:核对 firewall-cmd 规则与云上 安全组 入站策略。

0