Wener Notes

Kerberos

约 2 分钟阅读
  • Kerberos: The Network Authentication ProtocolLinkweb.mit.edu/kerberosKerberos: The Network Authentication Protocol · 文档 · network authentication protocol · 密码不会被传输 - 使用有 TTL 的 Tickets · SSO 体系 - 单个 Tickets 可以访问较多的服务笔记:Kerberos
    • 文档
    • network authentication protocol
    • 密码不会被传输 - 使用有 TTL 的 Tickets
    • SSO 体系 - 单个 Tickets 可以访问较多的服务
    • KDC 作为可信的第三方 - 管理所有的用户和服务
    • 双向鉴权系统 - 类似 mTLS
    • Windows 环境下大量使用
  • 应用
    • Samba
    • SSH
    • NFS
    • 浏览器 - Chrome, Firefox
  • 主要端口 88/udp/tcp 和 464/udp/tcp
  • 可以使用 SVR 避免指定端口
  • 参考
端口说明
88Kerberos authentication system
464Kerberos Change/Set password
543klogin, Kerberos login
544kshell, Kerberos Remote shell
749Kerberos (protocol) administration[10]
750kerberos-iv, Kerberos version IV
751kerberos_master, Kerberos authentication
752passwd_server, Kerberos password (kpasswd) server
754krb5_prop, Kerberos v5 slave propagation
760krbupdate, Kerberos registration
1109Kerberos Post Office Protocol

客户端

ini
[logging]
# 默认配置
[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
# 默认域
default_realm = EXAMPLE.COM

# 域配置
[realms]
EXAMPLE.COM = {
  kdc = example.com:60088
  kpasswd_server = example.com:60464
}

# 域名映射域
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM
bash
# 初始
kinit wener
# 查看缓存授权
klist
# 修改密码
kpasswd

Keytab

  • 包含 principals 和 encrypted keys
    • 加密密钥由密码衍生而成 = 加密算法(密码)
  • 使用 keytab 访问无需密码
  • 修改密码时需要从新生成
  • 主要用于脚本自动授权
  • 可使用 KRB5_KTNAME KRB5_CLIENT_KTNAME 指定
  • 配置指定 default_keytab_name default_client_keytab_name
  • 参考
bash
# 生成 Keytab
ktutil
# 需要注意 -k 是 KVNO 需要与存储的一致
addent -password -p [email protected] -k 0 -e aes128-cts-hmac-sha1-96
wkt wener.keytab
quite

kinit [email protected] -k -t wener.keytab
klist -k wener.keytab
# 可查看 tab 内信息
file wener.keytab

SSH

  • 提前为服务端生成 keytab

/etc/ssh/sshd_config

ini
# GSSAPI Options
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes

/etc/ssh/ssh_config

text
Host *
  GSSAPIAuthentication yes
  GSSAPIDelegateCredentials yes

NFS

/etc/exports

  • sec=krb5 - 只用于认证,传输不认证不加密
  • sec=krb5i - 用于认证和完整性(integrity)检测,传输不加密
  • sec=krb5p - 用于认证和加密
text
/srv/export *(rw,async,no_subtree_check,no_root_squash,sec=krb5p)
bash
# 可能需要 -t nfs4 -o sec=krb5p
# 可加 -vv 调试
mount nfsserver:/srv/export /mnt/

Manual

关联信息

反向链接、本文链接的其他页面和外部资料。

References

其他外链8 条
最近更新commit 55b861fEdit

On this page