快速搭建 Kerberos 环境

1. 安装kerberos

yum -y install krb5-server krb5-lib krb5-workstation

2. 修改配置文件

Modify the configuration files, krb5.conf and kdc.conf
krb5.con location : /etc/krb5.conf
kdc.conf location : /var/kerberos/krb5kdc/kdc.conf
注意realm的大小写!

2.1 edit krb5.conf

[logging]                                                                                                                                                       
 default = FILE:/var/log/krb5libs.log                                                                                                                           
 kdc = FILE:/var/log/krb5kdc.log                                                                                                                                
 admin_server = FILE:/var/log/kadmind.log                                                                                                                       
                                                                                                                                                                
[libdefaults]                                                                                                                                                   
 dns_lookup_realm = false                                                                                                                                       
 ticket_lifetime = 24h                                                                                                                                          
 renew_lifetime = 7d                                                                                                                                            
 forwardable = true                                                                                                                                             
 rdns = false                                                                                                                                                   
 default_realm = SFTP.ATANG.COM                                                                                                                                   
 default_ccache_name = KEYRING:persistent:%{uid}                                                                                                                
                                                                                                                                                                
[realms]                                                                                                                                                        
 SFTP.ATANG.COM = {                                                                                                                                                
  kdc = sftp.atang.com                                                                                                                                             
  admin_server = sftp.atang.com                                                                                                                                    
 }                                                                                                                                                              
                                                                                                                                                                
[domain_realm]                                                                                                                                                  
# .example.com = EXAMPLE.COM                                                                                                                                    
# example.com = EXAMPLE.COM                                                                                                                                                                                                                                                                                             

2.2 edit kdc.conf

[kdcdefaults]                                                                                                                                                   
 kdc_ports = 88                                                                                                                                                 
 kdc_tcp_ports = 88                                                                                                                                             
                                                                                                                                                                
[realms]                                                                                                                                                        
 SFTP.ATANG.COM = {                                                                                                                                                
  #master_key_type = aes256-cts                                                                                                                                 
  acl_file = /var/kerberos/krb5kdc/kadm5.acl                                                                                                                    
  dict_file = /usr/share/dict/words                                                                                                                             
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab                                                                                                             
  supported_enctypes = aes256-cts:normal 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                                                                                                                   
 }   

3. create principle database

sh-4.2# kdb5_util create -r SFTP.ATANG.COM -s                                                                                                                      
Loading random data                                                                                                                                             
Initializing database '/var/kerberos/krb5kdc/principal' for realm 'SFTP.ATANG.COM',                                                                                
master key name 'K/M@SFTP.ATANG.COM'                                                                                                                               
You will be prompted for the database Master Password.                                                                                                          
It is important that you NOT FORGET this password.                                                                                                              
Enter KDC database master key:                                                                                                                                  
Re-enter KDC database master key to verify:  

This command create files below

-rw------- 1 root root 8192 Apr  1 14:26 principal                                                                                                              
-rw------- 1 root root 8192 Apr  1 14:26 principal.kadm5                                                                                                        
-rw------- 1 root root    0 Apr  1 14:26 principal.kadm5.lock                                                                                                   
-rw------- 1 root root    0 Apr  1 14:26 principal.ok 

Kerberos database files: principal, principal.ok
Kerberos administrative database file: principal.kadm5
administrative database lock file: principal.kadm5.lock

4. add administrator to the acl file. kadm5.acl

*/admin@EXAMPLE.COM     *                                                                                                                                                                                                                                                                                 
admin@SFTP.ATANG.COM   

5. add administrator to database

sh-4.2# kadmin.local                                                                                                                                            
Authenticating as principal root/admin@SFTP.ATANG.COM with password.                                                                                               
kadmin.local:  addprinc admin/admin@SFTP.ATANG.COM                                                                                                                 
WARNING: no policy specified for admin/admin@SFTP.ATANG.COM; defaulting to no policy                                                                               
Enter password for principal "admin/admin@SFTP.ATANG.COM":                                                                                                         
Re-enter password for principal "admin/admin@SFTP.ATANG.COM":                                                                                                      
Principal "admin/admin@SFTP.ATANG.COM" created.                                                                                                                    

6. start service

At this point, you are ready to start the Kerberos KDC (krb5kdc) and administrative daemons on the Master KDC. To do so, type:

# krb5kdc
# kadmind

6. the log file

