Portal:FreeIPA/Installation

跳转到:导航搜索

简介

警告:FreeIPA 4.1.4 在 2015 年下半年在 Tumbleweed 上可用,但由于缺乏维护,它不再分发中可用。本文仅作为历史参考。

目标

安装指南将引导您完成功能齐全且容错的 FreeIPA 集群以及 FreeIPA 客户端的设置。整个设置包括一个证书颁发机构、FreeIPA 服务器和副本、集中管理的自动挂载(用于主目录)和 sudo 规则、IPA 客户端机器和用户注册 - 所有这些都在“linuxdom.net”域下。

先决条件 - 软件

作为一个集成解决方案,FreeIPA 服务器和副本运行完整的 FreeIPA 服务器软件,并具有对以下软件的额外依赖性:

  • 389 目录服务器
  • Kerberos 服务器
  • Bind(DNS 服务器)
  • NTP(时间同步)

为了进行身份验证和访问,FreeIPA 客户端需要 Kerberos 和 FreeIPA 客户端、YaST 身份验证客户端模块以及 SSSD(系统安全服务守护程序)。软件安装过程将在后面的部分中详细说明。

先决条件 - 机器和网络

我们需要一个“linuxdom.net”域下的专用网络,以及专用网络中的三台机器:

  • IPA 服务器 - ipa-primary.linuxdom.net (192.168.122.33)
  • IPA 副本 - ipa-standby.linuxdom.net (192.168.122.27)
  • IPA 客户端 - pulautin.linuxdom.net (192.168.122.143)

IPA 服务器和副本必须使用静态 IP 地址,并且名称解析应正常工作,并能够在专用网络中将主机名解析为相应的 IP 地址。

如果名称解析不正常或 IPA 服务器(主服务器和备用服务器)无法解析为其各自的 IP 地址,则在安装过程中必须采取额外的预防措施和步骤。这些步骤在后面的部分中详细说明。

证书颁发机构

公钥基础设施是身份管理的一个组成部分,因此在安装 FreeIPA 之前,我们准备一个新的证书颁发机构以及必要的目录、Kerberos 和 Web 服务证书。

openSUSE 通过提供“YaST CA 管理模块”中的图形和分步界面,使 CA 管理变得简单,可以通过以下方式安装:

# zypper install yast2-ca-management

请注意,上游 FreeIPA 版本中捆绑的 Dogtag PKI 和 Certmonger 功能在此 openSUSE 端口中不可用。

接下来,对于我们的设置,我们将创建一个新的证书颁发机构,并为 IPA 服务器和副本创建两个证书。

创建一个新的根证书颁发机构

FreeIPA-CA-CreateCA.png

输入 CA 详细信息

启动 YaST CA 管理,单击“创建根 CA”,然后输入新证书颁发机构的名称、组织详细信息和位置详细信息。

完成后单击“下一步”。


FreeIPA-CA-Advanced.png

调整高级选项

输入一个强密码以保护对 CA 管理功能的访问。通过更改密钥长度来调整加密强度。输入所需的 CA 有效期。

重要提示! 由于一个错误,现在您必须输入“高级选项”并在“基本约束”中手动设置“CA:true”。完成操作后单击“确定”。


FreeIPA-CA-Export.png

将 CA 导出到文件

查看新的 CA 的详细信息并单击“创建”,现在新的 CA 准备就绪!

返回主屏幕,单击“输入 CA”以输入新的 CA,然后单击“高级...”和“导出到文件”以将 CA 证书以 PEM 格式保存到本地文件。


稍后,我们将把保存的 CA 证书分发到 IPA 服务器、IPA 副本和所有 IPA 客户端机器。

准备 IPA 服务器证书

每个目录服务、Kerberos 服务和 Web 服务都需要服务器证书才能正常运行。它们可以使用单独的证书,但是,在我们的设置中,我们将仅对所有三个服务使用一个证书。

FreeIPA-CA-CreateCertPrimary.png

输入证书详细信息

在 YaST CA 管理模块中,输入我们刚刚创建的 CA。

转到“证书”选项卡,然后单击“添加”,然后“添加服务器证书”。填写证书组织和位置详细信息,然后将服务器主机名作为通用名称输入。

通用名称必须与服务器主机名匹配


