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.COM、kdc.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.authenticationname>
<value>kerberosvalue>
property>
<property>
<name>hbase.security.authorizationname>
<value>truevalue>
property>
<property>
<name>hbase.master.kerberos.principalname>
<value>hbase/_HOST@YOUR-REALM.COMvalue>
property>
<property>
<name>hbase.regionserver.kerberos.principalname>
<value>hbase/_HOST@YOUR-REALM.COMvalue>
property>
<property>
<name>hbase.coprocessor.master.classesname>
<value>org.apache.hadoop.hbase.security.access.AccessControllervalue>
property>
<property>
<name>hbase.coprocessor.region.classesname>
<value>org.apache.hadoop.hbase.security.access.AccessControllervalue>
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.enabledname> <value>truevalue> property> <property> <name>hbase.ssl.keystore.pathname> <value>/path/to/keystore.jksvalue> property> <property> <name>hbase.ssl.keystore.passwordname> <value>your_keystore_passwordvalue> property> - 存储加密(TDE):启用HBase透明数据加密,保护数据在磁盘上的安全(需HBase 1.1+版本),配置
hbase-site.xml:<property> <name>hbase.regionserver.thrift.http.ssl.enabledname> <value>truevalue> property> <property> <name>hbase.coprocessor.region.classesname> <value>org.apache.hadoop.hbase.security.token.TokenAuthenticationProvidervalue> property>
5. 日志审计
启用HBase审计日志,记录用户操作(如读、写、授权),便于事后追溯。编辑hbase-site.xml:
<property>
<name>hbase.security.audit.log.enabledname>
<value>truevalue>
property>
<property>
<name>hbase.security.audit.log.filename>
<value>/var/log/hbase/audit.logvalue>
property>
<property>
<name>hbase.security.audit.log.maxfilesizename>
<value>1073741824value>
property>
<property>
<name>hbase.security.audit.log.maxbackupindexname>
<value>10value>
property>
确保/var/log/hbase目录权限正确(chown -R hbase:hbase /var/log/hbase),避免日志被篡改。
三、其他安全措施
1. 定期备份
定期备份HBase数据(如使用hbase snapshot命令)及配置文件(hbase-site.xml、krb5.conf),存储到异地或云存储,防止数据丢失。
2. 监控与告警
使用Prometheus+Granafa监控HBase集群状态(如RegionServer内存、请求延迟),设置异常告警(如认证失败次数激增),及时发现安全威胁。
通过以上步骤,可实现CentOS系统与HBase的全面安全防护,覆盖认证、授权、加密、审计等关键环节,保障数据的安全性与完整性。
以上就是关于“HBase与CentOS的安全设置”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm