首页主机资讯HBase与CentOS的安全设置

HBase与CentOS的安全设置

时间2025-10-28 20:47:03发布访客分类主机资讯浏览1336
导读:HBase与CentOS安全设置指南 一、CentOS系统级安全基础 1. 系统更新与补丁管理 定期通过sudo yum update命令更新CentOS系统及所有已安装软件包,及时修补已知安全漏洞,降低被攻击风险。 2. 防火墙配置 使用...

HBase与CentOS安全设置指南

一、CentOS系统级安全基础

1. 系统更新与补丁管理

定期通过sudo yum update命令更新CentOS系统及所有已安装软件包,及时修补已知安全漏洞,降低被攻击风险。

2. 防火墙配置

使用firewalld(CentOS默认防火墙)限制对HBase相关端口的访问,仅允许可信IP地址连接。例如:

# 允许SSH(22端口)、HBase Master(16000)、RegionServer(16020)等端口
sudo firewall-cmd --permanent --zone=public --add-service=ssh
sudo firewall-cmd --permanent --zone=public --add-port=16000/tcp
sudo firewall-cmd --permanent --zone=public --add-port=16020/tcp
# 重新加载防火墙规则
sudo firewall-cmd --reload

3. 用户与口令策略

  • 禁用空口令与root直接登录:通过awk -F: '($2=="")' /etc/shadow检查空口令账号,使用passwd < 用户名> 设置密码;修改/etc/ssh/sshd_config,将PermitRootLogin yes改为PermitRootLogin no,禁止root用户直接SSH登录。
  • 设置强口令复杂度:编辑/etc/pam.d/system-auth,添加password requisite pam_pwquality.so try_first_pass local_users_only retry=3 minlen=14 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root,要求密码长度≥14位,包含大小写字母、数字和特殊字符。
  • 限制su权限:编辑/etc/pam.d/su,添加auth required pam_wheel.so group=admin,仅允许admin组用户使用su切换到root。

4. SELinux配置

若无需SELinux的强制访问控制,可将其设为disabled(需重启系统):

sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
sudo reboot

二、HBase特有安全配置

1. 启用Kerberos认证

Kerberos是HBase安全的核心认证机制,需完成以下步骤:

  • 安装Kerberos客户端sudo yum install krb5-workstation krb5-libs
  • 配置Kerberos客户端:编辑/etc/krb5.conf,添加Realm和KDC信息(替换YOUR-REALM.COMkdc.yourdomain.com):
    [libdefaults]
        default_realm = YOUR-REALM.COM
    [realms]
        YOUR-REALM.COM = {
    
            kdc = kdc.yourdomain.com:88
            admin_server = kdc.yourdomain.com:749
        }
        
    [domain_realm]
        .yourdomain.com = YOUR-REALM.COM
        yourdomain.com = YOUR-REALM.COM
    
  • 创建HBase Principal与Keytab:使用kadmin.local工具创建HBase服务的Principal(hbase/_HOST@YOUR-REALM.COM),并导出Keytab文件:
    kadmin.local -q "addprinc -randkey hbase/_HOST@YOUR-REALM.COM"
    kadmin.local -q "ktadd -k /etc/security/keytabs/hbase.service.keytab hbase/_HOST@YOUR-REALM.COM"
    chmod 600 /etc/security/keytabs/hbase.service.keytab  # 限制Keytab文件权限
    

2. 配置HBase安全参数

编辑/etc/hbase/conf/hbase-site.xml,启用认证、授权及Kerberos:

<
    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.COM<
    /value>
    
<
    /property>
    
<
    property>
    
    <
    name>
    hbase.regionserver.kerberos.principal<
    /name>
    
    <
    value>
    hbase/_HOST@YOUR-REALM.COM<
    /value>
    
<
    /property>
    
<
    property>
    
    <
    name>
    hbase.coprocessor.master.classes<
    /name>
    
    <
    value>
    org.apache.hadoop.hbase.security.access.AccessController<
    /value>
    
<
    /property>
    
<
    property>
    
    <
    name>
    hbase.coprocessor.region.classes<
    /name>
    
    <
    value>
    org.apache.hadoop.hbase.security.access.AccessController<
    /value>
    
