快速搭建 Kerberos 环境

2024-04-25 18:32
文章标签 快速 搭建 环境 kerberos

本文主要是介绍快速搭建 Kerberos 环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

快速搭建 Kerberos 环境

    • 1. 安装kerberos
    • 2. 修改配置文件
      • 2.1 edit krb5.conf
      • 2.2 edit kdc.conf
    • 3. create principle database
    • 4. add administrator to the acl file. kadm5.acl
    • 5. add administrator to database
    • 6. start service
    • 6. the log file
    • 7. validation
      • kinit
      • klist
  • 参考

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.localValid starting       Expires              Service principal
02  4 2021 09:47:58  02  4 2021 19:47:58  krbtgt/atang.local@atang.localrenew until 09  4 2021 09:47:58
(base) ZBMAC-9b3ab3c69:~ atang$ klist
Ticket cache: KCM:74F69F75-9ABC-4030-8328-AFA167CF135E
Default principal: atang@atang.localValid starting       Expires              Service principal
02  4 2021 09:47:58  02  4 2021 19:47:58  krbtgt/atang.local@atang.localrenew 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.COMValid 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服务端及入门使用

这篇关于快速搭建 Kerberos 环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/935460

相关文章

Python实现快速扫描目标主机的开放端口和服务

《Python实现快速扫描目标主机的开放端口和服务》这篇文章主要为大家详细介绍了如何使用Python编写一个功能强大的端口扫描器脚本,实现快速扫描目标主机的开放端口和服务,感兴趣的小伙伴可以了解下... 目录功能介绍场景应用1. 网络安全审计2. 系统管理维护3. 网络故障排查4. 合规性检查报错处理1.

MySQL快速复制一张表的四种核心方法(包括表结构和数据)

《MySQL快速复制一张表的四种核心方法(包括表结构和数据)》本文详细介绍了四种复制MySQL表(结构+数据)的方法,并对每种方法进行了对比分析,适用于不同场景和数据量的复制需求,特别是针对超大表(1... 目录一、mysql 复制表(结构+数据)的 4 种核心方法(面试结构化回答)方法 1:CREATE

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

SpringCloud Stream 快速入门实例教程

《SpringCloudStream快速入门实例教程》本文介绍了SpringCloudStream(SCS)组件在分布式系统中的作用,以及如何集成到SpringBoot项目中,通过SCS,可... 目录1.SCS 组件的出现的背景和作用2.SCS 集成srping Boot项目3.Yml 配置4.Sprin

SpringBoot集成iText快速生成PDF教程

《SpringBoot集成iText快速生成PDF教程》本文介绍了如何在SpringBoot项目中集成iText9.4.0生成PDF文档,包括新特性的介绍、环境准备、Service层实现、Contro... 目录SpringBoot集成iText 9.4.0生成PDF一、iText 9新特性与架构变革二、环

MySQL 批量插入的原理和实战方法(快速提升大数据导入效率)

《MySQL批量插入的原理和实战方法(快速提升大数据导入效率)》在日常开发中,我们经常需要将大量数据批量插入到MySQL数据库中,本文将介绍批量插入的原理、实现方法,并结合Python和PyMySQ... 目录一、批量插入的优势二、mysql 表的创建示例三、python 实现批量插入1. 安装 PyMyS

MongoDB搭建过程及单机版部署方法

《MongoDB搭建过程及单机版部署方法》MongoDB是一个灵活、高性能的NoSQL数据库,特别适合快速开发和大规模分布式系统,本文给大家介绍MongoDB搭建过程及单机版部署方法,感兴趣的朋友跟随... 目录前言1️⃣ 核心特点1、文档存储2、无模式(Schema-less)3、高性能4、水平扩展(Sh

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境