系列主题
前面陆陆续续写了很多与统一身份认证有关的文章,这中间也思考和尝试了很多技术,今天重起一个新系列,从底到顶把技术走一遍。选择Windows Active Directory作为唯一用户源、选择FreeIPA将用户源作用于Linux/Unix环境、选择Keycloak作为后端认证服务、选择MaxKey作为前端身份门户、选择OAuth2-Proxy 做对老旧系统进行无侵入集成改造。
上文部署了AD域服务,今天开始部署FreeIPA。
为什么需要FreeIPA???
AD 管 Windows 世界,FreeIPA 管 Linux/Unix 世界;后者把 Linux 主机、用户、证书、sudo、SSH 密钥、HBAC、自动挂载等“一网打尽”,还能通过“信任”让 AD 用户直接登录 Linux,而不用再建一套平行账号。
一、FreeIPA简介
FreeIPA是红帽主导的开源一体化身份、认证、策略平台,相当于“Linux世界的Active Directory”。核心集成389目录服务器、MIT Kerberos、Dogtag CA、BIND、NTP,提供LDAP账号、SSO、证书、SSH密钥、sudo/HBAC/SELinux策略及Web/CLI集中管理。通过DNS转发和林信任,可让AD用户无密码登录Linux主机,实现Unix/Windows混合环境单点登录与统一审计,适用于大规模Linux基础设施。
一、背景信息
操作系统: RockyLinux9.6
IP: 172.16.10.11
domain:<your_company_code>.corp
hostname:ipa-01.<your_company_code>.corp
二、部署过程
1,设置服务器基础信息
以root用户登录Rocky Linux服务器(172.16.10.11)进行操作。
# 设置主机名 - 请使用你规划的域名
hostnamectl set-hostname ipa-01.<your_company_code>.corp
# 验证主机名
hostname -f
# 更新hosts文件,确保能解析自身
echo"172.16.10.11 ipa-01.<your_company_code>.corp ipa-01" >> /etc/hosts
# 关闭并禁用防火墙(生产环境请谨慎操作,建议改为配置特定规则)
systemctl stop firewalld
systemctl disable firewalld
# 设置SELinux为permissive模式(可选,用于排除权限问题)
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
2,更新服务器环境
在服务器终端里执行以下命令:
# 更新系统
sudo dnf update -y
3,部署FreeIPA
在服务器终端里执行以下命令:
# 安装 FreeIPA 服务器及相关组件
sudo dnf install -y freeipa-server freeipa-server-dns freeipa-client freeipa-admintools
系统出现错误:
No available modular metadata for modular package 'apache-commons-codec-1.17.1-8.module+el9.6.0+31879+f85b51c0.noarch', it cannot be installed on the system No available modular metadata for modular package 'httpcomponents-client-4.5.14-21.module+el9.6.0+31879+f85b51c0.noarch', it cannot be installed on the system No available modular metadata for modular package 'httpcomponents-core-4.4.16-21.module+el9.6.0+31879+f85b51c0.noarch', it cannot be installed on the system No available modular metadata for modular package 'slf4j-1.7.36-9.module+el9.6.0+31879+f85b51c0.noarch', it cannot be installed on the system No available modular metadata for modular package 'apache-commons-io-1:2.16.1-9.module+el9.6.0+31879+f85b51c0.noarch', it cannot be installed on the system No available modular metadata for modular package 'apache-commons-cli-1.9.0-4.module+el9.6.0+31879+f85b51c0.noarch', it cannot be installed on the system No available modular metadata for modular package 'jakarta-annotations-1.3.5-38.module+el9.6.0+31879+f85b51c0.noarch', it cannot be installed on the system No available modular metadata for modular package 'slf4j-jdk14-1.7.36-9.module+el9.6.0+31879+f85b51c0.noarch', it cannot be installed on the system The downloaded packages were saved in cache until the next successful transaction. You can remove cached packages by executing 'dnf clean packages'. Error: No available modular metadata for modular package
上述错误原因:Rocky Linux 9.6 没有提供 javapackages-runtime 模块,而这些包仅以模块化 RPM 形式存在,但系统中没有对应的模块元数据,导致无法安装。
最终解决方案:跳过模块检查,强制安装 既然这些包已经下载完成,而且在 RL9 中永远不会存在满足条件的模块,那就直接安装这些 RPM 文件,绕过模块系统:
在服务器终端里执行如下命令:
sudo rpm -Uvh --nodeps --force \
/var/cache/dnf/rocky-9.6-all-*/packages/apache-commons-*.rpm \
/var/cache/dnf/rocky-9.6-all-*/packages/httpcomponents-*.rpm \
/var/cache/dnf/rocky-9.6-all-*/packages/slf4j-*.rpm \
/var/cache/dnf/rocky-9.6-all-*/packages/jakarta-annotations-*.rpm \
/var/cache/dnf/rocky-9.6-all-*/packages/javapackages-filesystem-*.rpm \
/var/cache/dnf/rocky-9.6-all-*/packages/publicsuffix-list-*.rpm
然后重新尝试安装 FreeIPA
sudo dnf install freeipa-server freeipa-server-dns freeipa-admintools -y
运行安装程序
使用下属命令非交互式安装,你需要根据你的实际情况修改参数,尤其是密码。
sudo ipa-server-install --unattended \
--domain=<your_company_code>.corp \
--realm=<your_company_code>.CORP \
--ds-password="你的强目录管理器密码" \
--admin-password="你的强IPA管理员密码" \
--ip-address=172.16.10.11 \
--setup-dns \
--auto-forwarders \
--auto-reverse \
--allow-zone-overlap \
-U
重要提示:请务必将命令中的密码替换为你自己的强密码。安装过程可能需要几分钟。
安装完毕,给出如下提示:
本文链接:https://www.jingber.cn/post/3840.html 转载需授权!

微信扫一扫,打赏作者吧~