FreeIPA-CA-ExportCertPrimary.png

导出证书到文件

选择我们刚刚创建的服务器证书,然后单击“导出”,然后“导出到文件”。导出的文件必须使用 PKCS12 格式,并且不能包含 CA 链。输入一个强密码(PIN)以保护导出的文件。


将导出的 PKCS12 文件“ipa-primary.p12”复制到 IPA 服务器机器。

准备 IPA 副本证书

IPA 副本也使用目录、Kerberos 和 Web 服务的服务器证书。就像我们为 IPA 服务器创建证书一样,请记住将通用名称与主机名匹配。

FreeIPA-CA-CreateCertStandby.png

输入证书详细信息

在 YaST CA 管理模块中,输入 CA 并使用熟悉的过程创建服务器证书。请记住将通用名称与 IPA 副本的主机名匹配。


FreeIPA-CA-ExportCertStandby.png

导出证书到文件

导出 IPA 副本证书,也以 PKCS12 格式导出,且不包含 CA 链。


将导出的 PKCS12 文件“ipa-standby.p12”复制到 IPA 服务器和 IPA 副本机器。

通用 CA 和 LDAP 配置

在继续安装或配置 IPA 服务器、副本或客户端之前,涉及的机器必须信任我们刚刚创建的 CA。必须在所有将运行 IPA 服务器、副本或客户端的机器上执行此过程。

将导出的 CA 证书(LinuxDomCA.crt)复制到“/etc/pki/trust/anchors/”并运行每个机器上的以下命令:

# update-ca-certificates

编辑全局 LDAP 客户端配置 /etc/openldap/ldap.conf

TLS_CACERT  /etc/pki/trust/anchors/LinuxDomCA.crt
URI         ldap://ipa-primary.linuxdom.net ldap://ipa-standby.linuxdom.net
BASE        dc=linuxdom,dc=net

LDAP 参数“URI”和“BASE”配置为方便起见,以便默认情况下 LDAP 客户端将在 IPA 服务器的冗余集群上运行查询。

FreeIPA 服务器

FreeIPA 安装会将服务器转换为专门的 IPA 服务器。出于安全原因,请避免将服务器用于其他角色,例如 Web 托管或运行业务应用程序。对于一个相对较小的组织(少于 100 个用户),服务器需要大约 400MB 的内存。

安装所有 FreeIPA 包和依赖项将自动安装

# zypper install 'freeipa-*'

安装

在我们的设置中,预计服务器的主机名是“ipa-primary”,并且完全限定域名(FQDN)应在“linuxdom.net”域中,运行 hostname 命令进行验证

# hostname
ipa-primary

# hostname -f
ipa-primary.linuxdom.net

如果主机名或 FQDN 不正确,安装可能仍然会继续,但是名称必须手动更正并输入到 hosts 文件中

# hostnamectl set-hostname ipa-primary.linuxdom.net

# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:73:de:4e brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.33/24 brd 192.168.122.255 scope global ens3
       valid_lft forever preferred_lft forever

# echo '192.168.122.33 ipa-primary.linuxdom.net ipa-primary' >> /etc/hosts

hosts 文件中的条目必须先列出 FQDN,然后再列出主机名。

现在可以开始安装。调用 ipa-serverinstall 命令,然后将启动安装向导(CLI)。

# ipa-server-install \
  --ca-cert-file=LinuxDomCA.crt \
  --dirsrv-cert-file=ipa-primary.p12 --dirsrv-pin=p12_password \
  --http-cert-file=ipa-primary.p12 --http-pin=p12_password \
  --pkinit-cert-file=ipa-primary.p12 --pkinit-pin=p12_password

安装向导将询问有关网络环境、IPA 名称解析服务和 IPA 管理员密码的几个问题。仔细回答问题,最终安装将需要几分钟才能完成。

我们 linuxdom.net 安装的完整对话和输出在此处提供:ipa-server-install Example Output

验证

服务器安装成功完成后,我们可以通过在 IPA 服务器上运行以下命令来验证 FreeIPA 是否正常运行

# kinit admin
Password for admin@LINUXDOM.NET: <enter IPA Admin password>

# klist
... Default principal: admin@LINUXDOM.NET ...

