Tag: kerberos

你可以创build主机名是灵活的Kerberos主体? (泊坞)

我特意试图用Apache Storm(1.0.2)来做到这一点,但它与任何使用Kerberos保护的服务都是相关的。 我试图在Docker中运行安全的Storm集群。 Storm有很多现成的docker图片,而且他们的工作很不安全。 我使用https://github.com/Baqend/docker-storm 。 我也有Storm在RHEL VM上安全运行。 但是,我的理解是Kerberos将主机名与主体绑定,所以如果我为客户端提供服务foobar,则需要创buildfoobar/hostname@REALM的主体。 然后,一个客户端服务可能会连接到hostname与主要foobar ,Kerberos将查找foobar/hostname@REALM在其数据库中,发现它在那里(因为我们创build一个正是这个名字的主体),一切都会工作。 在我的情况下,这里描述: https : //docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.0/bk_installing_manually_book/content/configure_kerberos_for_storm.html 。 nimbusauthentication为storm/<nimbus host>@REALM ,主pipe和外部客户authentication为storm/REALM 。 一切正常。 但在2017年,我们有容器和主机名不再是静态的。 那么,我将如何Kerberize在Docker数据中心(或Kubernetes等)中运行的服务? 我必须将未知的主机名附加到服务器身份validation。 我想我可以为所有可能的主机名创build一个主体,并根据容器的存储位置在启动时dynamic地select正确的主体,但这就是kludgy。 我误解了Kerberos的工作原理吗? 这里有没有解决方法,我不明白? 我在网上看到多个在Docker上运行Storm的人的例子,但我无法想象没有人的群集是安全的。

在docker虚拟机上安装并初始化kerberos KDC

基于Ubuntu的docker虚拟机,有没有人完成kerberos KDC的自动化安装和初始化? 我目前手动执行以下操作:按照此链接安装Kerberos软件包: https : //help.ubuntu.com/lts/serverguide/kerberos.html 请按照以下链接configurationKDC: https : //www.rootusers.com/how-to-configure-linux-to-authenticate-using-kerberos/ 指针表示赞赏。

Docker容器可以访问的主机VM上的位置

我有一个Java应用程序将被部署为生产虚拟机上的docker容器。 作为此应用程序的一部分,我需要访问Hadoop集群并获取文件。 由于Kerberos身份validation已启用与群集通信,我需要有一个keytab文件,用于身份validation的目的。 这个文件需要定期刷新(比如使用cronjob)并且需要被加载到应用程序中。 我在哪里将这个文件存储在主机虚拟机,以便a)它是容器内运行的应用程序访问2)如果我部署一个新的清单文件仍然存在? 对于这种情况,docker是否已经提供了一个位置?

在容器中使用kerberos,在openshift / kubernetes内部

我能够得到Kerberos身份validationfunction,为我们的Web应用程序的独立docker安装。 我们的webapp是NodeJS。 但是,当我尝试在OpenShift内部部署POD时,它停止运行。 看起来authentication头文件在翻译中丢失了。 完全相同的集装箱化的应用程序,给我们这个错误在Openshift内,但不是在docker。 错误:{错误:authenticate_gss_server_init(gss_acquire_cred):未指定的GSS失败。 次要代码可能提供更多信息:找不到匹配http / @代码的关键表项:-1} 这没有任何意义,因为我创build了SPN并从AD中导出,并将其添加到hosts /etc/krb5.keytab文件中。 我们尝试了其他方法,将POD附加到域。 我不相信这是一个真正的解决scheme,更多的是用于testing目的。 一旦我们将PODjoin到域名中,并将SPN拉下。 我们没有收到这个错误,我们只是没有收到任何validation头。 如果我运行kinit,我可以成功提供凭据或密钥表文件并获得一张票。 所以我知道Kerberos本身似乎在运作。 只是不是NodeJS库。 在此澄清,我不是开发人员创build这个应用程序,但是如果需要,我可以与他们交谈。

主机是否可以对在Docker容器上运行的KDC进行身份validation?

我有一个麻省理工学院Kerberos KDC在Docker容器上运行的设置。 我正在使用Docker for Windows在Windows 10机器上运行此操作。 容器主机名:quickstart.cloudera 我的电脑的主机名:computer.example.internal KDC在容器中正确安装,我可以使用kinit身份validation。 我想要authentication我的主机到同一个KDC。 我运行这个命令: ksetup /addkdc quickstart.cloudera ,但是当我从Windows调用kinit时,无法findKDC。 我意识到容器的域与主机不一样,但是容器被configuration为以这个名字运行,所以我在那里做的不多。 有什么办法可以使这个设置工作?

如何在docker中初始化一个keytab?

