Hello! 欢迎来到小浪云!


CentOS HDFS如何配置安全策略


centos系统上部署安全的hadoop分布式文件系统(hdfs),需要仔细配置kerberos和hdfs权限。以下步骤将指导您完成此过程:

第一步:安装和配置Kerberos

Kerberos是hadoop安全性的基石。首先,安装Kerberos软件包:

sudo yum install krb5-server krb5-workstation krb5-libs

接下来,配置/etc/krb5.conf文件。 替换YOUR.REALM.COM,kdc.your.realm.com为您的实际Kerberos领域和KDC主机名:

[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服务:

sudo systemctl start krb5kdc sudo systemctl start kadmind

第二步:配置Hadoop使用Kerberos

修改Hadoop的核心配置文件core-site.xml和hdfs-site.xml。 同样,请将YOUR.REALM.COM替换为您的实际Kerberos领域。 /etc/security/keytabs/hdfs.headless.keytab 是关键的keytab文件路径,确保其存在且拥有正确的权限。

core-site.xml:

<configuration>   <property>     <name>hadoop.security.authentication</name>     <value>kerberos</value>   </property>   <property>     <name>hadoop.security.authorization</name>     <value>true</value>   </property>   <property>     <name>hadoop.security.auth_to_local</name>     <value>RULE:[1:$1@$0](.*@YOUR.REALM.COM)s/@.*//</value>   </property> </configuration>

hdfs-site.xml:

<configuration>   <property>     <name>dfs.namenode.kerberos.principal</name>     <value>nn/_HOST@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>dn/_HOST@YOUR.REALM.COM</value>   </property>   <property>     <name>dfs.datanode.keytab.file</name>     <value>/etc/security/keytabs/hdfs.headless.keytab</value>   </property>   <property>     <name>dfs.namenode.http-kerberos.principal</name>     <value>nn/_HOST@YOUR.REALM.COM</value>   </property>   <property>     <name>dfs.namenode.http-kerberos.keytab</name>     <value>/etc/security/keytabs/hdfs.headless.keytab</value>   </property> </configuration>

第三步:获取Kerberos票据

使用kinit命令获取Kerberos票据:

kinit your_username@YOUR.REALM.COM

将your_username替换为您的Kerberos用户名。

第四步:格式化HDFS并启动集群

格式化HDFS:

hdfs namenode -format

启动HDFS集群:

start-dfs.sh

第五步:启用HDFS安全策略

在hdfs-site.xml中启用安全策略:

<property>   <name>dfs.permissions.enabled</name>   <value>true</value> </property> <property>   <name>dfs.namenode.acls.enabled</name>   <value>true</value> </property> <property>   <name>dfs.datanode.acls.enabled</name>   <value>true</value> </property>

第六步:配置HDFS权限 (可选)

使用hdfs dfsadmin命令设置HDFS权限:

hdfs dfsadmin -setPermission "/path/to/directory"

第七步:验证配置

尝试访问HDFS:

hdfs dfs -ls /

如果成功,则表明HDFS安全策略配置成功。 请注意,这只是一个基本的配置指南,您可能需要根据您的具体环境和安全需求进行调整。 确保所有节点都已正确配置,并且Kerberos密钥表文件正确放置并拥有正确的权限。 任何错误都可能导致HDFS无法启动或访问。

相关阅读