首页 > 编程知识 正文

kerberos认证原理,windbg使用详解

时间:2023-05-04 23:03:38 阅读:142965 作者:4604

要准备环境,必须准备三台虚拟机,其中一台是安装了kerberos的KDC,另两台是安装了kerberos的客户端,以便三台计算机的主机名可以解析。

3358 www.Sina.com/http://www.Sina.com/http://www.Sina.com/Hadoop 01192.168.24.100 KDC Hadoop 02192.168.24.24

yuminstallkrb5- server krb5-libs krb5-workstation krb5-auth-dialog设置kdc.conf默认文件位置/var/Kerberos/krb5 KDC/KDC

[ KDC defaults ] KDC _ ports=88k DC _ TCP _ ports=88 [ realms ] Hadoop.com={ # master _ key _ type=AES 256-cts acts ACP var/Kerberos/krb5KDC/ka dm5.keytab max _ renewable _ life=7d supported _ enctypes=AES 256-cts 3360 normal AES 128-cts 3360 normal des3- hmac-ctes : normal des-hmac-sha 1: normal des-CBC-MD 53360 normal des-CBC-CRC 3360

[kdcdefaults]此组主要用于设置全局信息或kdc默认值。 kdc_ports:kdc默认端口kdc_tcp_ports:kdc默认tcp端口[realms]此组配置条目主要用于配置每个域的特定信息。 HADOOP.COM :是设定的realms,名字是自由的。 Kerberos可以支持多个自述文件,这增加了复杂性。 大小写很敏感,一般情况下为了识别都使用大写字母。 这个realms和机器的主机没有很大的关系。 #master_key_type :和supported_enctypes缺省情况下使用aes256-cts。 由于JAVA使用aes256-cts验证方法,因此必须安装其他jar软件包,如稍后所述。 不推荐。 此外,删除aes256-ctsacl_file。 已标记admin的用户权限,并且必须由用户自己创建。 Kerberos _ principal permissions [ target _ principal ] [ restrictions ]支持通配符文件格式。 admin_keytab:kdc要检查的keytab。 max_renewable_life:ticket renwe的最大时间与ticket renwe是否可用有关,建议配置。 supported_enctypes :支持的检查方法必须删除aes256-cts。 设置krb5.conf的默认文件位置/etc/krb5.conf

# configurationsnippetsmaybeplacedinthisdirectoryaswellincludedir/etc/krb5.conf.d/[ logging ] default=file 3360/r krb5 KDC.log admin _ server=file 3360/var/log/Kerberos/kadmin efault _ realm=Hadoop.com DNS _ lookup _ realm=false ticket _ lifetime=24h renew _ lifetime=7dforwardable=ca-bundle.CRT default _ ccache _ name=key ring 3360 persistent 3360 % { uid } [ realms ] Hadoop.com={ KDC=Hadoop 01 admp

[logging]此组包含有关日志存储库路径的信息。 efault :配置krb5 libs日志存储区路径kdc :配置krb5kdc日志存储区路径

径admin_server:配置kadmin服务日志存放路径[libdefaults] 在使用Kerberos时使用的默认值。default_realm:默认的领域,当客户端在连接或者获取主体的时候,当没有输入领域的时候,该值为默认值(列如:使用kinit admin/admin 获取主体的凭证时,没有输入领域,而传到kdc服务器的时候,会变成 admin/admin@EXAMPLE.COM ),这个值需要在[realms]中定义,如果有多个领域,都需要在realms中定义。默认以大写书写。dns_lookup_realm:与dns参数有关,猜测用于域名解析,默认是false,当设置为true时,dns参数才起作用,有关dns参数获取其他参数可以查看官方文档。ticket_lifetime:获取到的票据存活时间,也就是该票据可以用多久,默认是1天。renew_lifetime:票据可更新的时间,也就是说该票据可以延迟到期的天数。默认是7天。forwardable:票据是否可以被kdc转发,默认是true。rdns:在进行dns解析的时候,正反向都可以,默认是true,如果dns_canonicalize_hostname参数被设置为false,那么rdns这个参数将无效。default_ccache_name:默认缓存的凭据名称,不推荐使用,当在客户端配置该参数的时候,会提示缓存错误信息。[realms] 该组主要是配置领域相关的信息,默认只有一个,可以配置多个,如果配置多个(比如:HADOOP.COM, HBASE.COM),但是default_realm值定义为HADOOP.COM,那么客户端在获取与HBASE.COM相关的凭据时,需要指定具体的域名(比如客户端初始化凭据: kinit admin/admin@HBASE.COM)。HADOOP.COM:域名,对应用kerberos来说就是领域。kdc:kdc服务器地址。格式:(机器:端口),默认端口是88,可直接配置主机名,前提是主机名能够被解析。admin_server:admin服务地址 格式:(机器:端口),默认端口749,可直接配置主机名,前提是主机名能够被解析。[domain_realm] 指定DNS域名和Kerberos域名之间映射关系。指定服务器的FQDN,对应的domain_realm值决定了主机所属的域。[kdc] kdc的配置信息,即指定kdc.conf的位置。profile:kdc的配置文件路径,默认值下若无文件则需要创建。 初始化Kerberos database /usr/sbin/kdb5_util create -s -r HADOOP.COM

-r 指定域名(也就是在krb5.conf文件[realms]组里面定义的域名)

-s 指定将数据库的主节点密钥存储在文件中,从而可以在每次启动KDC时自动重新生成主节点密钥

Kerberos database初始化好后,在/var/kerberos/krb5kdc目录下会生出这些文件:

kadm5.acl kdc.conf principal principal.kadm5 principal.kadm5.lock principal.ok

如果遇到数据库已经存在的提示,可以把 /var/kerberos/krb5kdc/ 目录下的 principal 的相关文件都删除掉。默认的数据库名字都是 principal。可以使用 -d 指定数据库名字。

添加database administrator /usr/sbin/kadmin.local -q "addprinc admin/admin" 为database administrator设置ACL权限

该配置文件主要是用于管理员登陆的acl,配置格式:

Kerberos_principal permissions [target_principal] [restrictions]

编辑/var/kerberos/krb5kdc/kadm5.acl文件:

*/admin@HADOOP.COM *

代表名称匹配/admin@HADOOP.COM 都认为是admin,权限是* ,代表全部权限。

启动KDC # service krb5kdc start# service kadmin start 设置开机自启 # systemctl enable krb5kdc.service# systemctl enable kadmin.service 安装Kerberos Client yum -y install krb5-workstation krb5-libs krb5-auth-dialog

修改/etc/krb5.conf配置即可。

Kerberos常用命令 进入kerberos 控制台 kadmin.local 添加用户,生成实例add_principal, addprinc, ank addprinc -randkey xxx@xxx.COM 为实例生成密钥文件 xst -k xxxx.keytab xxx@xxx.COM或kamin.local -q "xst -k xxx.keytab xxx@xxx.COM" 测试keytab可用性 kinit -kt /home/test.keytab test@HADOOP.COM 查看keytab 信息 klist -ekt /home/test.keytab 清除缓存 kdestroy 合并key

合并hadoop.keytab和HTTP.keytab为hdfs.keytab。

ktutilrkt hadoop.keytabrkt HTTP.keytabwkt hdfs.keytab 删除用户delete_principal, delprinc delprinc xxx@xxx.COM 修改用户密码change_password, cpw cpw xxx@xxx.COM 查看所有用户list_principals, listprincs, get_principals, getprincs listprincs 修改票据属性modify_principal, modprinc modprinc -maxrenewlife 1week #修改票据可在一周内renew 查看票据信息get_principal, getprinc getprinc xxx@xxx.COM 导出keytab文件ktadd, xst xst -e aes128-cts-hmac-sha1-96:normal -k /home/xxx.keytab xxx@XXX.COM-e 执定加密方式-k 指定keytab文件名注:导出keytab文件时会重新生成密码。kadmin.local模式下可添加参数'-norandkey',导出keytab文件时不重置密码。egg: xst -norandkey -k /home/test.keytab xxx@XXX.COM

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。