我有一个krb5.conf文件。 我创build了一个keytab,并在这里进行了检查。 在docker文件中,我将它全部添加到容器中 FROM java:8 ADD krb5.conf /etc/krb5.conf ADD evkuzmin.keytab /etc/evkuzmin.keytab ADD scripts/ /opt/scripts/ ADD report.jar report.jar RUN sh -c 'touch report.jar' ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb://audpro_mongo/report","-Djava.security.egd=file:/dev/./urandom","-jar","/report.jar","/opt/scripts/init-keytab.sh"] 并尝试在init-keytab.sh中初始化它 #!/bin/bash kinit EvKuzmin@REALM -k -t /etc/evkuzmin.keytab 但每次我尝试访问安全的群集,我得到未经授权的错误。 当我检查我的密钥表 klist -k evkuzmin.keytab 我找不到evkuzmin.keytab。 为什么? 我使用Oracle虚拟框和docker quickstratterminal来testing本地的一切。 Keytab在服务器上生成并复制到本地计算机上。 编辑 我使用图片检查了图片中的文件 docker run -it –entrypoint sh <image-name> 他们在场。

我可以使用Kerberos在Yarn上运行DCE(Docker Container Executor)吗?

hadoop文档指出DCE不支持具有安全模式的集群(Kerberos): https : //hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/DockerContainerExecutor.html 人们正在为此工作吗? 有没有办法解决这个限制?

Kerberos AD Spnego身份validation在一台机器上失败,但在另一台机器上失败

我有Kerberos身份validation问题。 我有一个dockerised REST Web应用程序,可以在一台AWS主机上很好地运行。 我刚刚尝试在一个新的主机上运行它,我得到java.security.GeneralSecurityException: Checksum failed at sun.security.krb5.internal.crypto.dk.ArcFourCrypto.decrypt当我尝试调用它时, java.security.GeneralSecurityException: Checksum failed at sun.security.krb5.internal.crypto.dk.ArcFourCrypto.decrypt 。 下面是完整的堆栈跟踪。 它使用Spnego和Spring Security 。 我不使用密钥表,我完全依赖于这样的krb5.confconfiguration: [libdefaults] default_realm = XYZ1.AD.XYZ.COM [realms] XYZ1.AD.XYZ.COM = { kdc = XYZ1XEUDC018.xyz1.ad.xyz.com default_domain = XYZ1.AD.XYZ.COM } [domain_realm] .xyz1.ad.xyz.com = XYZ1.AD.XYZ.COM .cd2.xyz.com = XYZ1.AD.XYZ.COM .ad.xyz.com = XYZ1.AD.XYZ.COM 这是Krb5LoginModule login.conf : spnego-client { com.sun.security.auth.module.Krb5LoginModule required; }; spnego-server { […]

openldap + kerberos – 无法到达任何境界的KDC

我在一个centos虚拟机(使用boot2docker虚拟机运行)中有一个ldap服务器+ kerberos安装程序。我正在尝试将它们用于我的Web应用程序身份validation(从主机 – 我的macbook)。 对于身份validation,我需要使用“GSSAPI”机制,而不是简单的绑定。 “简单的绑定”是完美的,但“GSSAPI”的方法是行不通的。 每当我尝试“ldapwhoami”命令(我运行'kinit'之前运行ldapwhoami,以确保我有有效的kerberos TGT),我收到以下错误: ldap_sasl_interactive_bind_s: Local error (-2) additional info: SASL(-1): generic failure: GSSAPI Error: Miscellaneous failure (see text (unable to reach any KDC in realm DEV.EXAMPLE.COM, tried 1 KDC) 请注意,LDAP服务器和Kerberos服务器端工作正常,意味着我testing了他们与像ldapsearch“ldapwhoami”在centos虚拟机,我有我的ldap服务器+ kerberos设置,它的工作正常。 我能够看到适当的输出。 我只有当我从我的笔记本电脑(客户端)尝试相同的命令时出现错误(以上错误)。 注:即使我从我的笔记本电脑创build主机主机(host / mymacbook.dev@DEV.EXAMPLE.COM),并使用'kadmin'将其添加到我的本地krb5.keytab文件。 以下是我的客户端configuration: Client(macbook)中的/etc/krb5.conf文件: [libdefaults] default_realm = DEV.EXAMPLE.COM ticket_lifetime = 24000 dns_lookup_realm = false dns_lookup_kdc = […]

docker kerberos webhdfs AuthenticationException:未经授权

我有一个spring的应用程序。 其中一种方法是使用webhdfs从hdfs中读取一个文件。 当我在想法testing它,它的工作。 但是,在我构build项目并在虚拟机本地或在连接到hdfs的服务器上部署Docker镜像后,我就可以看到。 AuthenticationException: Unauthorized 在我的本地机器上,我必须定期初始化令牌 kinit 用于听力。 如果我不这样做,我会得到同样的错误。 我testing了没有docker在服务器上的应用程序,它也可以。 我认为,docker形象没有看到令牌。 但是我不知道该怎么办。 Kerberos用于安全性。 有什么build议?