两个kerberos安全集群之间的数据传输

时间:2019-07-12 13:57:40

标签: security hadoop hdfs bigdata kerberos

我正在尝试在两个受保护的 kerberos 之间传输数据。簇。我遇到的问题是我没有对源群集的配置更改访问权限,我需要更改目标群集上的所有内容。我可以通过任何方式在两个群集之间建立信任域,而无需在源群集上编辑任何配置。

1 个答案:

答案 0 :(得分:0)

如果使用的是distcp,则必须通过编辑krb5.conf在每个集群上添加[realms]和[domain_realms]来了解另一个集群,以确保两个KDC彼此了解:

[realms]
        <CLUSTER2_REALM> = {
                kdc = <cluster2_server_kdc_host>:88
                admin_server = <cluster2_server_kdc_host>:749
                default_domain = <cluster2_host>
        }
[domain_realm]
        Clustre2_NN1 = CLUSTER2_REALM
        Cluster2_NN2= CLUSTER2_REALM

同样在cluster2上,具有CLUSTER1详细信息。

然后您需要在两个集群上创建主体

addprinc -e "aes128-cts-hmac-sha1-96:normal aes256-cts-hmac-sha1-96:normal" krbtgt/<CLUSTER1_REASLM>@<CLUSTER2_REALMS>

modprinc -maxrenewlife <n>day krbtgt/<CLUSTER1_REALM>@<CLUSTER2_REALM>

需要为hadoop.security.auth_to_local设置以下属性

In Cluster1:
RULE:[1:$1@$0](.*@\Q<CLUSTER2_REALM>\E$)s/@\Q<CLUSTER2_REALM>\E$//
RULE:[2:$1@$0](.*@\Q<CLUSTER2_REALM>\E$)s/@\Q<CLUSTER2_REALM>\E$//
In Cluster2:
RULE:[1:$1@$0](.*@\Q<CLUSTER1_REALM>\E$)s/@\Q<CLUSTER1_REALM>\E$//
RULE:[2:$1@$0](.*@\Q<CLUSTER1_REALM>\E$)s/@\Q<CLUSTER1_REALM>\E$//

重新启动kdc

/etc/init.d/krb5kdc stop
/etc/init.d/kadmin stop
/etc/init.d/krb5kdc start
/etc/init.d/kadmin start

故障转移或重新启动名称节点