使用 RHEL 9 web 控制台管理系统
具有基于 Web 的图形界面服务器管理
摘要
对红帽文档提供反馈
我们感谢您对我们文档的反馈。让我们了解如何改进它。
通过 Jira 提交反馈(需要帐户)
- 登录到 Jira 网站。
- 点顶部导航栏中的 Create
- 在 Summary 字段中输入描述性标题。
- 在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 点对话框底部的 Create。
第 1 章 使用 RHEL web 控制台入门
了解如何安装 Red Hat Enterprise Linux 9 web 控制台、如何通过其方便的图形界面 添加和管理远程主机,以及如何监控 web 控制台管理的系统。
1.1. 什么是 RHEL web 控制台
RHEL web 控制台是一个基于 web 的界面,用于管理和监控您的本地系统,以及您网络环境中的 Linux 服务器。

RHEL web 控制台允许您执行广泛的管理任务,包括:
- 管理服务
- 管理用户帐户
- 管理及监控系统服务
- 配置网络接口和防火墙
- 检查系统日志
- 管理虚拟机
- 创建诊断报告
- 设置内核转储配置
- 配置 SELinux
- 更新软件
- 管理系统订阅
RHEL web 控制台使用与在终端中使用的同样的系统 API,终端中执行的操作会立即反映在 RHEL web 控制台中。
您可以监控网络环境中的系统日志及其性能,以图形的形式显示。另外,您可以在 web 控制台中直接或通过终端更改设置。
1.2. 安装并启用 Web 控制台
要访问 RHEL web 控制台,请首先启用 cockpit.socket
服务。
在许多安装变体中,Red Hat Enterprise Linux 9 默认包括 web 控制台。如果您的系统每以包括,请在启用 cockpit.socket
服务前安装 cockpit
软件包。
流程
如果在安装变体中没有默认安装 Web 控制台,请手动安装
cockpit
软件包:dnf install cockpit
# dnf install cockpit
Copy to Clipboard Copied! 启用并启动
cockpit.socket
服务,该服务运行一个 Web 服务器:systemctl enable --now cockpit.socket
# systemctl enable --now cockpit.socket
Copy to Clipboard Copied! 如果在安装变体中没有默认安装 Web 控制台,且您使用自定义防火墙配置集,请将
cockpit
服务添加到firewalld
中,以在防火墙中打开端口 9090:firewall-cmd --add-service=cockpit --permanent firewall-cmd --reload
# firewall-cmd --add-service=cockpit --permanent # firewall-cmd --reload
Copy to Clipboard Copied!
验证
- 要验证之前的安装和配置,请打开 web 控制台。
1.3. 登录到 Web 控制台
当 cockpit.socket
服务正在运行并且相应的防火墙端口打开时,您可以在浏览器中第一次登录到 Web 控制台。
先决条件
使用以下浏览器之一打开 Web 控制台:
- Mozilla Firefox 52 及更新的版本
- Google Chrome 57 及更新的版本
- Microsoft Edge 16 及更新的版本
系统用户帐户凭证
RHEL web 控制台使用位于
/etc/pam.d/cockpit
的特定可插拔验证模块(PAM)堆栈。默认配置允许使用系统上任何本地帐户的用户名和密码登录。- 在防火墙中端口 9090 已打开。
流程
在网页浏览器中输入以下地址来访问 Web 控制台:
https://localhost:9090
https://localhost:9090
Copy to Clipboard Copied! 注意这为您提供了本地计算机上的 web 控制台登录。如果要登录到远程系统的 Web 控制台,请参阅 第 1.5 节 “从远程机器连接至 web 控制台”
如果您使用自签名证书,浏览器会显示一个警告。检查证书,并接受安全例外以进行登录。
控制台从
/etc/cockpit/ws-certs.d
目录中加载证书,并使用带有.cert
扩展名的最后一个文件(按字母排序)。要避免接受安全例外的操作,安装由证书颁发机构(CA)签名的证书。- 在登录屏幕中输入您的系统用户名和密码。
- 点 Log In。
成功验证后,会打开 RHEL web 控制台界面。
要在有限和管理访问权限间进行切换,请在 web 控制台页面的顶部面板中点 Administrative access 或 Limited access。您必须提供用户密码以获取管理访问权限。
1.4. 在 web 控制台中禁用基本身份验证
您可以通过修改 cockpit.conf
文件来修改身份验证方案的行为。使用 none
操作来禁用身份验证方案,只允许通过 GSSAPI 和表单进行身份验证。
先决条件
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
-
您有
root
特权或权限来使用sudo
输入管理命令的命令。
流程
在您首选的文本编辑器中,在
/etc/cockpit/
目录中打开或创建cockpit.conf
文件,例如:vi cockpit.conf
# vi cockpit.conf
Copy to Clipboard Copied! 添加以下文本:
[basic] action = none
[basic] action = none
Copy to Clipboard Copied! - 保存这个文件。
重启 Web 控制台以使更改生效。
systemctl try-restart cockpit
# systemctl try-restart cockpit
Copy to Clipboard Copied!
1.5. 从远程机器连接至 web 控制台
您可以从任何客户端操作系统以及手机或平板电脑连接到 Web 控制台界面。
先决条件
具有支持的互联网浏览器的设备,例如:
- Mozilla Firefox 52 及更新的版本
- Google Chrome 57 及更新的版本
- Microsoft Edge 16 及更新的版本
您要使用已安装的并可访问的 web 控制台访问的 RHEL 9。
具体步骤请参阅安装并启用 Web 控制台。
流程
- 打开浏览器。
使用以下格式输入远程服务器地址:
使用服务器主机名:
https://<server.hostname.example.com>:<port-number>
https://<server.hostname.example.com>:<port-number>
Copy to Clipboard Copied! 例如:
https://example.com:9090
https://example.com:9090
Copy to Clipboard Copied! 使用服务器 IP 地址:
https://<server.IP_address>:<port-number>
https://<server.IP_address>:<port-number>
Copy to Clipboard Copied! 例如:
https://192.0.2.2:9090
https://192.0.2.2:9090
Copy to Clipboard Copied!
- 登录界面打开后,使用 RHEL 系统凭证登录。
1.6. 以 root 用户身份从远程机器连接到 web 控制台
在 RHEL 9.2 或更高版本的新安装中,出于安全原因,RHEL web 控制台默认不允许 root 帐户登录。您可以在 /etc/cockpit/disallowed-users
文件中允许 root
登录。
先决条件
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
在您首选的文本编辑器中打开
/etc/cockpit/
目录中的disallowed-users
文件,例如:vi /etc/cockpit/disallowed-users
# vi /etc/cockpit/disallowed-users
Copy to Clipboard Copied! 编辑文件并删除
root
用户的行:List of users which are not allowed to login to Cockpit root
# List of users which are not allowed to login to Cockpit root
Copy to Clipboard Copied! - 保存更改并退出编辑器。
验证
以
root
用户身份登录到 Web 控制台。详情请参阅 Web 控制台的日志记录。
1.7. 使用一次性密码登录到 web 控制台
如果您的系统是启用了一次性密码(OTP)配置的 Identity Management(IdM)域的一部分,您可以使用 OTP 登录到 RHEL web 控制台。
只有在系统是启用了 OTP 配置的 Identity Management(IdM)域的一部分时,才可以使用一次性密码登录。
先决条件
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
- 带有启用 OTP 配置的 Identity Management 服务器。
- 配置的硬件或软件设备生成 OTP 令牌。
流程
在浏览器中打开 RHEL web 控制台:
-
本地:
https://localhost:PORT_NUMBER
-
远程使用服务器主机名:
https://example.com:PORT_NUMBER
远程使用服务器 IP 地址:
https://EXAMPLE.SERVER.IP.ADDR:PORT_NUMBER
如果您使用自签名证书,浏览器会发出警告。检查证书并接受安全例外以进行登录。
控制台从
/etc/cockpit/ws-certs.d
目录中加载证书,并使用带有.cert
扩展名的最后一个文件(按字母排序)。要避免接受安全例外的操作,安装由证书颁发机构(CA)签名的证书。
-
本地:
- 登录窗口将打开。在登录窗口中输入您的系统用户名和密码。
- 在您的设备中生成一次性密码。
- 在确认您的密码后,在 web 控制台界面中出现的新字段输入一次性密码。
- 点登录。
- 成功登录会进入 web 控制台界面的 Overview 页面。
1.8. 在登录页面中添加标题
您可以将 Web 控制台设置为在登录屏幕上显示横幅文件的内容。
先决条件
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
-
您有
root
特权或权限来使用sudo
输入管理命令的命令。
流程
在您首选的文本编辑器中打开
/etc/issue.cockpit
文件:vi /etc/issue.cockpit
# vi /etc/issue.cockpit
Copy to Clipboard Copied! 将您要显示的内容作为横幅添加到文件中,例如:
This is an example banner for the RHEL web console login page.
This is an example banner for the RHEL web console login page.
Copy to Clipboard Copied! 您不能在文件中包含任何宏,但您可以使用换行符和 ASCII 工件。
- 保存这个文件。
在您首选的文本编辑器中打开
/etc/cockpit/
目录中的cockpit.conf
文件,例如:vi /etc/cockpit/cockpit.conf
# vi /etc/cockpit/cockpit.conf
Copy to Clipboard Copied! 在文件中添加以下文本:
[Session] Banner=/etc/issue.cockpit
[Session] Banner=/etc/issue.cockpit
Copy to Clipboard Copied! - 保存这个文件。
重启 Web 控制台以使更改生效。
systemctl try-restart cockpit
# systemctl try-restart cockpit
Copy to Clipboard Copied!
验证
再次打开 Web 控制台登录屏幕,以验证横幅现在是否可见:
1.9. 在 web 控制台中配置自动闲置锁定
您可以通过 web 控制台界面启用自动空闲锁定,并为您的系统设置空闲超时。
先决条件
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
-
您有
root
特权或权限来使用sudo
输入管理命令的命令。
流程
在您首选的文本编辑器中打开
/etc/cockpit/
目录中的cockpit.conf
文件,例如:vi /etc/cockpit/cockpit.conf
# vi /etc/cockpit/cockpit.conf
Copy to Clipboard Copied! 在文件中添加以下文本:
[Session] IdleTimeout=<X>
[Session] IdleTimeout=<X>
Copy to Clipboard Copied! 将 <X> 替换为您选择的时间段数(以分钟为单位)。
- 保存该文件。
重启 Web 控制台以使更改生效。
systemctl try-restart cockpit
# systemctl try-restart cockpit
Copy to Clipboard Copied!
验证
- 检查在设定的时间后,用户是否会退出系统。
1.10. 更改 Web 控制台侦听端口
默认情况下,RHEL web 控制台通过 TCP 端口 9090 进行通信。您可以通过覆盖默认套接字设置来更改端口号。
先决条件
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
-
您有
root
特权或权限来使用sudo
输入管理命令的命令。 -
firewalld
服务在运行。
流程
选择一个未占用的端口,例如 <4488/tcp>,并指示 SELinux 允许
cockpit
服务绑定到该端口:semanage port -a -t websm_port_t -p tcp <4488>
# semanage port -a -t websm_port_t -p tcp <4488>
Copy to Clipboard Copied! 请注意,一个端口只能供一个服务使用,因此试图使用一个已有的端口意味着
ValueError:Port already defined
错误信息。打开新端口,并在防火墙中关闭之前的端口:
firewall-cmd --service cockpit --permanent --add-port=<4488>/tcp firewall-cmd --service cockpit --permanent --remove-port=9090/tcp
# firewall-cmd --service cockpit --permanent --add-port=<4488>/tcp # firewall-cmd --service cockpit --permanent --remove-port=9090/tcp
Copy to Clipboard Copied! 为
cockpit.socket
服务创建一个覆盖文件:systemctl edit cockpit.socket
# systemctl edit cockpit.socket
Copy to Clipboard Copied! 在以下编辑器屏幕中,其打开了
/etc/systemd/system/cockpit.socket.d/
目录中的一个空override.conf
文件,通过添加以下行,将 web 控制台的默认端口从 9090 改为之前选择的号:[Socket] ListenStream= ListenStream=<4488>
[Socket] ListenStream= ListenStream=<4488>
Copy to Clipboard Copied! 请注意,第一个具有空值的
ListenStream=
指令是故意的。您可以在单个套接字单元中声明多个ListenStream
指令,插入文件中的空值会重置列表,并从原始单元中禁用默认端口 9090。重要在以
# Anything between here
和# Lines below this
开头的行之间插入之前的代码段。否则,系统会丢弃您的更改。- 按 + 和 保存更改。按 + 退出编辑器。
重新载入更改的配置:
systemctl daemon-reload
# systemctl daemon-reload
Copy to Clipboard Copied! 检查您的配置是否正常工作:
systemctl show cockpit.socket -p Listen
# systemctl show cockpit.socket -p Listen Listen=[::]:4488 (Stream)
Copy to Clipboard Copied! 重启
cockpit.socket
:systemctl restart cockpit.socket
# systemctl restart cockpit.socket
Copy to Clipboard Copied!
验证
打开 Web 浏览器,并在更新的端口上访问 Web 控制台,例如:
https://machine1.example.com:4488
https://machine1.example.com:4488
Copy to Clipboard Copied!
第 2 章 使用 RHEL 系统角色安装和配置 web 控制台
使用 cockpit
RHEL 系统角色,您可以在多个 RHEL 系统上自动部署和启用 Web 控制台。
2.1. 使用 cockpit
RHEL 系统角色安装 Web 控制台
您可以使用 cockpit
系统角色在多个系统上自动安装和启用 RHEL web 控制台。
在本例中,您可以使用 cockpit
系统角色来:
- 安装 RHEL web 控制台。
-
允许
firewalld
和selinux
系统角色配置系统,以打开新端口。 -
将 web 控制台设置为使用
ipa
trusted 证书颁发机构的证书,而不使用自签名证书。
您不必在 playbook 中调用 firewall
或 certificate
系统角色来管理防火墙或创建证书。cockpit
系统角色根据需要自动调用它们。
先决条件
- 您已准备好控制节点和受管节点
- 以可在受管主机上运行 playbook 的用户登录到控制节点。
-
用于连接到受管节点的帐户具有
sudo
权限。
流程
创建一个包含以下内容的 playbook 文件,如
~/playbook.yml
:--- - name: Manage the RHEL web console hosts: managed-node-01.example.com tasks: - name: Install RHEL web console ansible.builtin.include_role: name: redhat.rhel_system_roles.cockpit vars: cockpit_packages: default cockpit_manage_selinux: true cockpit_manage_firewall: true cockpit_certificates: - name: /etc/cockpit/ws-certs.d/01-certificate dns: ['localhost', 'www.example.com'] ca: ipa
--- - name: Manage the RHEL web console hosts: managed-node-01.example.com tasks: - name: Install RHEL web console ansible.builtin.include_role: name: redhat.rhel_system_roles.cockpit vars: cockpit_packages: default cockpit_manage_selinux: true cockpit_manage_firewall: true cockpit_certificates: - name: /etc/cockpit/ws-certs.d/01-certificate dns: ['localhost', 'www.example.com'] ca: ipa
Copy to Clipboard Copied! 示例 playbook 中指定的设置包括以下内容:
cockpit_manage_selinux: true
-
允许使用
selinux
系统角色配置 SELinux,以对websm_port_t
SELinux 类型设置正确的端口权限。 cockpit_manage_firewall: true
-
允许
cockpit
系统角色使用firewalld
系统角色添加端口。 cockpit_certificates: <YAML_dictionary>
默认情况下,RHEL web 控制台使用自签名证书。或者,您可以向 playbook 中添加
cockpit_certificates
变量,并将角色配置为从 IdM 证书颁发机构(CA)请求证书,或使用受管节点上可用的现有证书和私钥。有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.cockpit/README.md
文件。
验证 playbook 语法:
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.yml
Copy to Clipboard Copied! 请注意,这个命令只验证语法,不会防止错误但有效的配置。
运行 playbook:
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.yml
Copy to Clipboard Copied!
第 3 章 安装 Web 控制台附加组件,并创建自定义页面
根据您要如何使用 Red Hat Enterprise Linux 系统,您可以向 web 控制台中添加额外的 可用 应用程序,或根据您的用例创建自定义页面。
3.1. RHEL web 控制台的附加组件
虽然 cockpit
软件包默认是 Red Hat Enterprise Linux 的一部分,但您可以使用以下命令根据需要安装附加应用程序:
dnf install <add-on>
# dnf install <add-on>
在上面的命令中,将 <add-on> 替换为 RHEL web 控制台的可用附加组件应用程序列表中的软件包名称。
功能名称 | 软件包名称 | 使用 |
---|---|---|
Composer |
| 构建自定义操作系统镜像 |
文件管理器 |
| 在标准 web-console 界面中管理文件和目录 |
Machines |
|
管理 |
PackageKit |
| 软件更新和应用程序安装(通常会被默认安装) |
PCP |
| 具有持久性和更精细的性能数据(根据 UI 的要求安装) |
Podman |
| |
Session Recording |
| 记录和管理用户会话 |
存储 |
|
通过 |
3.2. 在 web 控制台中创建新页面
如果要向 Red Hat Enterprise Linux web 控制台中添加自定义功能,您必须为运行所需功能的页面添加包含 HTML 和 JavaScript 文件的软件包目录。
有关添加自定义页面的详细信息,请参阅 Cockpit Project 网站上的 为 Cockpit 用户界面创建插件。
3.3. 在 web 控制台中覆盖清单设置
您可以为系统的特定用户和所有用户修改 Web 控制台的菜单。在 cockpit
项目中,软件包名称是一个目录名称。软件包包含 manifest.json
文件以及其他文件。默认设置存在于 manifest.json
文件中。您可以通过在特定位置为指定的用户创建一个 <package-name>.override.json
文件来覆盖默认的 cockpit
菜单设置。
先决条件
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
在您选择的文本编辑器中覆盖
<systemd>.override.json
文件中的清单设置,例如:要为所有用户编辑,请输入:
vi /etc/cockpit/<systemd>.override.json
# vi /etc/cockpit/<systemd>.override.json
Copy to Clipboard Copied! 要为单个用户编辑,请输入:
vi ~/.config/cockpit/<systemd>.override.json
# vi ~/.config/cockpit/<systemd>.override.json
Copy to Clipboard Copied!
使用以下详情编辑所需的文件:
{ "menu": { "services": null, "logs": { "order": -1 } } }
{ "menu": { "services": null, "logs": { "order": -1 } } }
Copy to Clipboard Copied! -
null
值隐藏了 services 选项卡 -
-1
值将 logs 选项卡移到第一个位置。
-
重启
cockpit
服务:systemctl restart cockpit.service
# systemctl restart cockpit.service
Copy to Clipboard Copied!
第 4 章 在 web 控制台中管理软件更新
了解如何在 RHEL 9 web 控制台中管理软件更新,以及如何自动化它们的方法。
web 控制台中的软件更新模块基于 dnf
工具。有关使用 dnf
更新软件的更多信息,请参阅更新软件包部分。
4.1. 在 web 控制台中管理手动软件更新
您可以使用 Web 控制台手动更新软件。
先决条件
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
登录到 RHEL 9 web 控制台。
详情请参阅 登录到 web 控制台。
点软件更新。
可用更新列表在 24 小时后自动刷新。要触发刷新,请点
按钮。应用更新。您可以在更新运行时监控更新日志。
- 要安装所有可用更新,请点 按钮。
- 如果您有可用的安全更新,请点击 按钮单独安装它们。
-
如果您有
kpatch
更新可用,请点 按钮单独安装它们。
可选:您可以选择 Reboot after completion 来自动重启您的系统。
如果执行此步骤,您可以跳过这个过程的剩余步骤。
- 在系统应用更新后,您会看到重启系统的建议。如果更新包括一个新内核或您不想单独重启的系统服务,请重启系统。
点 Ignore 以取消重启,或选择 Restart Now 重启系统。
系统重启后,登录到 web 控制台,并进入 Software Updates 页面,以验证更新是否成功。
4.2. 在 web 控制台中管理自动更新
在 web 控制台中,您可以选择应用所有更新,或者安全更新,以及管理自动更新的定期和时间。
先决条件
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
登录到 RHEL 9 web 控制台。
详情请参阅 登录到 web 控制台。
- 点软件更新。
- 在 Settings 表中,点 按钮。
- 挑选一种自动更新类型。您可以选择 Security updates only 或 All updates。
- 要修改自动更新的日期,在下拉菜单中点 every day 并选择特定日期。
- 要修改自动更新的时间,请点击 6:00 字段并选择或输入特定时间。
- 如果要禁用自动软件更新,请选择 No update 类型。
4.3. 在 web 控制台中应用软件更新后管理按需重启
智能重启功能会通知用户是否在应用软件更新后重新引导整个系统,或者是否足以重新启动某些服务。
先决条件
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
登录到 RHEL 9 web 控制台。
详情请参阅 登录到 web 控制台。
- 点软件更新。
- 对您的系统应用更新。
- 成功更新后,点 Reboot system…, restart services…或 Ignore
如果您决定忽略,您可以通过执行以下操作之一来返回到重启或重启菜单:
重新引导:
- 点 Software Updates 页面的 Status 字段中的 按钮。
- 可选:向登录的用户写一条消息。
- 从 Delay 下拉菜单中选择一个延迟。
- 点Reboot。
重启服务:
点 Software Updates 页面的 Status 字段中的 按钮。
您将看到需要重启的所有服务的列表。
点 重启服务。
根据您的选择,系统将重新启动,或者您的服务将重启。
4.4. 在 web 控制台中使用内核实时补丁应用补丁
您可以在 RHEL web 控制台中配置 kpatch
框架,该框架在不强制重启的情况下应用内核安全补丁。
先决条件
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
登录到 RHEL 9 web 控制台。
详情请参阅 登录到 web 控制台。
- 点软件更新。
检查内核补丁设置的状态。
如果没有安装补丁,点
。要启用内核补丁,请点击
。- 选中应用内核补丁的复选框。
选择您是否想只为当前和将来的内核或当前内核应用补丁。如果您决定订阅,以为将来的内核应用补丁,系统也会为即将发布的内核版本应用补丁。
- 点 。
验证
检查内核补丁在 Software updates 项的 Settings 表中为 Enabled。
第 5 章 在 web 控制台中管理订阅
您可以在 Red Hat Enterprise Linux 9 web 控制台中管理您的红帽产品订阅。
先决条件
- 您的 红帽客户门户网站 或订阅激活码。
5.1. Web 控制台中的订阅管理
RHEL 9 web 控制台为使用在本地系统中安装的红帽订阅管理器提供了一个界面。
订阅管理器连接到红帽客户门户网站,并验证是否可用:
- 活跃的订阅
- 过期的订阅
- 续订的订阅
如果要续订订阅或在红帽客户门户网站中获得不同的订阅,您不必手动更新订阅管理器数据。
订阅管理器会自动将数据与红帽客户门户网站同步。
5.2. 使用 Web 控制台注册系统
订阅覆盖了在 Red Hat Enterprise Linux 中安装的产品,包括操作系统本身。如果您还没有注册系统,则无法访问 RHEL 软件仓库。您无法安装软件更新,如安全、错误修复。即使您有自助支持订阅,它也授予对知识库的访问权限,而更多资源在缺少订阅时仍不可用。您可以使用 Red Hat web 控制台中的帐户凭证注册新安装的 Red Hat Enterprise Linux。
先决条件
- 您有一个有效的 RHEL 系统订阅。
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
- 在浏览器中打开 https://<ip_address_or_hostname>:9090,并登录到 web 控制台。
- 在 Overview 页面的 Health 字段中,点击 Not registered 警告,或者点击主菜单中的 Subscriptions 来进入页面。
- 在 Overview 字段中,点 。
在 注册系统 对话框中,选择注册方法。
可选:输入您的机构名称或 ID。如果您的帐户属于红帽客户门户网站中的多个机构,您必须添加机构名称或 ID。要获得机构 ID,请在红帽与您的大客户经理联系。
- 如果您不想将您的系统连接到 Red Hat Insights,请清除 Insights 复选框。
- 点 。
验证
- 在混合云控制台中 查看您的订阅详情。
5.3. 在 web 控制台中使用激活码注册订阅
您可以在 RHEL web 控制台中使用激活码注册新安装的 Red Hat Enterprise Linux。
先决条件
- 您的红帽产品订阅的激活码。
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
登录到 RHEL 9 web 控制台。
详情请参阅 登录到 web 控制台。
在 Overview 页面的 Health 字段中,点击 Not registered 警告,或者点击主菜单中的 Subscriptions 来进入到订阅信息页面。
.
- 在 Overview 字段中,点击 。
在 Register system 对话框中,选择 Activation key ,以使用激活码进行注册。
- 输入您的密钥或密钥。
输入您的机构名称或 ID。
要获得机构 ID,请联系您的红帽联系点。
- 如果您不想将您的系统连接到 Red Hat Insights,请取消选中 Insights 复选框。
- 点 。
第 6 章 在 web 控制台中管理远程系统
您可以连接到远程系统,并在 RHEL 9 web 控制台中管理它们。
您了解:
- 连接系统的最佳拓扑。
- 如何添加和删除远程系统。
- 何时,以及如何使用 SSH 密钥进行远程系统身份验证。
-
如何配置 Web 控制台客户端,以允许使用智能卡通过
SSH
访问远程主机并访问服务的用户。
先决条件
- SSH 服务在远程系统上运行。
6.1. Web 控制台中的远程系统管理器
为了安全起见,请使用以下由 RHEL 9 web 控制台管理的远程系统的网络设置:
- 使用 Web 控制台将系统配置为堡垒主机。堡垒主机是带有打开 HTTPS 端口的系统。
- 所有其他系统通过 SSH 进行通信。
通过在堡垒主机上运行的 Web 接口,您可以使用默认配置中的端口 22 通过 SSH 协议访问所有其他系统。
6.2. 在 web 控制台中添加远程主机
在 RHEL web 控制台中,在使用相应的凭证添加远程系统后,您可以管理它们。
先决条件
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
登录到 RHEL 9 web 控制台。
详情请参阅 登录到 web 控制台。
在 RHEL 9 web 控制台中,点 Overview 页面左上角的
<username>@<hostname>
。- 从下拉菜单中选择 。
- 在 Add new host 对话框中,指定要添加的主机。
可选:为要连接的帐户添加用户名。
您可以使用远程系统的任意用户帐户。但是,如果您使用没有管理特权的用户凭证,则无法执行管理任务。
如果您使用与本地系统上相同的凭证,Web 控制台会在您每次登录时都自动验证远程系统。请注意,在多个系统上使用相同的凭证会降低安全性。
- 可选:点 Color 字段来更改系统的颜色。
- 点击 。
Web 控制台不保存用来登录到远程系统的密码,这意味着您必须在每次系统重启后再次登录。下次登录时,点断开连接的远程系统的主屏幕上的
,以打开登录对话框。验证
-
新主机列在
<username>@<hostname>
下拉菜单中。
6.3. 为新主机启用 SSH 登录
将新主机添加到 web 控制台时,您也可以使用 SSH 密钥登录到主机。如果您的系统上已有一个 SSH 密钥,则 web 控制台将使用现有的密钥;否则,Web 控制台可以创建一个密钥。
先决条件
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
登录到 RHEL 9 web 控制台。
详情请参阅 登录到 web 控制台。
在 RHEL 9 web 控制台中,点 Overview 页面左上角的
<username>@<hostname>
。- 从下拉菜单中选择 。
- 在 Add new host 对话框中,指定要添加的主机。
为要连接的帐户添加用户名。
您可以使用远程系统的任意用户帐户。但是,如果您使用没有管理特权的用户帐户,则无法执行管理任务。
- 可选:点 Color 字段来更改系统的颜色。
点击
。此时会出现一个新对话框窗口,要求输入密码。
- 输入用户帐户密码。
如果您已有一个 SSH 密钥,请选择 Authorize SSH key。
如果您没有 SSH 密钥,选择 Create a new SSH key and authorize it。Web 控制台创建密钥。
- 为 SSH 密钥添加密码。
- 确认密码。
- 点 。
验证
- 注销。
- 重新登录。
- 在 Not connected to host 屏幕中点 。
选择 SSH 密钥 作为您的身份验证选项。
- 输入您的密钥密码。
- 点 。
6.4. 配置 Web 控制台以允许使用智能卡通过 SSH 向远程主机进行身份验证的用户,而无需再次进行身份验证
在 RHEL web 控制台中登录到用户帐户后,您可以使用 SSH 协议连接到远程机器。您可以使用受限委托功能来使用 SSH
,而无需再次进行身份验证。
在示例流程中,web 控制台会话在 myhost.idm.example.com
主机上运行,并将控制台配置为代表经过身份验证的用户使用 SSH 访问 remote.idm.example.com
主机。
先决条件
-
您已获得 IdM
admin
票据授予票(TGT)。 -
您有访问
remote.idm.example.com
的root
权限。 -
cockpit
服务在 IdM 中运行。 Web 控制台在用户会话中创建了一个
S4U2Proxy
Kerberos ticket。要验证它,以 IdM 用户身份登录 Web 控制台,打开Terminal
页面,并输入:klist
$ klist Ticket cache: FILE:/run/user/1894000001/cockpit-session-3692.ccache Default principal: user@IDM.EXAMPLE.COM Valid starting Expires Service principal 07/30/21 09:19:06 07/31/21 09:19:06 HTTP/myhost.idm.example.com@IDM.EXAMPLE.COM 07/30/21 09:19:06 07/31/21 09:19:06 krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM for client HTTP/myhost.idm.example.com@IDM.EXAMPLE.COM
Copy to Clipboard Copied!
流程
创建委派规则可访问的目标主机列表:
创建服务委托目标:
ipa servicedelegationtarget-add cockpit-target
$ ipa servicedelegationtarget-add cockpit-target
Copy to Clipboard Copied! 将目标主机添加到委派目标:
ipa servicedelegationtarget-add-member cockpit-target \ --principals=host/remote.idm.example.com@IDM.EXAMPLE.COM
$ ipa servicedelegationtarget-add-member cockpit-target \ --principals=host/remote.idm.example.com@IDM.EXAMPLE.COM
Copy to Clipboard Copied!
通过创建服务委派规则并将 HTTP 服务 Kerberos 主体添加到其中,允许
cockpit
会话访问目标主机列表:创建服务委派规则:
ipa servicedelegationrule-add cockpit-delegation
$ ipa servicedelegationrule-add cockpit-delegation
Copy to Clipboard Copied! 将 Web 控制台客户端添加到委派规则中:
ipa servicedelegationrule-add-member cockpit-delegation \ --principals=HTTP/myhost.idm.example.com@IDM.EXAMPLE.COM
$ ipa servicedelegationrule-add-member cockpit-delegation \ --principals=HTTP/myhost.idm.example.com@IDM.EXAMPLE.COM
Copy to Clipboard Copied! 将委派目标添加到委派规则中:
ipa servicedelegationrule-add-target cockpit-delegation \ --servicedelegationtargets=cockpit-target
$ ipa servicedelegationrule-add-target cockpit-delegation \ --servicedelegationtargets=cockpit-target
Copy to Clipboard Copied!
在 remote.idm.example.com 主机上启用 Kerberos 身份验证:
-
以
root
身份通过 SSH 连接到 remote.idm.example.com。 -
打开
/etc/ssh/sshd_config
文件进行编辑。 -
通过取消注释
GSSAPIAuthentication no
行,并将它替换为GSSAPIAuthentication yes
来启用GSSAPIAuthentication
。
-
以
在 remote.idm.example.com 上重启
sshd
服务,以便更改生效:systemctl try-restart sshd.service
$ systemctl try-restart sshd.service
Copy to Clipboard Copied!
6.5. 使用 Ansible 配置 Web 控制台,允许用户使用智能卡通过 SSH 向远程主机进行身份验证,而无需再次进行身份验证
在 RHEL web 控制台中登录到用户帐户后,您可以使用 SSH 协议连接到远程机器。您可以使用 servicedelegationrule
和 servicedelegationtarget
模块为受限委托功能配置 Web 控制台,这将启用 SSH 连接,而无需再次进行身份验证。
在示例流程中,web 控制台会话在 myhost.idm.example.com
主机上运行,并将它配置为代表经过身份验证的用户使用 SSH 访问 remote.idm.example.com
主机。
先决条件
-
IdM
admin
密码。 -
对
remote.idm.example.com
的root
访问权限。 - Web 控制台服务在 IdM 中运行。
Web 控制台在用户会话中创建了一个
S4U2Proxy
Kerberos ticket。要验证它,以 IdM 用户身份登录 Web 控制台,打开Terminal
页面,并输入:klist
$ klist Ticket cache: FILE:/run/user/1894000001/cockpit-session-3692.ccache Default principal: user@IDM.EXAMPLE.COM Valid starting Expires Service principal 07/30/21 09:19:06 07/31/21 09:19:06 HTTP/myhost.idm.example.com@IDM.EXAMPLE.COM 07/30/21 09:19:06 07/31/21 09:19:06 krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM for client HTTP/myhost.idm.example.com@IDM.EXAMPLE.COM
Copy to Clipboard Copied! 您已配置了 Ansible 控制节点以满足以下要求:
- 您使用 Ansible 版本 2.14 或更高版本。
-
您已安装了
ansible-freeipa
软件包。 - 示例假定在 ~/MyPlaybooks/ 目录中,您已创建了一个带有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。
-
示例假定 secret.yml Ansible vault 存储了
ipaadmin_password
。
-
目标节点(这是执行
ansible-freeipa
模块的节点)是 IdM 域的一部分,来作为 IdM 客户端、服务器或副本。
流程
进入您的 ~/MyPlaybooks/ 目录:
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/
Copy to Clipboard Copied! 创建包含以下内容的
web-console-smart-card-ssh.yml
playbook:创建确保存在委派目标的任务:
--- - name: Playbook to create a constrained delegation target hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure servicedelegationtarget web-console-delegation-target is present ipaservicedelegationtarget: ipaadmin_password: "{{ ipaadmin_password }}" name: web-console-delegation-target
--- - name: Playbook to create a constrained delegation target hosts: ipaserver vars_files: - /home/user_name/MyPlaybooks/secret.yml tasks: - name: Ensure servicedelegationtarget web-console-delegation-target is present ipaservicedelegationtarget: ipaadmin_password: "{{ ipaadmin_password }}" name: web-console-delegation-target
Copy to Clipboard Copied! 添加将目标主机添加到委派目标的任务:
- name: Ensure servicedelegationtarget web-console-delegation-target member principal host/remote.idm.example.com@IDM.EXAMPLE.COM is present ipaservicedelegationtarget: ipaadmin_password: "{{ ipaadmin_password }}" name: web-console-delegation-target principal: host/remote.idm.example.com@IDM.EXAMPLE.COM action: member
- name: Ensure servicedelegationtarget web-console-delegation-target member principal host/remote.idm.example.com@IDM.EXAMPLE.COM is present ipaservicedelegationtarget: ipaadmin_password: "{{ ipaadmin_password }}" name: web-console-delegation-target principal: host/remote.idm.example.com@IDM.EXAMPLE.COM action: member
Copy to Clipboard Copied! 添加一个任务来确保存在委派规则:
- name: Ensure servicedelegationrule delegation-rule is present ipaservicedelegationrule: ipaadmin_password: "{{ ipaadmin_password }}" name: web-console-delegation-rule
- name: Ensure servicedelegationrule delegation-rule is present ipaservicedelegationrule: ipaadmin_password: "{{ ipaadmin_password }}" name: web-console-delegation-rule
Copy to Clipboard Copied! 添加一项任务,该任务确保 Web 控制台客户端服务的 Kerberos 主体是受限委派规则的成员:
- name: Ensure the Kerberos principal of the web console client service is added to the servicedelegationrule web-console-delegation-rule ipaservicedelegationrule: ipaadmin_password: "{{ ipaadmin_password }}" name: web-console-delegation-rule principal: HTTP/myhost.idm.example.com action: member
- name: Ensure the Kerberos principal of the web console client service is added to the servicedelegationrule web-console-delegation-rule ipaservicedelegationrule: ipaadmin_password: "{{ ipaadmin_password }}" name: web-console-delegation-rule principal: HTTP/myhost.idm.example.com action: member
Copy to Clipboard Copied! 添加一个任务,以确保 delegation 规则与 web-console-delegation-target 委派目标关联:
- name: Ensure a constrained delegation rule is associated with a specific delegation target ipaservicedelegationrule: ipaadmin_password: "{{ ipaadmin_password }}" name: web-console-delegation-rule target: web-console-delegation-target action: member
- name: Ensure a constrained delegation rule is associated with a specific delegation target ipaservicedelegationrule: ipaadmin_password: "{{ ipaadmin_password }}" name: web-console-delegation-rule target: web-console-delegation-target action: member
Copy to Clipboard Copied!
- 保存该文件。
运行 Ansible playbook。指定 playbook 文件、存储保护
secret.yml
文件的密码,以及清单文件:ansible-playbook --vault-password-file=password_file -v -i inventory web-console-smart-card-ssh.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory web-console-smart-card-ssh.yml
Copy to Clipboard Copied! 在
remote.idm.example.com
上启用 Kerberos 身份验证:-
以
root
身份通过 SSH 连接到remote.idm.example.com
。 -
打开
/etc/ssh/sshd_config
文件进行编辑。 -
通过取消注释
GSSAPIAuthentication no
行,并将它替换为GSSAPIAuthentication yes
来启用GSSAPIAuthentication
。
-
以
在
remote.idm.example.com
上重启sshd
服务,以便更改生效:systemctl try-restart sshd.service
$ systemctl try-restart sshd.service
Copy to Clipboard Copied!
第 7 章 配置单点登录以登录到在 IdM 客户端和 IdM 服务器上运行的 RHEL web 控制台服务
使用 RHEL 9 web 控制台中的 Identity Management (IdM)提供的单点登录(SSO)身份验证有以下优点:
- IdM 域中具有 Kerberos 票据的用户不需要提供登录凭据来访问 Web 控制台。
- IdM 证书颁发机构(CA)发布的证书的用户不需要提供登录凭证来访问 Web 控制台。Web 控制台服务器自动切换到 IdM 证书颁发机构发布的证书,并被浏览器接受。不需要证书配置。
- IdM 域管理员可以使用 RHEL 9 web 控制台来管理域中的系统。配置了正确的权限后,IdM 管理员可以使用其 Web 控制台客户端(即其浏览器)在任何 IdM 主机上运行任何命令。
本章论述了:
- 如何配置 SSO 以登录到在 IdM 客户端上运行的 RHEL web 控制台服务。
- 如何配置 SSO 以登录到在 IdM 服务器上运行的 RHEL web 控制台服务。
-
如何为登录到 Web 控制台客户端的 IdM 系统管理员配置
sudo
访问权限。
先决条件
RHEL web 控制台服务安装在 RHEL 9 系统中。
详情请参阅安装 Web 控制台。
IdM 客户端安装在运行 RHEL web 控制台服务的系统中。
详情请查看 IdM 客户端安装。
7.1. 使用 web 控制台将 RHEL 9 系统添加到 IdM 域中
您可以使用 Web 控制台将 Red Hat Enterprise Linux 9 系统添加到 Identity Management (IdM)域中。
先决条件
- IdM 域正在运行,并可访问您想要加入的客户端。
- 您有 IdM 域管理员凭证。
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
登录到 RHEL 9 web 控制台。
详情请参阅 登录到 web 控制台。
- 在 Overview 选项卡的 Configuration 字段中点 Join Domain。
- 在 Join a Domain 对话框的 Domain Address 字段中输入 IdM 服务器的主机名。
- 在 Domain administrator name 字段中输入 IdM 管理帐户的用户名。
- 在域 管理员密码 中,添加密码。
- 点 。
验证
- 如果 RHEL 9 web 控制台没有显示错误,系统已加入到 IdM 域,您可以在 System 屏幕中看到域名。
要验证该用户是否为域的成员,点 Terminal 页面并输入
id
命令:id
$ id euid=548800004(example_user) gid=548800004(example_user) groups=548800004(example_user) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Copy to Clipboard Copied!
7.2. 使用 Kerberos 身份验证登录到 web 控制台
作为身份管理(IdM)用户,您可以使用单点登录(SSO)身份验证来在浏览器中自动访问 RHEL web 控制台。
有了 SSO ,您通常在 Web 控制台中不必拥有任何管理特权。这只有在您配置了无密码 sudo 时才可以工作。Web 控制台不以交互方式询问 sudo 密码。
先决条件
IdM 域可由 DNS 解析。例如,Kerberos 服务器的 SRV 记录可以被解析:
host -t SRV _kerberos._udp.idm.example.com
$ host -t SRV _kerberos._udp.idm.example.com _kerberos._udp.idm.example.com has SRV record 0 100 88 dc.idm.example.com
Copy to Clipboard Copied! 如果您运行浏览器的系统是一个 RHEL 9 系统,并 加入到 IdM 域,则您使用与 web 控制台服务器相同的 DNS,且不需要 DNS 配置。
- 您已为 SSO 身份验证配置了 Web 控制台服务器。
- 运行 Web 控制台服务的主机是一个 IdM 客户端。
- 您已为 SSO 身份验证配置了 Web 控制台客户端。
流程
获取您的 Kerberos 票据授予票据:
kinit idmuser@IDM.EXAMPLE.COM
$ kinit idmuser@IDM.EXAMPLE.COM Password for idmuser@IDM.EXAMPLE.COM:
Copy to Clipboard Copied! 输入运行 Web 控制台服务的主机的完全限定名称:
https://<dns_name>:9090
https://<dns_name>:9090
Copy to Clipboard Copied! 此时,您已成功连接到 RHEL web 控制台,您可以使用配置启动。例如,您可以在 web 控制台中将 RHEL 9 系统加入到 IdM 域中。
7.3. 在 IdM 服务器上启用带有 GSSAPI 的 RHEL web 控制台单点登录
RHEL web 控制台可以使用通用安全服务应用程序接口(GSSAPI)身份验证。但是,IdM 框架已拥有 HTTP/server.idm.example.com@IDM.EXAMPLE.COM Kerberos 服务及其 keytab。因此,要在身份管理(IdM)服务器上实施 GSSAPI 身份验证,请创建一个符号链接 /etc/cockpit/krb5.keytab
到 /var/lib/ipa/gssproxy/http.keytab
,然后生成一个证书密钥对。
先决条件
-
您有
root
特权。 - 您使用 RHEL 9.6 或更高版本。
流程
创建符号链接:
ln -s /var/lib/ipa/gssproxy/http.keytab /etc/cockpit/krb5.keytab
# ln -s /var/lib/ipa/gssproxy/http.keytab /etc/cockpit/krb5.keytab
Copy to Clipboard Copied! 设置证书文件 Bash 变量:
CERT_FILE=/etc/cockpit/ws-certs.d/50-certmonger.crt
# CERT_FILE=/etc/cockpit/ws-certs.d/50-certmonger.crt
Copy to Clipboard Copied! 设置证书密钥 Bash 变量:
KEY_FILE=/etc/cockpit/ws-certs.d/50-certmonger.key
# KEY_FILE=/etc/cockpit/ws-certs.d/50-certmonger.key
Copy to Clipboard Copied! 生成证书密钥对:
ipa-getcert request -f ${CERT_FILE} -k ${KEY_FILE} -D $(hostname --fqdn)
# ipa-getcert request -f ${CERT_FILE} -k ${KEY_FILE} -D $(hostname --fqdn)
Copy to Clipboard Copied!
7.4. 为 IdM 主机上的 IdM 管理员启用 sudo 访问权限
您可以配置身份管理(IdM)系统管理员,使其在 IdM 主机上具有 sudo
权限。
先决条件
- 您已作为 IdM 管理员登录到 IdM 主机。
-
在主机上具有
root
权限。
流程
在主机上启用
sudo
访问:ipa-advise enable-admins-sudo | sh -ex
# ipa-advise enable-admins-sudo | sh -ex
Copy to Clipboard Copied!
第 8 章 使用 Web 控制台为集中管理的用户配置智能卡验证
您可以在 RHEL web 控制台中为集中管理的用户配置智能卡验证:
- 身份管理
- Active Directory,它在 Identity Management 的跨林信任中连接
先决条件
您要使用智能卡验证的系统必须是 Active Directory 或 Identity Management 域的成员。
有关使用 Web 控制台将 RHEL 9 系统加入到域的详情,请参阅 使用 web 控制台将 RHEL 系统加入到 IdM 域。
用于智能卡验证的证书必须与身份管理或 Active Directory 中的特定用户关联。
有关在 Identity Management 中将证书与用户关联的详情,请参阅在 IdM Web UI 中的用户条目中添加证书,或将证书添加到 IdM CLI 中的用户条目中。
8.1. 实现中央管理用户的智能卡验证
智能卡是一个物理设备,可以使用保存在卡中的证书提供个人验证。个人验证意味着,您可以象使用用户密码一样使用智能卡。
您可以使用私钥和证书的形式在智能卡中保存用户凭证。特殊的软件和硬件可用于访问它们。您可以将智能卡插入到读取器或者 USB 套接字中,并为智能卡提供 PIN 代码,而不是提供密码。
身份管理(IdM)支持使用如下方式的智能卡身份验证:
- IdM 证书颁发机构发布的用户证书。
- Active Directory 证书服务(ADCS)证书颁发机构发布的用户证书。
如果要使用智能卡验证,请参阅硬件要求:RHEL8+ 中的智能卡支持。
8.2. 安装用来管理和使用智能卡的工具
在配置智能卡前,您必须安装可以生成证书并启动 pscd
服务的对应工具。
先决条件
-
您有
root
权限。
流程
安装
opensc
和gnutls-utils
软件包:dnf -y install opensc gnutls-utils
# dnf -y install opensc gnutls-utils
Copy to Clipboard Copied! 启动
pcscd
服务。systemctl start pcscd
# systemctl start pcscd
Copy to Clipboard Copied!
验证
验证
pcscd
服务是否正在运行:systemctl status pcscd
# systemctl status pcscd
Copy to Clipboard Copied!
8.3. 准备智能卡并将证书和密钥上传到智能卡
按照以下流程,使用 pkcs15-init
工具配置智能卡,该工具可帮助您配置:
- 擦除智能卡
- 设置新的 PIN 和可选的 PIN Unblocking Keys(PUKs)
- 在智能卡上创建新插槽
- 在插槽存储证书、私钥和公钥
- 如果需要,请锁定智能卡设置,因为某些智能卡需要这个类型的最终化
pkcs15-init
工具可能无法使用所有智能卡。您必须使用您使用智能卡的工具。
先决条件
已安装
opensc
软件包,其中包括pkcs15-init
工具。如需了解更多详细信息,请参阅 安装用于管理和使用智能卡的工具。
- 该卡插入读卡器并连接到计算机。
-
您有一个要存储在智能卡上的私钥、公钥和证书。在此流程中,
testuser.key
、testuserpublic.key
和testuser.crt
是用于私钥、公钥和证书的名称。 - 您有当前的智能卡用户 PIN 和 Security Officer PIN (SO-PIN)。
流程
擦除智能卡并使用您的 PIN 验证自己:
pkcs15-init --erase-card --use-default-transport-keys
$ pkcs15-init --erase-card --use-default-transport-keys Using reader with a card: Reader name PIN [Security Officer PIN] required. Please enter PIN [Security Officer PIN]:
Copy to Clipboard Copied! 这个卡已经被清除。
初始化智能卡,设置您的用户 PIN 和 PUK,以及您的安全响应 PIN 和 PUK:
pkcs15-init --create-pkcs15 --use-default-transport-keys \ --pin 963214 --puk 321478 --so-pin 65498714 --so-puk 784123
$ pkcs15-init --create-pkcs15 --use-default-transport-keys \ --pin 963214 --puk 321478 --so-pin 65498714 --so-puk 784123 Using reader with a card: Reader name
Copy to Clipboard Copied! pcks15-init
工具在智能卡上创建一个新插槽。为插槽设置标签和验证 ID:
pkcs15-init --store-pin --label testuser \ --auth-id 01 --so-pin 65498714 --pin 963214 --puk 321478
$ pkcs15-init --store-pin --label testuser \ --auth-id 01 --so-pin 65498714 --pin 963214 --puk 321478 Using reader with a card: Reader name
Copy to Clipboard Copied! 标签设置为人类可读的值,在本例中为
testuser
。auth-id
必须是两个十六进制值,在本例中设为01
。在智能卡的新插槽中存储并标记私钥:
pkcs15-init --store-private-key testuser.key --label testuser_key \ --auth-id 01 --id 01 --pin 963214
$ pkcs15-init --store-private-key testuser.key --label testuser_key \ --auth-id 01 --id 01 --pin 963214 Using reader with a card: Reader name
Copy to Clipboard Copied! 注意在存储您的私钥并将证书存储在下一步中时,您为
--id
指定的值必须相同。建议为--id
指定自己的值,否则它们将更复杂的值由工具计算。在智能卡上的新插槽中存储并标记该证书:
pkcs15-init --store-certificate testuser.crt --label testuser_crt \ --auth-id 01 --id 01 --format pem --pin 963214
$ pkcs15-init --store-certificate testuser.crt --label testuser_crt \ --auth-id 01 --id 01 --format pem --pin 963214 Using reader with a card: Reader name
Copy to Clipboard Copied! 可选:在智能卡上的新插槽中保存并标记公钥:
pkcs15-init --store-public-key testuserpublic.key \ --label testuserpublic_key --auth-id 01 --id 01 --pin 963214
$ pkcs15-init --store-public-key testuserpublic.key \ --label testuserpublic_key --auth-id 01 --id 01 --pin 963214 Using reader with a card: Reader name
Copy to Clipboard Copied! 注意如果公钥与私钥或证书对应,请指定与私钥或证书的 ID 相同的 ID。
可选:某些智能卡要求您通过锁定设置来完成卡:
pkcs15-init -F
$ pkcs15-init -F
Copy to Clipboard Copied! 在这个阶段,您的智能卡在新创建的插槽中包含证书、私钥和公钥。您还创建了您的用户 PIN 和 PUK,以及安全响应 PIN 和 PUK。
8.4. 为 web 控制台启用智能卡验证
要在 web 控制台中使用智能卡验证,请在 cockpit.conf
文件中启用这个验证方法。
另外,您还可以在同一文件中禁用密码验证。
先决条件
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
登录到 RHEL 9 web 控制台。
详情请参阅 登录到 web 控制台。
- 点 Terminal。
在
/etc/cockpit/cockpit.conf
中,将ClientCertAuthentication
设置为yes
:[WebService] ClientCertAuthentication = yes
[WebService] ClientCertAuthentication = yes
Copy to Clipboard Copied! 可选:在
cockpit.conf
中禁用基于密码的身份验证:[Basic] action = none
[Basic] action = none
Copy to Clipboard Copied! 这个配置禁用了密码验证,且必须总是使用智能卡。
重启 Web 控制台,以确保
cockpit.service
接受更改:systemctl restart cockpit
# systemctl restart cockpit
Copy to Clipboard Copied!
8.5. 使用智能卡登录到 web 控制台
您可以使用智能卡登录到 web 控制台。
先决条件
- 保存在智能卡中的有效证书,该证书与 Active Directory 或 Identity Management 域中的用户帐户关联。
- PIN 用于解锁智能卡。
- 已经将智能卡放入读卡器。
您已安装了 RHEL 9 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
登录到 RHEL 9 web 控制台。
详情请参阅 登录到 web 控制台。
浏览器要求您添加 PIN 保护保存在智能卡中的证书。
- 在 Password Required 对话框中,输入 PIN 并点 OK。
- 在 User Identification Request 对话框中,选择保存在智能卡中的证书。
选择 Remember this decision。
系统下次打开这个窗口。
注意此步骤不适用于 Google Chrome 用户。
- 点击 确定。
您现在已连接,Web 控制台会显示其内容。
8.6. 为智能卡用户启用无密码的 sudo 验证
您可以在 web 控制台中为智能卡用户配置对 sudo
和其他服务的无密码身份验证。
另外,如果您使用 Red Hat Enterprise Linux Identity Management,您可以声明初始 Web 控制台证书身份验证,以对 sudo
、SSH 或其他服务进行身份验证。为此,Web 控制台会在用户会话中自动创建 S4U2Proxy Kerberos ticket。
先决条件
- 身份管理已安装。
- 跨林信任中与身份管理连接的活动目录。
- 设置为登录到 web 控制台的智能卡。如需更多信息,请参阅使用 Web 控制台配置智能卡验证。
流程
设置约束委派规则,以列出托管票据可以访问哪些主机。
例 8.1. 设置约束委派规则
Web 控制台会话运行主机
host.example.com
,并应受信任,以通过sudo
访问自己的主机。此外,我们还添加了第二个可信主机 -remote.example.com
。创建以下委派:
运行以下命令添加特定规则可以访问的目标机器列表:
ipa servicedelegationtarget-add cockpit-target ipa servicedelegationtarget-add-member cockpit-target \ --principals=host/host.example.com@EXAMPLE.COM \ --principals=host/remote.example.com@EXAMPLE.COM
# ipa servicedelegationtarget-add cockpit-target # ipa servicedelegationtarget-add-member cockpit-target \ --principals=host/host.example.com@EXAMPLE.COM \ --principals=host/remote.example.com@EXAMPLE.COM
Copy to Clipboard Copied! 要允许 Web 控制台会话(HTTP/principal)访问该主机列表,请使用以下命令:
ipa servicedelegationrule-add cockpit-delegation ipa servicedelegationrule-add-member cockpit-delegation \ --principals=HTTP/host.example.com@EXAMPLE.COM ipa servicedelegationrule-add-target cockpit-delegation \ --servicedelegationtargets=cockpit-target
# ipa servicedelegationrule-add cockpit-delegation # ipa servicedelegationrule-add-member cockpit-delegation \ --principals=HTTP/host.example.com@EXAMPLE.COM # ipa servicedelegationrule-add-target cockpit-delegation \ --servicedelegationtargets=cockpit-target
Copy to Clipboard Copied!
在对应服务中启用 GSS 身份验证:
对于 sudo,在
/etc/sssd/sssd.conf
文件中启用pam_sss_gss
模块:以 root 用户身份,将域的条目添加到
/etc/sssd/sssd.conf
配置文件。[domain/example.com] pam_gssapi_services = sudo, sudo-i
[domain/example.com] pam_gssapi_services = sudo, sudo-i
Copy to Clipboard Copied! 在第一行启用
/etc/pam.d/sudo
文件中的模块。auth sufficient pam_sss_gss.so
auth sufficient pam_sss_gss.so
Copy to Clipboard Copied!
-
对于 SSH,将
/etc/ssh/sshd_config
文件中的GSSAPIAuthentication
选项更新为yes
。
从 Web 控制台连接到远程 SSH 主机时,委派的 S4U 票据不会被转发到远程 SSH 主机。使用您的票据在远程主机上向 sudo 进行身份验证将无法正常工作。
验证
- 使用智能卡登录到 web 控制台。
-
点
Limited access
按钮。 - 使用您的智能卡进行验证。
或者:
- 尝试使用 SSH 连接到其他主机。
8.7. 限制用户会话和内存以防止 DoS 攻击
证书验证被分离和隔离 cockpit-ws
Web 服务器的实例保护,使其免受要模拟其他用户的攻击者的攻击。但是,这会引入了一个潜在的拒绝服务(DoS)攻击:远程攻击者可以创建大量证书,并将大量 HTTPS 请求发送到 cockpit-ws
各自使用不同的证书。
为防止此类 DoS 攻击,这些 Web 服务器实例的集体资源是有限的。默认情况下,对连接和内存使用率的限制被设置为 200 个线程,75 % (软)或 90 %(硬)内存限值。
示例流程通过限制连接数和内存演示了资源保护。
流程
在终端中,打开
system-cockpithttps.slice
配置文件:systemctl edit system-cockpithttps.slice
# systemctl edit system-cockpithttps.slice
Copy to Clipboard Copied! 将
TasksMax
限制为 100,将CPUQuota
限制为 30% :[Slice] # change existing value TasksMax=100 # add new restriction CPUQuota=30%
[Slice] # change existing value TasksMax=100 # add new restriction CPUQuota=30%
Copy to Clipboard Copied! 要应用这些更改,请重启系统:
systemctl daemon-reload systemctl stop cockpit
# systemctl daemon-reload # systemctl stop cockpit
Copy to Clipboard Copied!
现在,新内存和用户会话降低了对 cockpit-ws
Web 服务器的 DoS 攻击的风险。
第 9 章 Web 控制台中的 Satellite 主机管理和监控
在 Red Hat Satellite 服务器上启用 RHEL web 控制台集成后,您可以在 web 控制台中大规模管理多个主机。
Red Hat Satellite 是一个系统管理解决方案,用来跨物理、虚拟和云环境来部署、配置和维护您的系统。Satellite 使用集中式工具提供对多个 Red Hat Enterprise Linux 部署的配置、远程管理和监控。
默认情况下,RHEL web 控制台集成在 Red Hat Satellite 中被禁用。要从 Red Hat Satellite 中访问主机的 RHEL web 控制台功能,您必须首先在 Red Hat Satellite 服务器上启用 RHEL web 控制台集成。
要在 Satellite 服务器上启用 RHEL web 控制台,请以 root
用户身份输入以下命令:
satellite-installer --enable-foreman-plugin-remote-execution-cockpit --reset-foreman-plugin-remote-execution-cockpit-ensure
# satellite-installer --enable-foreman-plugin-remote-execution-cockpit --reset-foreman-plugin-remote-execution-cockpit-ensure