# klist -k
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   2 host/ipa-primary.linuxdom.net@LINUXDOM.NET
...

# ipa user-show admin
  User login: admin
  Last name: Administrator
  Home directory: /home/admin
  Login shell: /bin/bash
  UID: 1435400000
  GID: 1435400000
  Account disabled: False
  Password: True
  Member of groups: admins, trust admins
  Kerberos keys available: True

# ipa host-show ipa-primary
  Host name: ipa-primary.linuxdom.net
  Principal name: host/ipa-primary.linuxdom.net@LINUXDOM.NET
  Password: False
  Keytab: True
  Managed by: ipa-primary.linuxdom.net

恭喜,您的 IPA 服务器现在正在运行并正常运行!

为副本准备

一个 IPA 服务器是一个单点故障;为了减轻单个 IPA 服务器引起的潜在停机时间,我们将很快安装一个 IPA 副本。在继续安装 IPA 副本之前,必须准备服务器并将“副本信息”文件传递给副本机器,方法是运行以下命令:

# ipa-replica-prepare ipa-standby.linuxdom.net \
  --http-cert-file ipa-standby.p12 \
  --dirsrv-cert-file ipa-standby.p12 \
  --ip-address 192.168.122.27

ipa-replica-prepare 向导(CLI)将要求输入 IPA 目录管理器密码以及解锁文件 ipa-standby.p12 的密码。最终,将生成一个名为“replica-info-ipa-standby.linuxdom.net.gpg”的文件。

将文件复制到 IPA 副本机器,准备工作完成。我们 linuxdom.net 副本准备的完整对话和输出在此处提供:ipa-replica-prepare Example Output

FreeIPA 副本

设置后,IPA 副本成为服务器的完整副本,共享有关用户、机器、策略等的相同内部信息。所有 IPA 副本都是“主”服务器,IPA 客户端可以联系任何可用的 IPA 服务器或副本。通过引入 IPA 副本,消除了 IPA 服务器的单点故障。

IPA 副本的软件、网络和硬件要求与普通 IPA 服务器相同。出于安全原因,请避免将副本用于其他角色,例如 Web 托管或运行业务应用程序。

在上一节中,我们准备了 IPA 服务器以进行副本设置,很快我们将安装 IPA 副本。首先安装软件包,IPA 副本使用所有 FreeIPA 软件包和依赖项

# zypper install 'freeipa-*'

安装

首先,请确保已在副本机器上执行 CA 和 LDAP 配置,如通用 CA 和 LDAP 配置中所述,否则副本安装肯定会失败。

就像 IPA 服务器一样,副本也需要正确配置主机名和 FQDN。用于验证 IPA 服务器上的主机名的技术适用于此处。

主机名验证后,可以开始安装副本。调用 ipa-replica-install 命令,然后将启动安装向导(CLI)。

# ipa-replica-install \
  --setup-dns --forwarder 8.8.8.8 \
  --skip-conncheck \
  replica-info-ipa-standby.linuxdom.net.gpg

在我们的设置中,启用了 DNS 服务,以便为 IPA 客户端提供冗余名称解析服务器。我们 linuxdom.net 副本安装的完整对话和输出在此处提供:ipa-replica-install Example Output

请注意,“--skip-conncheck”禁用连接检查,该检查测试副本与已复制服务器之间的 Kerberos、LDAP 和 SSH 连接。除非已配置已复制的服务器作为其自身的客户端,否则 SSH 连接测试将失败;由于我们不打算这样做,因此必须跳过连接检查。

验证

副本安装成功完成后,我们可以通过在 IPA 副本上运行以下命令来验证 FreeIPA 是否正常运行

# kinit admin
Password for admin@LINUXDOM.NET: <enter IPA admin password>

# klist
... Default principal: admin@LINUXDOM.NET ...

# klist -k
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   2 host/ipa-standby.linuxdom.net@LINUXDOM.NET
...

# ipa host-show ipa-standby
  Host name: ipa-standby.linuxdom.net
  Principal name: host/ipa-standby.linuxdom.net@LINUXDOM.NET
  Password: False
  Keytab: True
  Managed by: ipa-standby.linuxdom.net

