「Kerberos不认短名字,FQDN是硬门槛。」这是我在RHEL 10上部署FreeIPA时学到的第一课。没有商量的余地,安装程序直接拒绝继续。
如果你管过Windows域控,FreeIPA就是Linux世界的对位产品。但企业级身份管理这件事,从"知道概念"到"能跑起来"隔着一堆魔鬼细节。这篇把我踩过的坑摊开来,给同样要搭集中认证基础设施的人省点时间。
![]()
一、环境硬门槛:别在主机名上偷懒
我的测试机配置很常规:RHEL 10系统,目的是跑Identity Management(身份管理)服务。但还没开始装软件,就被主机名卡住了。
FreeIPA的安装程序会明确检查Fully Qualified Domain Name(完全限定域名,即带域名的完整主机名)。单短名比如server不行,必须是server.atha.local这种格式。背后是Kerberos认证协议的硬性要求——它依赖完整域名来做票据分发。
修正命令:
sudo hostnamectl set-hostname server.atha.local
这一步不做,后续所有安装直接报错退出。没有绕过的办法。
二、DNS转发器必须显式指定
装服务本身用一条命令:
sudo ipa-server-install --setup-dns --forwarder=1.1.1.1 --forwarder=1.0.0.1
这里我刻意加了两个Cloudflare的公共DNS作为转发器。官方文档没说这是强制的,但实际跑下来,不指定forwarder会遇到解析异常——内部域名和外部递归查询的边界会模糊。
FreeIPA自带DNS服务,但它需要知道"自己搞不定的查询扔给谁"。企业内网环境里,这一步省不得。
三、防火墙规则:七项服务要全开
装完不等于能用。RHEL 10的firewalld默认很紧,得手动放通:
sudo firewall-cmd --add-service={freeipa-ldap,freeipa-ldaps,dns,ntp,http,https,kerberos} --permanent
sudo firewall-cmd --reload
数一下:LDAP、LDAPS、DNS、NTP、HTTP、HTTPS、Kerberos——七个服务,缺一不可。NTP容易被忽略,但Kerberos票据的时间同步依赖它,偏了就认证失败。
四、验证环节:kinit是试金石
最后一步验证,用kinit admin拿Kerberos票据。这条命令过了,说明整个认证链条——FreeIPA服务、DNS解析、Kerberos配置、防火墙——全通了。
票据拿到手,后续的用户管理、主机加入域、策略下发才有基础。这一步失败,前面所有工作都白搭。
五、FreeIPA到底解决了什么问题
把这套东西跑通之后,回头看价值:
第一,单点登录。用户一套密码登录所有加入域的Linux服务器,不用每台机子单独维护/etc/passwd。
第二,集中策略。sudo规则、SSH密钥、访问控制可以统一下发,不用登录几十台机器逐一配置。
第三,审计追踪。谁在什么时间登录了哪台机器,集中可查。合规审计的时候这是硬需求。
对比Windows AD DS,FreeIPA的功能覆盖大概七八成,但成本结构完全不同——没有客户端授权费用,对纯Linux环境更友好。混合环境的话,FreeIPA也能通过信任关系跟AD联动,但配置复杂度会上一个台阶。
这次部署让我意识到,企业基础设施的" boring work"——DNS、NTP、证书、防火墙——没有一项是可以跳过的。FreeIPA把这些散件串成一个系统,但每个组件的坑都得单独踩一遍。
对于后端和基础设施方向的工程师,亲手搭一遍比看十遍文档有用。Kerberos的报错信息出了名的晦涩,只有实际遇到过"clock skew too great"或者"cannot find KDC for realm"的人,才知道时间同步和DNS解析为什么值得单独写进检查清单。
你现在的环境是怎么做Linux主机身份管理的?每台机子本地用户,还是已经上了LDAP/FreeIPA这类集中方案?如果正在评估,你最担心哪个环节的迁移成本——用户习惯、应用兼容性,还是历史债务清理?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.