温馨提示×

HBase在Ubuntu上的安全设置有哪些

小樊
40
2025-09-29 19:02:38
栏目: 智能运维

HBase在Ubuntu上的安全设置

1. 系统级基础安全配置

  • 设置文件句柄限制:HBase作为数据库会频繁操作大量文件,默认的1024个文件句柄上限会导致“Too many open files”错误。需修改Ubuntu的/etc/security/limits.conf文件,添加如下配置(将hbase替换为运行HBase的用户):
    hbase - nofile 32768
    同时调整进程数限制:
    hbase soft nproc 32000
    hbase hard nproc 32000
    为使配置生效,需在/etc/pam.d/common-session中添加session required pam_limits.so,并注销重新登录。
  • SSH免密登录配置:若HBase集群包含多台节点,需配置master节点到slave节点的SSH免密登录,方便远程管理。生成密钥对并将公钥复制到slave节点:
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    scp ~/.ssh/authorized_keys hbase@slave_node:/home/hbase/.ssh/
    

2. Kerberos身份认证(核心安全机制)

  • 安装与配置Kerberos服务:在Ubuntu上通过包管理器安装MIT Kerberos:
    sudo apt-get install krb5-kdc krb5-admin-server
    编辑/etc/krb5.conf文件,配置默认realm(如YOUR.REALM)和KDC/Admin Server地址:
    [libdefaults]
      default_realm = YOUR.REALM
    [realms]
      YOUR.REALM = {
        kdc = your_kdc_server
        admin_server = your_admin_server
      }
    
    启动KDC和Admin服务:
    sudo systemctl start krb5-kdc && sudo systemctl start krb5-admin-server
  • 创建HBase Principal与密钥表:使用kadmin.local工具创建HBase服务主体(Principal),并导出密钥表:
    sudo kadmin.local
    kadmin.local: addprinc -randkey hbase/_HOST@YOUR.REALM
    kadmin.local: ktadd -k /etc/hbase.keytab hbase/_HOST@YOUR.REALM
    
    将生成的/etc/hbase.keytab复制到HBase配置目录(如/path/to/hbase/conf/)。
  • 配置HBase使用Kerberos:修改HBase的hbase-site.xml文件,启用Kerberos认证并指定Principal及密钥表路径:
    <property>
      <name>hbase.security.authentication</name>
      <value>kerberos</value>
    </property>
    <property>
      <name>hbase.security.authorization</name>
      <value>true</value>
    </property>
    <property>
      <name>hbase.master.kerberos.principal</name>
      <value>hbase/_HOST@YOUR.REALM</value>
    </property>
    <property>
      <name>hbase.regionserver.kerberos.principal</name>
      <value>hbase/_HOST@YOUR.REALM</value>
    </property>
    <property>
      <name>hbase.master.keytab.file</name>
      <value>/path/to/hbase.keytab</value>
    </property>
    <property>
      <name>hbase.regionserver.keytab.file</name>
      <value>/path/to/hbase.keytab</value>
    </property>
    

3. 访问控制列表(ACL)配置

  • 开启ACL权限控制:在hbase-site.xml中设置hbase.security.authorizationtrue,启用细粒度的访问控制。
  • 管理用户权限:通过HBase Shell或API为用户/组分配权限,例如允许用户user1对表my_table的所有操作:
    hbase shell
    grant <user1>, <ALL>, <my_table>
    
    或限制组dev_group仅能读取表my_table
    grant <dev_group>, <READ>, <my_table>
    

4. SSH安全加固

  • 禁用密码登录:编辑/etc/ssh/sshd_config文件,设置PasswordAuthentication no,仅允许密钥认证,降低暴力破解风险。修改后重启SSH服务:
    sudo systemctl restart sshd

5. 网络与时间同步

  • 配置NTP时间同步:HBase依赖准确的时间戳,时间偏差会导致认证或数据一致性问题。安装NTP服务并配置同步:
    sudo apt-get install ntp
    sudo timedatectl set-ntp true
    
    确保集群内所有节点同步同一时间源。

0