# ipa user-show admin
  User login: admin
  Last name: Administrator
  Home directory: /home/admin
  Login shell: /bin/bash
  UID: 1435400000
  GID: 1435400000
  Account disabled: False
  Password: True
  Member of groups: admins, trust admins
  Kerberos keys available: True

管理

FreeIPA 提供了一个 Web UI 应用程序来管理所有实体和策略。Web UI 应用程序在每个服务器/副本上运行;管理员可以通过用户名/密码组合远程登录到 Web 应用程序。本地在每个服务器/副本上提供了一个命令行工具“ipa”,不幸的是,它不能用于管理此 openSUSE 端口中的远程服务器。

FreeIPA-Admin-Login.png

启动您最喜欢的浏览器并导航到任何 IPA 服务器/副本上的 HTTPS,输入 IPA 管理员凭据,然后浏览!


管理用户和主机

FreeIPA-Admin-NewUser.png

创建演示用户“matti”

导航到“身份”, “用户”,然后单击“添加”。

填写用户详细信息并输入初始密码。作为 IPA 管理员,您可以随时编辑用户详细信息和重置密码。


FreeIPA-Admin-NewHost.png

创建演示主机“pulautin”

导航到“身份”, “主机”,然后单击“添加”。

填写新机器的主机名和 IP 地址。主机名将立即通过 IPA DNS 服务解析。


管理自动挂载

我们的设置将自动将 IPA 客户端的 /home 目录挂载到存储服务器(在本例中为 ipa-primary)上的 NFS 共享。

FreeIPA-Admin-NewMount.png

为 /home 设置自动挂载

导航到“网络服务”, “自动挂载”。创建一个新的位置(“officehome”),并在新的自动挂载密钥中输入 NFS 位置。

如果您的 NFS 服务器已启用 Kerberos,请记住使用以下内容为“挂载信息”添加前缀:

-fstype=nfs4 -sec=krb5


管理 sudo

我们将赋予用户 matti 超级权限,授权他以任何身份在任何主机上运行任何命令。

FreeIPA-Admin-NewSudo.png

输入 sudo 规则详情

导航到“策略”、“Sudo”,然后点击“添加”。填写 sudo 规则表单。


命令行工具

几乎所有的管理任务都可以使用命令行工具“ipa”来执行,该工具在每个服务器/副本上本地可用。

在运行该工具之前,您必须使用具有 IPA 管理权限的用户获取 Kerberos 票据

# kinit admin
Password for admin@LINUXDOM.NET: <enter IPA admin password>

# klist
... Default principal: admin@LINUXDOM.NET ...

# ipa host-show ipa-primary
  Host name: ipa-primary.linuxdom.net
  Principal name: host/ipa-primary.linuxdom.net@LINUXDOM.NET
  Password: False
  Keytab: True
  Managed by: ipa-primary.linuxdom.net

有关更多信息和示例,请参阅手册页

# man ipa

在这个 openSUSE 移植版本中,“ipa”不能用于管理远程 IPA 服务器/副本。

FreeIPA 客户端

要使机器能够使用 IPA,系统管理员必须处理机器的注册以及设置身份验证客户端 - 该过程涉及使用 IPA 命令行工具和 YaST 身份验证客户端模块。通过以下命令安装工具和所有必要的依赖项:

# zypper install freeipa-client yast2-auth-client sssd sssd-ipa krb5-client openldap2-client

请注意,“ipa-client-install”是上游 FreeIPA 项目中用于 IPA 客户端配置的实用程序,在本 openSUSE 移植版本中不可用。

请记住,所有 IPA 客户端(以及服务器、副本)必须使用适当的 CA 和 LDAP 配置。如果客户端机器上尚未完成此操作,请重新访问 Common CA and LDAP configuration(通用 CA 和 LDAP 配置)。

注册新机器

私有网络中的 DHCP 服务器应配置为正确匹配 IPA 域名(linuxdom.net)并通告 IPA 服务器(和副本)作为 DNS 服务器。如果客户端机器上需要手动配置,请在 /etc/resolv.conf 中输入域名和名称服务器地址。

search linuxdom.net
nameserver 192.168.122.33 # ipa-primary.linuxdom.net
nameserver 192.168.122.27 # ipa-standby.linuxdom.net

通过编辑 /etc/krb5.conf 配置 Kerberos 客户端以在 IPA 领域中工作

