
bgernert/docker-kerberos该镜像是Docker化的Kerberos服务实现,基于Kerberos网络认证协议(主要支持V5版本),提供集中式身份验证机制。通过密钥分发中心(KDC)实现用户、服务等网络实体的身份验证,确保实体间通信的机密性和完整性,适用于构建需要强身份验证的安全网络环境。
通过以下命令快速启动Kerberos KDC服务:
bashdocker run -d \ --name kerberos-kdc \ -e KRB_REALM=EXAMPLE.COM \ -e KRB_ADMIN_USER=admin \ -e KRB_ADMIN_PASSWORD=SecurePass123! \ -v /host/path/to/krb5-data:/var/lib/krb5kdc \ -p 88:88/udp \ -p 88:88/tcp \ -p 464:464/udp \ -p 464:464/tcp \ kerberos-image:latest
说明:
-p 88:KDC认证端口(TCP/UDP)-p 464:KDC管理端口(TCP/UDP,用于kadmin操作)-v:挂载宿主机目录持久化存储KDC数据
| 环境变量名 | 描述 | 默认值 | 示例值 |
|---|---|---|---|
KRB_REALM | Kerberos领域名称(需大写) | EXAMPLE.COM | MYCOMPANY.LOCAL |
KRB_ADMIN_USER | KDC管理员用户名 | admin | krb-admin |
KRB_ADMIN_PASSWORD | KDC管理员密码 | 无(必须显式指定) | SecurePass123! |
KRB_ENCRYPTION_TYPES | 允许的加密算法列表 | aes256-cts-hmac-sha1-96 | aes256-cts,aes128-cts |
KRB_DEBUG | 是否启用调试日志 | false | true |
KRB_MAX_TICKET_LIFETIME | 票据最大有效期(单位:小时) | 10 | 24 |
为避免容器重启后配置和数据丢失,需挂载以下目录:
| 容器内路径 | 用途 | 宿主机挂载建议路径 |
|---|---|---|
/var/lib/krb5kdc | KDC数据库文件(包含用户/服务凭证) | /data/kerberos/kdc |
/etc/krb5.conf.d | 自定义配置文件目录 | /data/kerberos/config |
/var/log/krb5kdc | KDC服务日志 | /data/kerberos/logs |
如需高级配置,可通过挂载配置文件实现:
创建自定义krb5.conf文件(示例):
ini[libdefaults] default_realm = EXAMPLE.COM dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true [realms] EXAMPLE.COM = { kdc = kdc.example.com:88 admin_server = kdc.example.com:464 default_domain = example.com }
挂载配置文件到容器:
bashdocker run -d \ --name kerberos-kdc \ -v /host/path/to/krb5.conf:/etc/krb5.conf \ -v /host/path/to/krb5kdc:/var/lib/krb5kdc \ -p 88:88 -p 464:464 \ kerberos-image:latest
进入容器内部:
bashdocker exec -it kerberos-kdc bash
使用kadmin.local管理工具验证KDC状态:
bashkadmin.local -q "listprincs"
预期输出应包含管理员用户(如admin/***)及KDC自身服务主体。
添加测试用户:
bashkadmin.local -q "addprinc ***"
根据提示设置密码后,即可通过客户端工具(如kinit)验证认证流程。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务