<
    /property>
    

重启HBase服务使配置生效:

sudo systemctl restart hbase-master
sudo systemctl restart hbase-regionserver

3. 访问控制列表(ACL)

通过HBase Shell或API设置细粒度的表级权限:

  • Shell命令示例
    # 授权用户user1对table1的读权限
    hbase>
         grant 'user1', 'R', 'table1'
    # 授权用户user2对table2的读写权限
    hbase>
         grant 'user2', 'RW', 'table2'
    # 撤销用户user1对table1的权限
    hbase>
         revoke 'user1', 'R', 'table1'
    
  • API示例(Java):
    Configuration conf = HBaseConfiguration.create();
        
    Connection connection = ConnectionFactory.createConnection(conf);
        
    Admin admin = connection.getAdmin();
        
    AccessControlList acl = new AccessControlList("table2");
        
    acl.addPermission(new Permission(TableName.valueOf("table2"), "user2", "RW"));
        
    admin.setAccessControlList(acl, "default");
        
    admin.close();
        
    connection.close();
        
    

4. 数据加密

  • 传输加密(SSL/TLS):为HBase客户端与服务端之间的通信配置SSL证书,编辑hbase-site.xml
    <
        property>
        
        <
        name>
        hbase.ssl.enabled<
        /name>
        
        <
        value>
        true<
        /value>
        
    <
        /property>
        
    <
        property>
        
        <
        name>
        hbase.ssl.keystore.path<
        /name>
        
        <
        value>
        /path/to/keystore.jks<
        /value>
        
    <
        /property>
        
    <
        property>
        
        <
        name>
        hbase.ssl.keystore.password<
        /name>
        
        <
        value>
        your_keystore_password<
        /value>
        
    <
        /property>
        
    
  • 存储加密(TDE):启用HBase透明数据加密,保护数据在磁盘上的安全(需HBase 1.1+版本),配置hbase-site.xml
    <
        property>
        
        <
        name>
        hbase.regionserver.thrift.http.ssl.enabled<
        /name>
        
        <
        value>
        true<
        /value>
        
    <
        /property>
        
    <
        property>
        
        <
        name>
        hbase.coprocessor.region.classes<
        /name>
        
        <
        value>
        org.apache.hadoop.hbase.security.token.TokenAuthenticationProvider<
        /value>
        
    <
        /property>
        
    

5. 日志审计

启用HBase审计日志,记录用户操作(如读、写、授权),便于事后追溯。编辑hbase-site.xml

<
    property>
    
    <
    name>
    hbase.security.audit.log.enabled<
    /name>
    
    <
    value>
    true<
    /value>
    
<
    /property>
    
<
    property>
    
    <
    name>
    hbase.security.audit.log.file<
    /name>
    
    <
    value>
    /var/log/hbase/audit.log<
    /value>
    
<
    /property>
    
<
    property>
    
    <
    name>
    hbase.security.audit.log.maxfilesize<
    /name>
    
    <
    value>
    1073741824<
    /value>
     <
    !-- 1GB -->
    
<
    /property>
    
<
    property>
    
    <
    name>
    hbase.security.audit.log.maxbackupindex<
    /name>
    
    <
    value>
    10<
    /value>
    
<
    /property>
    

确保/var/log/hbase目录权限正确(chown -R hbase:hbase /var/log/hbase),避免日志被篡改。

三、其他安全措施

1. 定期备份

定期备份HBase数据(如使用hbase snapshot命令)及配置文件(hbase-site.xmlkrb5.conf),存储到异地或云存储,防止数据丢失。

2. 监控与告警

使用Prometheus+Granafa监控HBase集群状态(如RegionServer内存、请求延迟),设置异常告警(如认证失败次数激增),及时发现安全威胁。

通过以上步骤,可实现CentOS系统与HBase的全面安全防护,覆盖认证、授权、加密、审计等关键环节,保障数据的安全性与完整性。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: HBase与CentOS的安全设置
本文地址: https://pptw.com/jishu/737153.html
CentOS中HBase数据如何恢复 HBase在CentOS上的版本升级

游客 回复需填写必要信息