Kerberos 基于centos7的ssh认证登陆

测试设备名字需要写入/etc/hosts中

192.168.2.20 centos20.test.com

192.168.2.21 centos21.test.com

环境简介:

Centos20为KDC服务器端安装包名为:

krb5-devel krb5-server krb5-workstation pam_krb5

Centos21为Client端安装包为:

krb5-devel krb5-workstation pam_krb5

服务端安装过程

1.安装所需包

Yum install krb5-libs krb5-server krb5-workstation pam_krb5

2.配置文件修改

2.1 文件/etc/krb5.conf

# Configuration snippets may be placed in this directory as well

includedir /etc/krb5.conf.d/

[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

 pkinit_anchors = /etc/pki/tls/certs/ca-bundle.crt

# default_realm = EXAMPLE.COM

 default_ccache_name = KEYRING:persistent:%{uid}

 default_realm = TEST.COM

 dns_lookup_kdc = false

[realms]

# EXAMPLE.COM = {

#  kdc = kerberos.example.com

#  admin_server = kerberos.example.com

# }

TEST.COM = {

   kdc = centos20.test.com

   admin_server = centos20.test.com 

}

 TEST.COM = {

  kdc = centos20.test.com

  admin_server = centos20.test.com

 }

[domain_realm]

# .example.com = EXAMPLE.COM

# example.com = EXAMPLE.COM

.TEST.com = TEST.COM

TEST.com = TEST.COM

 test.com = TEST.COM

 .test.com = TEST.COM

2.2 文件/var/kerberos/krb5kdc/kdc.conf 

[kdcdefaults]

 kdc_ports = 88

 kdc_tcp_ports = 88

[realms]

# EXAMPLE.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

# }

TEST.COM = {

max_life = 24h

max_renewable_life = 7d

default_principal_flags = +renewable

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.创建KDC数据库,需要设置管理员密码,创建完成后会在/var/kerberos/krb5kdc/下生成principal.*文件,如果需要重建直接删除principal.*类似文件即可

命令:

/usr/sbin/kdb5_util create -s

4.为数据库管理员添加ACL权限,需要修改kadm5.acl文件,* 代表所有权限

文件/var/kerberos/krb5kdc/kadm5.acl

内容:*/admin@TEST.COM *

5.启动KDC服务

systemctl restart kadmin

systemctl restart krb5kdc

6.添加数据库管理员,kadmin.local可以直接运行在KDC上,无需密码认证

命令:kadmin.local

在该命令执行,会有输入密码,改密码为后期kadmin远程登陆使用

addprinc root/admin

在该命令执行,会有输入密码,创建一个普通的principal

addprinc  myname

7.将server的hostname或ip加到kerberos的数据库

命令:kadmin.local

在该命令中执行

addprinc -randkey host/centos20.test.com

ktadd host/centos20.test.com

命令:klist -k

该命令导出kadmin的keytab文件

8.修改/etc/ssh/ssh_config文件

   GSSAPIAuthentication yes

   GSSAPIDelegateCredentials yes

   GSSAPIKeyExchange yes

  GSSAPITrustDNS yes

重启sshd服务

systemctl reload sshd

9.配置PAM权限认证

命令使用authconfig-tui或authconfig --enablekrb5 --update或setup

10.添加或者清除防火墙配置

10.1添加配置

添加文件/etc/firewalld/services/kerberos.xml

<?xml version="1.0" encoding="utf-8"?>

<service>

    <short>Kerberos</short>

    <description>Kerberos network authentication protocol server</description>

    <port protocol="tcp" port="88"/>

    <port protocol="udp" port="88"/>

    <port protocol="tcp" port="749"/>

</service>

执行添加

firewall-cmd --permanent --add-service=kerberos

执行重新加载

firewall-cmd --reload

10.2清除防火墙配置

systemctl stop firewalld

systemctl disable firewalld

Iptable -F

11.添加principal信息

文件:/root/.k5login

内容:myname@TEST.COM

Client配置

1.安装包

yum install -y krb5-libs krb5-workstation pam_krb5

如果是ubuntu需要安装

apt install krb5-user

2.更新配置文件/etc/krb5.conf内容类同server机

3.向kerberos库中添加client域名或IP

命令:

销毁以前的凭证

kdestroy

远程登陆KDC服务

kadmin -p 'root/admin'

在该命令下添加凭证

addprinc -randkey host/centos21.test.com

Ktadd host/centos21.test.com

生产keytab文件

klist -k

初始化用户

kinit myname

查看凭证

klist

测试登陆远程机器

ssh root@centos20.test.com

如果是客户端接入免密登陆需要修改如下文件

centos修改:/etc/ssh_config

   GSSAPIAuthentication yes

   GSSAPIDelegateCredentials yes

   GSSAPIKeyExchange yes

  GSSAPITrustDNS yes

ubuntu修改:/etc/sshd_config

GSSAPIAuthentication yes

然后重启ssh服务

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容