点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
背 景
核心架构
389 Directory Server 提供 LDAP 目录服务,存储所有用户、组、主机和服务信息。与传统的 OpenLDAP 相比,它提供了更友好的管理界面和更强的可扩展性。 MIT Kerberos 负责网络认证协议,实现了无需密码传输的单点登录体验。这是 FreeIPA 安全性的关键所在——密码永远不会通过网络传输。 Dogtag Certificate System 管理 PKI 证书的整个生命周期,包括签发、续期和撤销。这个组件让 FreeIPA 能够处理基于证书的认证场景。 BIND DNS 提供动态 DNS 更新功能,与 Kerberos 和主机管理紧密集成。在 FreeIPA 中,DNS 不仅仅是域名解析工具,更是安全基础设施的一部分。
安装部署
服务器要求 至少 2GB 内存,10GB 磁盘空间,建议使用 CentOS 8/RHEL 8 或更新版本。 网络配置 确保主机名解析正常,时间同步服务(NTP/Chrony)正常运行。 规划考虑 决定 FreeIPA 服务器的域名(如 ipa.example.com)、管理员密码和复制拓扑结构。
# 设置正确的主机名
hostnamectl set-hostname ipa-server.example.com
# 更新系统并安装必要工具
dnf update -y
dnf install -y firewalld vim
# 配置防火墙规则
firewall-cmd --permanent --add-service={http,https,dns,ntp,freeipa-4}
firewall-cmd --reload
# 安装 IPA 服务器及相关组件
dnf install -y freeipa-server freeipa-server-dns
# 运行安装程序
ipa-server-install \
--domain=example.com \
--realm=EXAMPLE.COM \
--ds-password='StrongDSPassword123!' \
--admin-password='StrongAdminPassword456!' \
--hostname=ipa-server.example.com \
--ip-address=XXX.XXX.1.10 \
--setup-dns \
--forwarder=8.8.8.8 \
--forwarder=8.8.4.4 \
--no-host-dns \
--unattended
# 使用管理员凭证获取 Kerberos 票据
kinit admin
# 测试用户查询功能
ipa user-find
# 查看服务器状态
ipactl status
初始配置
# 创建用户组
ipa group-add --desc="开发团队" developers
ipa group-add --desc="运维团队" operations
# 创建 sudo 规则
ipa sudorule-add --desc="开发人员权限" dev-sudo
ipa sudorule-add-user --groups=developers dev-sudo
ipa sudorule-add-option --sudoruleoption='!authenticate' dev-sudo
# 准备用户数据文件 users.csv
# username,firstname,lastname,email,password
# zhangsan,张,三,zhangsan@example.com,TempPass123
# lisi,李,四,lisi@example.com,TempPass456
ipa user-import users.csv --update
# 允许用户自己重置密码
ipa config-mod --user-default-password-expiration-days=90
客户端集成
# 在客户端机器上执行
dnf install -y freeipa-client
# 加入域
ipa-client-install \
--domain=example.com \
--server=ipa-server.example.com \
--principal=admin \
--password='StrongAdminPassword456!' \
--mkhomedir \
--enable-dns-updates \
--unattended
功能验证
# 获取 Kerberos 票据
kinit zhangsan
# 查看票据信息
klist
# 测试 SSH 单点登录
ssh -l zhangsan localhost
# 切换用户
su - zhangsan
# 测试 sudo 权限
sudo -l
# 执行需要特权的命令
sudo systemctl status sshd
# 在主服务器上停止服务
ipactl stop
# 客户端应自动故障转移到副本服务器
kinit zhangsan
高级特性与最佳实践
基于主机的访问控制(HBAC) 允许管理员定义哪些用户可以在哪些主机上执行哪些服务,实现精细化的访问控制策略。 证书自动续期 通过集成的 certmonger 服务,可以自动监控和管理证书的生命周期,避免因证书过期导致的服务中断。 审计日志集成 所有管理操作和认证事件都被详细记录,支持导出到 SIEM 系统进行安全分析。
在生产环境中至少部署两个副本以确保高可用性; 定期备份 LDAP 数据库和证书数据; 使用 Ansible 等自动化工具管理 FreeIPA 配置; 实施定期安全审计和权限审查。
组件依赖关系 Kerberos严重依赖NTP时间同步; 网络要求 所有组件需要在同一时间域内; 安全配置 确保组件间的通信使用加密通道; 性能考虑 LDAP查询优化和Kerberos票据缓存。

本文作者:王玉坤(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