sh-4.2# tail /var/log/krb5kdc.log                                                                                                                               
otp: Loaded                                                                                                                                                     
Apr 01 15:04:30 sftp-server-test-52005ac9 krb5kdc[99744](info): setting up network...                                                                           
Apr 01 15:04:30 sftp-server-test-52005ac9 krb5kdc[99744](info): listening on fd 9: udp 0.0.0.0.88 (pktinfo)                                                     
krb5kdc: setsockopt(10,IPV6_V6ONLY,1) worked                                                                                                                    
Apr 01 15:04:30 sftp-server-test-52005ac9 krb5kdc[99744](info): listening on fd 10: udp ::.88 (pktinfo)                                                         
krb5kdc: setsockopt(11,IPV6_V6ONLY,1) worked                                                                                                                    
Apr 01 15:04:30 sftp-server-test-52005ac9 krb5kdc[99744](info): listening on fd 12: tcp 0.0.0.0.88                                                              
Apr 01 15:04:30 sftp-server-test-52005ac9 krb5kdc[99744](info): listening on fd 11: tcp ::.88                                                                   
Apr 01 15:04:30 sftp-server-test-52005ac9 krb5kdc[99744](info): set up 4 sockets                                                                                
Apr 01 15:04:30 sftp-server-test-52005ac9 krb5kdc[99745](info): commencing operation                                                                            
sh-4.2#                                       
sh-4.2# tail /var/log/kadmind.log                                                                                                                               
kadmind: setsockopt(11,IPV6_V6ONLY,1) worked                                                                                                                    
Apr 01 15:04:34 sftp-server-test-52005ac9 kadmind[99746](info): listening on fd 12: tcp 0.0.0.0.464                                                             
Apr 01 15:04:34 sftp-server-test-52005ac9 kadmind[99746](info): listening on fd 11: tcp ::.464                                                                  
Apr 01 15:04:34 sftp-server-test-52005ac9 kadmind[99746](info): listening on fd 13: rpc 0.0.0.0.749                                                             
kadmind: setsockopt(14,IPV6_V6ONLY,1) worked                                                                                                                    
Apr 01 15:04:34 sftp-server-test-52005ac9 kadmind[99746](info): listening on fd 14: rpc ::.749                                                                  
Apr 01 15:04:34 sftp-server-test-52005ac9 kadmind[99746](info): set up 6 sockets                                                                                
Apr 01 15:04:34 sftp-server-test-52005ac9 kadmind[99746](Error): /var/kerberos/krb5kdc/kadm5.acl: syntax error at line 2 <admin@SFTP.ATANG.COM...>                 
Apr 01 15:04:34 sftp-server-test-52005ac9 kadmind[99748](info): Seeding random number generator                                                                 
Apr 01 15:04:34 sftp-server-test-52005ac9 kadmind[99748](info): starting

7. validation

kinit

sh-4.2# kinit admin/admin@SFTP.ATANG.COM                                                                                                                           
kinit: Cannot contact any KDC for realm 'SFTP.ATANG.COM' while getting initial credentials 

如果报上述错误,需要修改host文件,添加如下配置信息

127.0.0.1 sftp.atang.com
sh-4.2# kinit admin/admin@SFTP.ATANG.COM                                                                                                                           
Password for admin/admin@SFTP.ATANG.COM: 

klist

MAC下kerberos客户端安装

(base) ZBMAC-9b3ab3c69:~ atang$ brew install krb5

将server的配置文件krb5.conf拷贝到本地 /etc/krb5.conf

(base) ZBMAC-9b3ab3c69:~ atang$ klist
Ticket cache: KCM:74F69F75-9ABC-4030-8328-AFA167CF135E
Default principal: atang@atang.local

Valid starting       Expires              Service principal
02  4 2021 09:47:58  02  4 2021 19:47:58  krbtgt/atang.local@atang.local
	renew until 09  4 2021 09:47:58
(base) ZBMAC-9b3ab3c69:~ atang$ klist
Ticket cache: KCM:74F69F75-9ABC-4030-8328-AFA167CF135E
Default principal: atang@atang.local

Valid starting       Expires              Service principal
02  4 2021 09:47:58  02  4 2021 19:47:58  krbtgt/atang.local@atang.local
	renew until 09  4 2021 09:47:58
(base) ZBMAC-9b3ab3c69:~ atang$ 
(base) ZBMAC-9b3ab3c69:~ atang$ kinit admin/admin
Password for admin/admin@SFTP.ATANG.COM: 
(base) ZBMAC-9b3ab3c69:~ atang$ klist
Ticket cache: KCM:673152771:1
Default principal: admin/admin@SFTP.ATANG.COM

Valid starting       Expires              Service principal
02  4 2021 11:00:21  03  4 2021 11:00:21  krbtgt/sftp.atang.com@SFTP.ATANG.COM
(base) ZBMAC-9b3ab3c69:~ atang$ 

参考

LDAP概念和原理介绍
Kerberos认证原理简介
Skipping Kerberos authentication prompts with JSch [duplicate]
Replacing NIS with Kerberos and LDAP HOWTO
快速搭建Kerberos服务端及入门使用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值