在CentOS上配置HDFS(Hadoop分布式文件系统)的安全策略涉及多个步骤,包括设置Kerberos认证、配置HDFS权限和访问控制列表(ACL)。以下是一个基本的指南:
首先,确保你的CentOS系统上已经安装了Kerberos。你可以使用以下命令来安装:
sudo yum install krb5-server krb5-admin-server krb5-config krb5-workstation
编辑Kerberos配置文件 /etc/krb5.conf,添加以下内容:
[libdefaults]
default_realm = YOUR.REALM.COM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
YOUR.REALM.COM = {
kdc = kdc.your.realm.com:88
admin_server = kdc.your.realm.com:749
}
[domain_realm]
.your.realm.com = YOUR.REALM.COM
your.realm.com = YOUR.REALM.COM
启动并启用Kerberos KDC和Admin服务:
sudo systemctl start krb5kdc
sudo systemctl enable krb5kdc
sudo systemctl start kadmind
sudo systemctl enable kadmind
使用 kadmin 工具创建Kerberos主体:
sudo kadmin.local
在 kadmin 提示符下,执行以下命令:
addprinc -randkey hdfs/kdc.your.realm.com@YOUR.REALM.COM
addprinc -randkey hdfs/admin@YOUR.REALM.COM
然后,为HDFS服务创建一个主体:
addprinc -randkey hdfs/hostname@YOUR.REALM.COM
将Kerberos票据分发给HDFS服务:
kinit hdfs/hostname@YOUR.REALM.COM
编辑HDFS的配置文件 /etc/hadoop/conf/core-site.xml 和 /etc/hadoop/conf/hdfs-site.xml。
在 core-site.xml 中添加以下内容:
<configuration>
<property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property>
<property>
<name>hadoop.security.authorization</name>
<value>true</value>
</property>
</configuration>
在 hdfs-site.xml 中添加以下内容:
<configuration>
<property>
<name>dfs.namenode.kerberos.principal</name>
<value>hdfs/hostname@YOUR.REALM.COM</value>
</property>
<property>
<name>dfs.namenode.keytab.file</name>
<value>/etc/security/keytabs/hdfs.headless.keytab</value>
</property>
<property>
<name>dfs.datanode.kerberos.principal</name>
<value>hdfs/hostname@YOUR.REALM.COM</value>
</property>
<property>
<name>dfs.datanode.keytab.file</name>
<value>/etc/security/keytabs/hdfs.headless.keytab</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
</configuration>
使用 kadmin 工具创建Keytab文件:
kadmin.local -q "ktadd -k /etc/security/keytabs/hdfs.headless.keytab hdfs/hostname"
确保Keytab文件的权限正确:
sudo chmod 600 /etc/security/keytabs/hdfs.headless.keytab
最后,重启HDFS服务以应用更改:
sudo systemctl restart hadoop-hdfs-namenode
sudo systemctl restart hadoop-hdfs-datanode
验证Kerberos认证是否正常工作:
klist
你应该看到一个有效的Kerberos票据。
通过以上步骤,你应该能够在CentOS上成功配置HDFS的安全策略。根据你的具体需求,可能还需要进行其他配置和调整。