在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的安全策略。根據你的具體需求,可能還需要進行其他配置和調整。