我们的目标是在Red Hat Enterprise Linux上安装和配置独立的FreeIPA服务器。
对目标服务器,可用软件存储库的特权访问。
sudo
命令FreeIPA主要是一个目录服务,您可以在其中存储有关您的用户的信息,以及他们有关登录,成为root用户的权限,或者只是在加入FreeIPA域的系统上以root用户身份运行特定命令等等。虽然这是该服务的主要特性,但是有一些非常有用的可选组件,如DNS和PKI - 这使得FreeIPA成为基于Linux的系统中必不可少的基础结构部分。它有一个很好的基于Web的GUI和强大的命令行界面。
在本教程中,我们将了解如何在Red Hat Enterprise Linux 7.5上安装和配置独立的FreeIPA服务器。但请注意,在生产系统中,建议您至少再创建一个副本以提供高可用性。我们将在具有2个CPU内核和2 GB RAM的虚拟机上托管该服务 - 在大型系统上,您可能希望添加更多资源。我们的实验室机器运行RHEL 7.5,基本安装。让我们开始吧。
安装和配置FreeIPA服务器非常简单 - 问题在于规划。您应该考虑要使用的软件堆栈的哪些部分,以及您希望运行这些服务的环境是什么。由于FreeIPA可以处理DNS,如果您从头开始构建系统,将整个DNS域提供给FreeIPA可能是有用的,其中所有客户端计算机将调用用于DNS的FreeIPA服务器。此域可以是您的基础结构的子域,您甚至可以仅为FreeIPA服务器设置子域 - 但请仔细考虑这一点,因为您以后无法更改域。不要使用现有域,FreeIPA需要认为它是给定域的主人(安装程序将检查域是否可以解析,以及它是否具有其他的SOA记录)。
PKI是另一个问题:如果您的系统中已有CA(证书颁发机构),则可能需要将FreeIPA设置为从属CA. 在Certmonger的帮助下,FreeIPA能够自动更新客户端证书(如Web服务器的SSL证书),这可以派上用场 - 但如果系统没有面向Internet的服务,您可能不需要FreeIPA的PKI服务一点都不 这一切都取决于用例。
在本教程中,规划已经完成。我们希望建立一个新的测试实验室,因此我们将安装和配置FreeIPA的所有功能,包括带有自签名CA证书的DNS和PKI。FreeIPA可以为我们生成这个,无需使用openssl等工具创建。
首先应该设置的是服务器的可靠NTP源(FreeIPA也将充当NTP服务器,但自然需要源),并且服务器/etc/hosts
文件中的条目指向自身:
# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.122.147 rhel7.ipa.linuxconfig.org rhel7
主机文件中提供的主机名必须是机器的FQDN。
# hostname
rhel7.ipa.linuxconfig.org
这是重要的一步,不要错过它。网络文件中需要相同的主机名:
# grep HOSTNAME /etc/sysconfig/network
HOSTNAME=rhel7.ipa.linuxconfig.org
所需的软件包含在Red Hat Enterprise Linux服务器ISO映像或订阅频道中,无需其他存储库。在此演示中,有一个本地存储库集,其中包含ISO映像的内容。软件堆栈捆绑在一起,因此单个yum命令将执行:
# yum install ipa-server ipa-server-dns
在基本安装上,yum将提供一长串依赖项,包括Apache Tomcat,Apache Httpd,389-ds(LDAP服务器)等。完成yum后,打开防火墙上所需的端口:
# firewall-cmd --add-service=freeipa-ldap
success
# firewall-cmd --add-service=freeipa-ldap --permanent
success
现在让我们设置我们的新FreeIPA服务器。这需要时间,但是当安装程序要求参数时,您只需要第一部分。大多数参数可以作为参数传递给安装程序,但我们不会给出任何参数,这样我们就可以从之前的设置中受益。
#ipa-server-install
可以在/var/log/ipaserver-install.log中找到此安装的日志文件
================================================== ============================
该程序将设置IPA服务器。
这包括:
*配置独立CA(dogtag)以进行证书管理
*配置网络时间守护进程(ntpd)
*创建和配置Directory Server的实例
*创建和配置Kerberos密钥分发中心(KDC)
*配置Apache(httpd)
*配置KDC以启用PKINIT
要接受括号中显示的默认值,请按Enter键。
警告:将禁用冲突的时间和日期同步服务'chronyd'
赞成ntpd
##我们将使用集成的DNS服务器
要配置集成DNS(BIND)吗?[不]:是的
输入计算机的完全限定域名
你正在设置服务器软件。使用表格
<主机名>。<域名>
示例:master.example.com。
##按'enter'表示我们接受手镯中的默认值
##这就是我们为主机设置合适的FDQN的原因
服务器主机名[rhel7.ipa.linuxconfig.org]:
警告:跳过主机rhel7.ipa.linuxconfig.org的DNS解析
域名已根据主机名确定。
##现在我们不必输入/粘贴域名
##并且安装程序不需要尝试设置主机的名称
请确认域名[ipa.linuxconfig.org]:
kerberos协议要求定义领域名称。
这通常是转换为大写的域名。
## Kerberos域从域名映射
请提供领域名称[IPA.LINUXCONFIG.ORG]:
某些目录服务器操作需要管理用户。
此用户称为目录管理员,具有完全访问权限
到系统管理任务的目录,并将添加到
为IPA创建的目录服务器实例。
密码长度必须至少为8个字符。
## Directory Manager用户用于低级操作,如创建副本
目录管理员密码:
##在生产环境中使用非常强大的密码!
确认密码):
IPA服务器需要一个名为“admin”的管理用户。
此用户是用于IPA服务器管理的常规系统帐户。
## admin是FreeIPA系统的“根” - 但不是LDAP目录
IPA管理员密码:
确认密码):
检查DNS域名ipa.linuxconfig.org。,请稍候...
##我们可以设置转发器,但也可以稍后设置
您要配置DNS转发器吗?[是]:不
没有配置DNS转发器
您想搜索缺失的反向区域吗?[是]:不
IPA主服务器将配置为:
主机名:rhel7.ipa.linuxconfig.org
IP地址:192.168.122.147
域名:ipa.linuxconfig.org
领域名称:IPA.LINUXCONFIG.ORG
BIND DNS服务器将配置为服务于IPA域:
货代:没有货运代理
远期政策:仅限
反向区域:无反向区域
继续使用这些值配置系统?[不]:是的
##此时安装程序将自行运行,
##并在几分钟内完成整个过程。咖啡的最佳时间。
以下操作可能需要几分钟才能完成。
请等待,直到返回提示。
配置NTP守护程序(ntpd)
[1/4]:停止ntpd ...
安装程序的输出相当长,您可以看到所有组件都已配置,重新启动和验证。在输出结束时,需要一些完整功能所需的步骤,但不适用于安装过程本身。
... ipa-client-install命令成功
================================================== ============================
设置完成
下一步:
1.您必须确保这些网络端口已打开:
TCP端口:
* 80,443:HTTP / HTTPS
* 389,636:LDAP / LDAPS
* 88,464:kerberos
* 53:绑定
UDP端口:
* 88,464:kerberos
* 53:绑定
* 123:ntp
2.您现在可以使用以下命令获取kerberos票:'kinit admin'
此票证允许您使用IPA工具(例如,ipa用户添加)
和Web用户界面。
请务必备份存储在/root/cacert.p12中的CA证书
创建副本需要这些文件。这些密码
files是目录管理员密码
正如安装程序所指出的那样,请务必备份CA证书,并在防火墙上打开其他所需端口。
现在让我们在登录时启用主目录创建:
#authconfig --enablemkhomedir --update
如果我们有一个工作服务堆栈,我们可以开始测试。让我们测试一下我们是否可以为admin用户获取Kerberos票证(在安装期间给管理员用户提供密码):
#kinit [email protected]的
密码
:
#klist
票证缓存:KEYRING:persistent:0:0
默认主体:[email protected]
有效的起始过期服务主体
2018-06-24 21.44.30 2018-06-25 21.44.28 krbtgt / [email protected]
主机注册到我们的新域中,默认规则授予对所有已注册主机的上述创建的管理员用户的ssh访问权限。让我们通过打开与localhost的ssh连接来测试这些规则是否按预期工作:
# ssh admin@localhost
Password:
Creating home directory for admin.
Last login: Sun Jun 24 21:41:57 2018 from localhost
$ pwd
/home/admin
$ exit
我们来检查整个软件堆栈的状态:
# ipactl status
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
ntpd Service: RUNNING
pki-tomcatd Service: RUNNING
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING
ipa: INFO: The ipactl command was successful
并且 - 使用之前获得的Kerberos票证 - 使用CLI工具询问有关管理员用户的信息:
# ipa user-find admin
--------------
1 user matched
--------------
User login: admin
Last name: Administrator
Home directory: /home/admin
Login shell: /bin/bash
Principal alias: [email protected]
UID: 630200000
GID: 630200000
Account disabled: False
----------------------------
Number of entries returned 1
----------------------------
最后,使用admin用户的凭据登录基于Web的管理页面(运行浏览器的计算机必须能够解析FreeIPA服务器的名称)。使用HTTPS,如果使用普通HTTP,服务器将重定向。当我们安装自签名根证书时,浏览器会向我们发出警告。
FreeIPA WUI的登录页面
登录后的默认页面显示我们的用户列表,现在只显示管理员用户。
登录后的默认页面是FreeIPA WUI中的用户列表
有了这个,我们完成了目标,我们有一个正在运行的FreeIPA服务器,随时可以填充用户,主机,证书和各种规则。
参考英文原文:https://linuxconfig.org/how-to-install-and-configure-freeipa-on-red-hat-linux