HBase在Ubuntu上的安全设置
/etc/security/limits.conf文件,添加如下配置(将hbase替换为运行HBase的用户):hbase - nofile 32768hbase soft nproc 32000hbase hard nproc 32000/etc/pam.d/common-session中添加session required pam_limits.so,并注销重新登录。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/
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。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-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>
hbase-site.xml中设置hbase.security.authorization为true,启用细粒度的访问控制。user1对表my_table的所有操作:hbase shell
grant <user1>, <ALL>, <my_table>
或限制组dev_group仅能读取表my_table:grant <dev_group>, <READ>, <my_table>
/etc/ssh/sshd_config文件,设置PasswordAuthentication no,仅允许密钥认证,降低暴力破解风险。修改后重启SSH服务:sudo systemctl restart sshd。sudo apt-get install ntp
sudo timedatectl set-ntp true
确保集群内所有节点同步同一时间源。