[libdefaults]
default_realm = LINUXDOM.NET
forwardable = true

[realms]
LINUXDOM.NET = {
  kdc = ipa-primary.linuxdom.net
  kdc = ipa-standby.linuxdom.net
  admin_server = ipa-primary.linuxdom.net
}

[domain_realm]
linuxdom.net = LINUXDOM.NET
.linuxdom.net = LINUXDOM.NET

参数“forwardable”使初始 Kerberos 票据的创建默认情况下可转发。除非显式将该参数设置为 true,否则 IPA 客户端自助单点登录将无法工作。

要完成主机注册过程,请使用 IPA 管理员的权限或根据 IPA 中定义的策略明确允许检索 keytab 的用户检索 IPA 客户端机器的 keytab。

# kinit admin
Password for admin@LINUXDOM.NET: <enter password>

# ipa-getkeytab -s ipa-primary.linuxdom.net -p host/pulautin.linuxdom.net -k /etc/krb5.keytab
Keytab successfully retrieved and stored in: /etc/krb5.keytab

如果您决定使用涉及 Kerberos 启用的 NFSv4 NFS 服务器的 IPA Automount 功能,请记住为注册的主机检索 Kerberos keytab,例如

# ipa-getkeytab -s ipa-primary.linuxdom.net -p nfs/pulautin.linuxdom.net -k /etc/krb5.keytab
Keytab successfully retrieved and stored in: /etc/krb5.keytab

通过运行 klist 验证 keytab 是否正确

# klist -k
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   1 host/pulautin.linuxdom.net@LINUXDOM.NET
...

使用 Yast 配置身份验证

IPA 客户端配置的其余部分使用 YaST 身份验证客户端模块完成。

FreeIPA-Client-Yast1.png

启用客户端并加入域

启动身份验证客户端模块。

勾选“登录时创建主目录”和“启用 SSSD 守护程序”。

点击“新建服务/域”,选择“服务”,并启用所有这些服务:autofs、sudo、nss、pam。

点击“新建服务/域”,选择“域”,并输入 IPA 域名。选择“ipa”作为身份验证提供程序。

点击“确定”以进入下一个对话框。


FreeIPA-Client-Yast2.png

输入 IPA 服务器地址

输入 IPA 服务器(和副本)主机名或 IP 地址。


FreeIPA-Client-Yast3.png

配置 automount 和 sudo

之前在 IPA 管理 Web 应用程序上,我们创建了一个名为“officelocation”的 Automount 服务,该服务自动将 /home 挂载到 NFS 共享;指定 IPA 作为“autofs_provider”,并输入“officehome”作为“ipa_automount_location”。

指定 IPA 作为“sudo_provider”以使我们的 IPA sudo 规则生效。

完成操作后,点击“确定”。


Sudo 和名称服务切换

完成 YaST 身份验证客户端配置后,IPA 客户端现在接受 IPA sudo 规则和本地 /etc/sudoers 配置 - 并且本地配置优先。这是为了安全起见,以确保您不会因为 IPA 策略中的错误而锁定 sudo 访问权限。

请彻底测试 IPA Sudo 策略,然后编辑 /etc/nsswitch.conf,找到该行

sudoers: files sss

并将其替换为

sudoers: sss

本地 sudo 配置将不再生效。从现在开始,只有 IPA sudo 规则适用。

体验桌面和 IPA 自助服务

重新启动客户端机器并使用 IPA 用户的凭据登录到您最喜欢的桌面。

FreeIPA-Client-DesktopLogin.png

以 IPA 用户身份登录桌面

输入 IPA 用户名和初始密码。

登录后,系统会立即提示您更改初始密码。


FreeIPA-Client-FirefoxConf.png

(可选) 配置 Firefox 以进行单点登录

如果您希望启用 IPA 用户自助服务的单点登录,请打开 Firefox 并导航到“about:config”。

搜索名为“negotiate”的参数,并将 IPA 域名输入到参数“delegation-uris”和“trusted-uris”中。


FreeIPA-Client-SelfService.png

用户自助服务

启动浏览器并导航到任何 IPA 服务器/副本的 HTTPS。您会自动登录并能够更改个人详细信息,例如电话号码和显示名称。

请记住尝试您的 IPA sudo 策略。