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.com 与 your-realm.com 到 YOUR-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 后执行 list、scan ‘users’ 等;
- Web UI:访问 http://:16010 与 http://:16030 检查状态。
- 常见问题排查:
- 启动失败且报 SASL 错误:检查 principal 名称与 _HOST 替换是否正确、Keytab 路径与权限是否一致;
- 无法列出表:确认 ACL 已为当前用户授予相应权限;
- 端口不通:核对 firewall-cmd 规则与云上 安全组 入站策略。