kerberos centos?centos官网
Centos7系统有什么特点
CentOS 7是一款基于 Red Hat Enterprise Linux(RHEL)开发的免费开源操作系统。它具有以下特点:
兼容性高:CentOS 7兼容大多数硬件,可以运行在多种计算机硬件平台上,包括 x86、x64和 ARM等处理器体系结构。
稳定性好:CentOS 7采用了 RHEL的源代码,在稳定性方面有很大优势。
安全性高:CentOS 7安装时会自动开启防火墙和 SELinux,可以有效保护系统安全。
支持软件包管理:CentOS 7采用了 YUM包管理器,可以方便地安装、升级和卸载软件包。
网络功能强大:CentOS 7提供了丰富的网络功能,包括虚拟网络、Bonding、VLAN等,可以满足各种网络需求。
免费开源:CentOS 7是一款免费开源的操作系统,可以免费下载使用。
【kerberos】Kerberos安装使用详解及遇到的问题
一、Kerberos协议:
Kerberos协议主要用于计算机网络的身份鉴别(Authentication),其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。
二、环境信息:信息版本操作系统centos6.9服务器类型虚拟机CDH5.13节点数量5
节点信息:|?ip|主机名?|角色||--|--|--|| 10.12.24.209|dx-dev-test1029?| client|| 10.12.25.208|dx-dev-test1026?| client|| 10.12.25.209|dx-dev-test1030?| client|| 10.12.26.208|dx-dev-test1027?| client|| 10.12.27.208|dx-dev-test1028?| server|
三、安装kerberos
使用yum安装kerberos
1. server服务端安装:yum install krb5-server2. client客户端安装
注:server节点也是client节点,也是需要安装
yum install krb5-workstation krb5-libs krb5-auth-dialog 3.服务端节点配置(1)修改/etc/krb5.conf
/etc/krb5.conf:包含Kerberos的配置信息。例如,KDC的位置,Kerberos的admin的realms等。需要所有使用的Kerberos的机器上的配置文件都同步。这里仅列举需要的基本配置。注意修改:红色的标记
文件内容如下:
[libdefaults]default_realm= RONG360.COMdns_lookup_kdc= falsedns_lookup_realm= falseticket_lifetime= 86400renew_lifetime= 604800forwardable= truedefault_tgs_enctypes= aes128-cts aes256-cts-hmac-sha1-96 des3-hmac-sha1 arcfour-hmacdefault_tkt_enctypes= aes128-cts aes256-cts-hmac-sha1-96 des3-hmac-sha1 arcfour-hmacpermitted_enctypes= aes128-cts aes256-cts-hmac-sha1-96 des3-hmac-sha1 arcfour-hmacudp_preference_limit= 1kdc_timeout= 60000[realms]RONG360.COM={kdc= dx-dev-test1028admin_server= dx-dev-test1028}[domain_realm]~
说明:
[logging]:表示server端的日志的打印位置
[libdefaults]:每种连接的默认配置,需要注意以下几个关键的小配置
default_realm= HADOOP.COM默认的realm,必须跟要配置的realm的名称一致。
udp_preference_limit= 1禁止使用udp可以防止一个Hadoop中的错误
oticket_lifetime表明凭证生效的时限,一般为24小时。
orenew_lifetime:表明凭证最长可以被延期的时限,一般为一个礼拜。当凭证过期之后,对安全认证的服务的后续访问则会失败。
[realms]:列举使用的realm。
kdc:代表要kdc的位置。格式是机器:端口
admin_server:代表admin的位置。格式是机器:端口
default_domain:代表默认的域名
[appdefaults]:可以设定一些针对特定应用的配置,覆盖默认配置。
udp_preference_limit= 1 kdc原生支持tcp/udp协议,客户端访问kdc服务时,默认先使用udp协议发起请求,如果数据包过大或者请求失败,然后再换用tcp协议请求。网络条件不好,如果使用udp容易出现丢包现象。
(2)修改/var/kerberos/krb5kdc/kdc.conf
默认放在/var/kerberos/krb5kdc/kdc.conf。或者通过覆盖KRB5_KDC_PROFILE环境变量修改配置文件位置。文件内容如下:文件内容如下:
[kdcdefaults] kdc_ports= 88 kdc_tcp_ports= 88[realms] RONG360.COM={#master_key_type= aes256-ctsacl_file=/var/kerberos/krb5kdc/kadm5.acldict_file=/usr/share/dict/wordsadmin_keytab=/var/kerberos/krb5kdc/kadm5.keytabsupported_enctypes= aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal}
说明:
RONG360.COM:是设定的realms。名字随意。Kerberos可以支持多个realms,会增加复杂度。本文不探讨。大小写敏感,一般为了识别使用全部大写。这个realms跟机器的host没有大关系。
max_renewable_life= 7d涉及到是否能进行ticket的renwe必须配置。
master_key_type:和supported_enctypes默认使用aes256-cts。由于,JAVA使用aes256-cts验证方式需要安装额外的jar包,更多参考2.2.9关于AES-256加密:。推荐不使用。
acl_file:标注了admin的用户权限。文件格式是
Kerberos_principal permissions [target_principal]?[restrictions]支持通配符等。
admin_keytab:KDC进行校验的keytab。后文会提及如何创建。
supported_enctypes:支持的校验方式。注意把aes256-cts去掉。
(3)修改/var/kerberos/krb5kdc/kadm5.acl
编辑 Kerberos访问控制列表文件(kadm5.acl)文件应包含允许管理 KDC的所有主体名称。文件内容如下:
*/admin@RONG360.COM*
注:将上面修改的文件,进行全节点分发。
4.创建/初始化Kerberos database
初始化并启动:完成上面三个配置文件后,就可以进行初始化并启动了。
创建命令:
kdb5_util create-s-r RONG360.COM
其中,[-s]表示生成stash file,并在其中存储master server key(krb5kdc);还可以用[-r]来指定一个realm name——当krb5.conf中定义了多个realm时才是必要的。
保存路径为/var/kerberos/krb5kdc如果需要重建数据库,将该目录下的principal相关的文件删除即可
在此过程中,我们会输入database的管理密码。这里设置的密码一定要记住,如果忘记了,就无法管理Kerberos server。
当Kerberos database创建好后,可以看到目录/var/kerberos/krb5kdc下生成了几个文件:
kadm5.acl kdc.conf principal principal.kadm5 principal.kadm5.lock principal.ok5.重启服务
重启服务
service krb5kdc start或 systemctl startkrb5kdcservice kadmin start或 systemctl startkadmin6.设置开机启动
设置开机自动启动:
chkconfig krb5kdc on或 systemctl enable krb5kdcchkconfig kadmin on或 systemctl enable kadmin
现在KDC已经在工作了。这两个daemons将会在后台运行,可以查看它们的日志文件(/var/log/krb5kdc.log和/var/log/kadmind.log)。
可以通过命令kinit来检查这两个daemons是否正常工作。
7.添加database administrator
我们需要为Kerberos database添加administrative principals(即能够管理database的principals)——至少要添加1个principal来使得Kerberos的管理进程kadmind能够在网络上与程序kadmin进行通讯。
在maste KDC上执行:
/usr/sbin/kadmin.local-q"addprinc admin/admin"
通过上面的命令为其设置密码
yum install krb5-workstation krb5-libs krb5-auth-dialog0
可以直接运行在master KDC上,而不需要首先通过Kerberos的认证,实际上它只需要对本地文件的读写权限。
8.客户端阶段配置
将之前修改的/etc/krb5.conf拷贝到从节点。
四、kerberos日常操作1.管理员操作登陆
登录到管理员账户:如果在本机上,可以通过yum install krb5-workstation krb5-libs krb5-auth-dialog0直接登录。其它机器的,先使用kinit进行验证。
增删改查账户
在管理员的状态下使用addprinc,delprinc,modprinc,listprincs命令。使用?可以列出所有的命令。
yum install krb5-workstation krb5-libs krb5-auth-dialog0-q"addprinc-pw 111111 test"yum install krb5-workstation krb5-libs krb5-auth-dialog0: delprinc testyum install krb5-workstation krb5-libs krb5-auth-dialog0: listprincs生成keytab:使用xst命令或者ktadd命令yum install krb5-workstation krb5-libs krb5-auth-dialog22.用户操作查看当前的认证用户认证用户yum install krb5-workstation krb5-libs krb5-auth-dialog3删除当前的认证的缓存yum install krb5-workstation krb5-libs krb5-auth-dialog4五、常见问题1.查看ticket是否是renewable
通过klist命令来查看
如果Valid starting的值与renew until的值相同,则表示该principal的ticket不是 renwable。
2. ticket无法更新
如果过了Expires,可以通过命令kinit–R来更新ticket但如果ticket无法更新
yum install krb5-workstation krb5-libs krb5-auth-dialog5
这是因为krbtgt/HADOOP.COM@ HADOOP.COM的[renewlife]被设置成了0,这一点可以通过[yum install krb5-workstation krb5-libs krb5-auth-dialog0=> getprinc krbtgt/ HADOOP.COM@ HADOOP.COM]看出来。
将krbtgt/HADOOP.COM@HADOOP.COM的[renewlife]修改为7days即可。
yum install krb5-workstation krb5-libs krb5-auth-dialog0: modprinc-maxrenewlife 1week krbtgt/HADOOP.COM@HADOOP.COM3. CDH安装Kerberos后,重启集群报错yum install krb5-workstation krb5-libs krb5-auth-dialog7
原因:因为系统采用的是Centos7.6,对于使用Centos5.6及以上西戎,默认采用 AES-256来加密;这就需要CDH集群所有的节点都安装 Java Cryptography Extension(JCE) Unlimited Strength Jurisdiction Policy File下载链接:
yum install krb5-workstation krb5-libs krb5-auth-dialog8
解决办法: 1.下载的文件是个zip包,解压 2.将解压后的 UnlimitedJCEPolicyJDK8文件下的两个jar包复制到$JAVA_HOME/jre/lib/security/
我的JAVA_HOME=/opt/module/jdk1.8.0_144yum install krb5-workstation krb5-libs krb5-auth-dialog9
3.如果你的JAVA_HOME不是在/usr/java下,那么还需要进行一步操作 mkdir/usr/java
创建软链接指向自己的JAVA_HOME[libdefaults]default_realm= RONG360.COMdns_lookup_kdc= falsedns_lookup_realm= falseticket_lifetime= 86400renew_lifetime= 604800forwardable= truedefault_tgs_enctypes= aes128-cts aes256-cts-hmac-sha1-96 des3-hmac-sha1 arcfour-hmacdefault_tkt_enctypes= aes128-cts aes256-cts-hmac-sha1-96 des3-hmac-sha1 arcfour-hmacpermitted_enctypes= aes128-cts aes256-cts-hmac-sha1-96 des3-hmac-sha1 arcfour-hmacudp_preference_limit= 1kdc_timeout= 60000[realms]RONG360.COM={kdc= dx-dev-test1028admin_server= dx-dev-test1028}[domain_realm]~0
目前总结到这!
原文:
115.Kerberos的安装配置与启用
为了实现Kerberos的安装配置与启用,我们需要关注几个关键步骤。首先,确保系统满足Kerberos的要求,如安装一个支持 Kerberos的Linux发行版,如Ubuntu或CentOS。其次,安装Kerberos服务,这通常通过在发行版的包管理器中执行特定命令完成。例如,在Ubuntu中,可以使用以下命令安装Kerberos:
sudo apt-get update
sudo apt-get install krb5-kdc krb5-admin
在完成Kerberos服务的安装后,设置KDC(Key Distribution Center)服务。这包括配置kdc.conf文件,设置KDC和realm参数。这些参数应根据你的网络环境进行适当调整。此外,创建和管理Kerberos数据库也至关重要,包括添加服务主机和用户。
一旦KDC服务设置完成,启动并验证其是否正常运行。可以通过运行以下命令检查KDC状态:
sudo kinit
然后尝试通过Kerberos进行身份验证,例如登录到SSH服务。如果一切设置正确,身份验证应该成功。
最后一步是配置和启用Kerberos在目标服务中的使用。这通常涉及创建服务主机和服务票证,确保服务能够接受来自Kerberos的认证请求。同时,确保你的应用程序或服务的配置文件包含Kerberos相关设置,如KDC主机名和realm名称。
通过以上步骤,Kerberos的安装配置与启用工作便告完成。实践过程中,根据具体的系统环境和需求进行调整,确保安全高效地实现Kerberos身份验证。