在 RHEL web 控制台中管理系统
具有基于 Web 的图形界面的服务器管理
摘要
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对我们文档的反馈。让我们了解如何改进它。
通过 Jira 提交反馈(需要帐户)
- 登录到 Jira 网站。
- 在顶部导航栏中点 Create
- 在 Summary 字段中输入描述性标题。
- 在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 点对话框底部的 Create。
第 1 章 RHEL web 控制台入门 复制链接链接已复制到粘贴板!
了解如何使用 RHEL web 控制台安装、配置和监控系统。此图形界面简化了常见的管理任务,如管理日志、存储和远程主机。
1.1. 什么是 RHEL web 控制台 复制链接链接已复制到粘贴板!
RHEL web 控制台是一个基于 web 的图形界面,用于管理和监控网络环境中的本地系统和 Linux 服务器。
在 RHEL web 控制台中,您可以执行广泛的管理任务,包括:
- 管理服务
- 管理用户帐户
- 管理及监控系统服务
- 配置网络接口和防火墙
- 检查系统日志
- 管理虚拟机
- 创建诊断报告
- 设置内核转储配置
- 配置 SELinux
- 更新软件
- 管理系统订阅
Web 控制台使用与命令行相同的系统工具。如果在终端中更改设置,Web 控制台会立即更新。您可以随时在 web 界面和终端间切换。
您还可以以图形的形式在网络环境中监控系统的日志和性能。另外,您可以在 web 控制台中直接或通过终端更改设置。
1.2. 安装并启用 Web 控制台 复制链接链接已复制到粘贴板!
要访问 RHEL web 控制台,请首先启用 cockpit.socket 服务。RHEL 10 包括许多安装变体中默认安装的 web 控制台。如果您的系统每以包括,请在启用 cockpit.socket 服务前安装 cockpit 软件包。
流程
如果在安装变体中没有默认安装 Web 控制台,请手动安装
cockpit软件包:# dnf install cockpit启用并启动
cockpit.socket服务,该服务运行一个 Web 服务器:# systemctl enable --now cockpit.socket如果在安装变体中没有默认安装 Web 控制台,且您使用自定义防火墙配置集,请将
cockpit服务添加到firewalld中,以在防火墙中打开端口 9090:# firewall-cmd --add-service=cockpit --permanent # firewall-cmd --reload
验证
- 要验证之前的安装和配置,请打开 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注意这在本地计算机上提供了 web 控制台登录。如果要登录到远程系统的 web 控制台,请参阅 从远程机器连接到 web 控制台 部分。
如果您使用自签名证书,浏览器会显示一个警告。检查证书,并接受安全例外以进行登录。
控制台从
/etc/cockpit/ws-certs.d目录中加载证书,并使用带有.cert扩展名的最后一个文件(按字母排序)。要避免接受安全例外的操作,安装由证书颁发机构(CA)签名的证书。- 在登录屏幕中输入您的系统用户名和密码。
点 Log In。
成功验证后,会打开 RHEL web 控制台界面。
1.4. Web 控制台中的管理访问权限 复制链接链接已复制到粘贴板!
您可以在 RHEL web 控制台中获得管理访问权限来执行特权任务,如管理服务、用户和网络,这需要升级的权限。
第一次使用常规用户帐户登录后,Web 控制台以有限的访问权限启动。当您有有限的访问权限时,您可以查看设置,但无法执行需要管理特权的操作,如安装软件包。
要执行管理任务,请点击 web 控制台页面顶部面板中的 Limited access。您必须有对系统的 sudo 访问权限,并提供用户密码以获取管理访问权限。从那时起,Web 控制台提供管理访问权限,并在用户会话中保留此设置。
要切回到有限访问权限,请单击 Web 控制台页面顶部面板中的 管理访问权限 。
为了安全起见,RHEL web 控制台默认不允许 root 帐户登录。不要以 root 身份登录,而是使用管理访问权限。如果您的场景需要以 root 身份登录,请参阅 以 root 用户身份从远程机器连接到 web 控制台
1.5. 在 web 控制台中禁用基本身份验证 复制链接链接已复制到粘贴板!
禁用 RHEL web 控制台的基本身份验证,以强制使用更强大的身份验证方法,如 Kerberos。您可以在 cockpit.conf 文件中配置此设置,以覆盖默认的安全行为。
使用 none 操作来禁用身份验证方案,只允许通过 GSSAPI 和表单进行身份验证。
先决条件
您已安装了 RHEL 10 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
-
您有
root权限或使用sudo输入管理命令的权限。
流程
在您首选的文本编辑器中,在
/etc/cockpit/目录中打开或创建cockpit.conf文件,例如:# vi cockpit.conf添加以下文本:
[basic] action = none- 保存该文件。
重启 Web 控制台以使更改生效。
# systemctl try-restart cockpit
1.6. 从远程机器连接至 web 控制台 复制链接链接已复制到粘贴板!
您可以从任何客户端操作系统以及手机或平板电脑连接到 Web 控制台界面。
先决条件
带有支持的互联网浏览器的设备,例如:
- Mozilla Firefox 52 及更新的版本
- Google Chrome 57 及更新的版本
- Microsoft Edge 16 及更新的版本
您要使用已安装的并可访问的 web 控制台访问的 RHEL 10 系统。
具体步骤请参阅安装并启用 Web 控制台。
流程
- 打开浏览器。
使用以下格式输入远程服务器地址:
使用服务器主机名:
https://<server.hostname.example.com>:<port-number>例如:
https://example.com:9090使用服务器的 IP 地址:
https://<server.IP_address>:<port-number>例如:
https://192.0.2.2:9090
- 登录界面打开后,使用 RHEL 系统凭证登录。
1.7. 以 root 用户身份从远程机器连接到 web 控制台 复制链接链接已复制到粘贴板!
您可以以 root 用户身份连接到 RHEL web 控制台,以获取对远程主机的完整管理控制。确保对此特权连接使用 SSH 密钥而不是密码。
在 RHEL 9.2 或更高版本的新安装中,出于安全原因,RHEL web 控制台默认不允许 root 帐户登录。您可以在 /etc/cockpit/disallowed-users 文件中允许 root 登录。
先决条件
您已安装了 RHEL 10 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
在您首选的文本编辑器中打开
/etc/cockpit/目录中的disallowed-users文件,例如:# vi /etc/cockpit/disallowed-users编辑文件并删除
root用户的行:# List of users which are not allowed to login to Cockpit root- 保存更改并退出编辑器。
验证
以
root用户身份登录到 Web 控制台。详情请参阅 Web 控制台的日志记录。
1.8. 使用一次性密码登录到 web 控制台 复制链接链接已复制到粘贴板!
使用一次性密码(OTP)登录到 RHEL web 控制台来增强安全性。您可以在启用了 OTP 的 IdM 域中使用此双因素验证方法。
只有在系统是启用了 OTP 配置的 Identity Management(IdM)域的一部分时,才可以使用一次性密码登录。
先决条件
您已安装了 RHEL 10 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
- 带有启用 OTP 配置的 Identity Management 服务器。
- 配置的硬件或软件设备生成 OTP 令牌。
流程
在浏览器中打开 RHEL web 控制台:
-
本地:
https://localhost:9090 -
远程,使用服务器主机名:
https://example.com:9090 远程,使用服务器 IP 地址:
https://EXAMPLE.SERVER.IP.ADDR:9090如果您使用自签名证书,浏览器会发出警告。检查证书并接受安全例外以进行登录。
控制台从
/etc/cockpit/ws-certs.d目录中加载证书,并使用带有.cert扩展名的最后一个文件(按字母排序)。要避免接受安全例外的操作,安装由证书颁发机构(CA)签名的证书。
-
本地:
- 登录窗口将打开。在登录窗口中输入您的系统用户名和密码。
- 在您的设备中生成一次性密码。
- 在确认密码后,在 web 控制台界面中显示的新字段中输入一次性密码。
- 点登录。
- 成功登录会进入 web 控制台界面的 Overview 页面。
1.9. 在登录页面中添加标题 复制链接链接已复制到粘贴板!
您可以在 RHEL web 控制台登录页面中添加自定义横幅。这有助于在用户登录系统前向用户显示重要的安全警告或法律通知。
先决条件
您已安装了 RHEL 10 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
-
您有
root权限或使用sudo输入管理命令的权限。
流程
在您首选的文本编辑器中打开
/etc/issue.cockpit文件:# vi /etc/issue.cockpit将您要显示的内容作为横幅添加到文件中,例如:
This is an example banner for the RHEL web console login page.您不能在文件中包含任何宏,但您可以使用换行符和 ASCII 工件。
- 保存该文件。
在您首选的文本编辑器中打开
/etc/cockpit/目录中的cockpit.conf文件,例如:# vi /etc/cockpit/cockpit.conf在文件中添加以下文本:
[Session] Banner=/etc/issue.cockpit- 保存该文件。
重启 Web 控制台以使更改生效。
# systemctl try-restart cockpit
验证
再次打开 Web 控制台登录屏幕,来验证横幅现在是否可见:
1.10. 在 web 控制台中配置自动闲置锁定 复制链接链接已复制到粘贴板!
您可以通过 web 控制台界面启用自动空闲锁定并为您的系统设置空闲超时。这样可确保您的屏幕会在不活跃一段时间后自动锁定,从而防止系统未授权访问。
先决条件
您已安装了 RHEL 10 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
-
您有
root权限或使用sudo输入管理命令的权限。
流程
在您首选的文本编辑器中打开
/etc/cockpit/目录中的cockpit.conf文件,例如:# vi /etc/cockpit/cockpit.conf在文件中添加以下文本:
[Session] IdleTimeout=<X>将 <X> 替换为您选择的时间段(以分钟为单位)。
- 保存该文件。
重启 Web 控制台以使更改生效。
# systemctl try-restart cockpit
验证
- 检查在设定的时间后,用户是否会退出系统。
1.11. 更改 Web 控制台侦听端口 复制链接链接已复制到粘贴板!
默认情况下,RHEL web 控制台通过 TCP 端口 9090 进行通信。您可以通过覆盖默认套接字设置来更改端口号。在满足特定安全或网络策略时,通常需要此调整。
先决条件
您已安装了 RHEL 10 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
-
您有
root权限或使用sudo输入管理命令的权限。 -
firewalld服务在运行。
流程
选择一个未占用的端口,例如 <4488/tcp>,并指示 SELinux 允许
cockpit服务绑定到该端口:# semanage port -a -t websm_port_t -p tcp <4488>请注意,一个端口一次只能由一个服务使用,因此尝试使用已占用的端口会出现
ValueError: Port already defined错误消息。打开新端口,并在防火墙中关闭之前的端口:
# firewall-cmd --service cockpit --permanent --add-port=<4488>/tcp # firewall-cmd --service cockpit --permanent --remove-port=9090/tcp为
cockpit.socket服务创建一个覆盖文件:# systemctl edit cockpit.socket在以下编辑器屏幕中,其打开了
/etc/systemd/system/cockpit.socket.d/目录中的一个空override.conf文件,通过添加以下行,将 web 控制台的默认端口从 9090 改为之前选择的号:[Socket] ListenStream= ListenStream=<4488>请注意,第一个具有空值的
ListenStream=指令是故意的。您可以在单个套接字单元中声明多个ListenStream指令,插入文件中的空值会重置列表,并从原始单元中禁用默认端口 9090。重要在以
# Anything between here和# Lines below this开头的行之间插入之前的代码段。否则,系统会丢弃您的更改。- 保存更改,退出编辑器。
重新载入更改的配置:
# systemctl daemon-reload检查您的配置是否正常工作:
# systemctl show cockpit.socket -p Listen Listen=[::]:4488 (Stream)重启
cockpit.socket:# systemctl restart cockpit.socket
验证
打开 Web 浏览器,并在更新的端口上访问 Web 控制台,例如:
https://machine1.example.com:4488
第 2 章 使用 RHEL 系统角色安装和配置 web 控制台 复制链接链接已复制到粘贴板!
使用 cockpit RHEL 系统角色,您可以在多个 RHEL 系统上自动部署和启用 Web 控制台。
2.1. 使用 cockpit RHEL 系统角色安装 Web 控制台 复制链接链接已复制到粘贴板!
您可以使用 cockpit 系统角色在多个系统上自动安装和启用 RHEL web 控制台。
您可以使用 cockpit 系统角色来:
- 安装 RHEL web 控制台。
-
允许
firewalld和selinux系统角色配置系统来打开新端口。 -
将 web 控制台设置为使用
ipatrusted 证书颁发机构的证书,而不使用自签名证书。
您不必在 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_port: 9090 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示例 playbook 中指定的设置包括如下:
cockpit_manage_selinux: true-
允许使用
selinux系统角色配置 SELinux,以对websm_port_tSELinux 类型设置正确的端口权限。 cockpit_manage_firewall: true-
允许
cockpit系统角色使用firewalld系统角色添加端口。 cockpit_certificates: <YAML_dictionary>默认情况下,RHEL web 控制台使用自签名证书。或者,您可以将
cockpit_certificates变量添加到 playbook 中,并将角色配置为从 IdM 证书颁发机构(CA)请求证书,或使用受管节点上的提供的现有的证书和私钥。有关 playbook 中使用的所有变量的详情,请查看控制节点上的
/usr/share/ansible/roles/rhel-system-roles.cockpit/README.md文件。
验证 playbook 语法:
$ ansible-playbook --syntax-check ~/playbook.yml请注意,这个命令只验证语法,不能防止错误的、但有效的配置。
运行 playbook:
$ ansible-playbook ~/playbook.yml
第 3 章 安装 Web 控制台附加组件,并创建自定义页面 复制链接链接已复制到粘贴板!
根据您要如何使用 Red Hat Enterprise Linux 系统,您可以在 web 控制台中添加额外的 可用 应用程序,或根据您的用例创建自定义页面。
3.1. RHEL web 控制台的附加应用程序 复制链接链接已复制到粘贴板!
使用控制台中的 Applications 页面 或命令行为 RHEL web 控制台安装可选的附加组件应用程序。这些附加组件提供用于特定管理任务的工具。
您可以使用以下方法之一安装附加组件应用程序:
在 Web 控制台中,点 Applications,并使用可用和已安装的应用程序列表中的 按钮。
在终端中,使用
dnf install命令:# dnf install <add-on>在上一命令中,将 <add-on> 替换为 RHEL web 控制台的可用附加组件应用程序列表中的一个软件包名称。
| 功能名称 | 软件包名称 | 使用方法 |
|---|---|---|
| File manager |
| 在标准 Web 控制台界面中管理文件和目录 |
| HA cluster management |
|
用来配置红帽高可用性集群的 |
| Image builder |
| 构建自定义操作系统镜像 |
| Machines |
|
管理 |
| PackageKit |
| 软件更新和应用程序安装(通常会被默认安装) |
| PCP |
| 持久和更精细的性能数据(从 UI 按需安装) |
| Podman |
| |
| Session recording |
| 记录和管理用户会话 |
| Storage |
|
通过 |
3.2. 在 web 控制台中创建新页面 复制链接链接已复制到粘贴板!
您可以通过添加包含 HTML 和 JavaScript 文件的软件包目录,在 RHEL web 控制台中创建自定义页面。这可让您将自定义功能和接口整合到控制台中。
有关添加自定义页面的详细信息,请参阅 Cockpit 项目 开发人员指南中的 Cockpit 用户界面和 Cockpit 软件包 部分创建插件。
3.3. 覆盖 web 控制台中的清单设置 复制链接链接已复制到粘贴板!
您可以通过覆盖默认清单设置来修改所有用户或特定用户的 RHEL web 控制台菜单结构。创建覆盖来调整菜单项的可见性或顺序。
在 cockpit 项目中,软件包名称是一个目录名称。软件包包含 manifest.json 文件以及其他文件。默认设置存在于 manifest.json 文件中。您可以通过在指定用户的特定位置创建一个 < package_name> .override.json 文件来覆盖默认的 cockpit 菜单设置。
先决条件
您已安装了 RHEL 10 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
在您选择的文本编辑器中覆盖
<systemd>.override.json文件中的清单设置,例如:要为所有用户进行编辑,请输入:
# vi /etc/cockpit/<systemd>.override.json要为单个用户进行编辑,请输入:
# vi ~/.config/cockpit/<systemd>.override.json
使用以下详情编辑所需的文件:
{ "menu": { "services": null, "logs": { "order": -1 } } }-
null值隐藏了 services 选项卡 -
-1值将 logs 选项卡移到第一个位置。
-
重启
cockpit服务:# systemctl restart cockpit.service
第 4 章 在 web 控制台中管理订阅 复制链接链接已复制到粘贴板!
您可以在 Red Hat Enterprise Linux 10 web 控制台中管理您的红帽产品订阅。这个功能提供了一个图形界面,用于查看、注册和管理系统订阅。
4.1. 先决条件 复制链接链接已复制到粘贴板!
- 您的 红帽客户门户网站 或订阅激活码。
4.2. Web 控制台中的订阅管理 复制链接链接已复制到粘贴板!
您可以使用 RHEL web 控制台作为本地系统上 Red Hat Subscription Manager 的图形界面。这有助于简化注册、管理和查看附加的订阅的过程。
Subscription Manager 连接到 红帽客户门户网站 并验证可用:
- 活跃的订阅
- 过期的订阅
- 续订的订阅
如果要在红帽客户门户网站上续订订阅或获得不同的订阅,您不必手动更新订阅管理器数据。
Subscription Manager 会自动与红帽客户门户网站同步数据。
4.3. 在 web 控制台中使用凭证注册订阅 复制链接链接已复制到粘贴板!
您可以在 web 控制台中使用您的红帽客户门户网站凭证注册 RHEL 系统并附加订阅。
您已安装了 RHEL 10 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
- 登录到 RHEL 10 web 控制台。
在 Overview 页面中的 Health 字段中,点击 Not registered 警告,或者点击主菜单中的 Subscriptions 进入到具有您订阅信息的页面。
- 在 Overview 字段中,点 。
- 在 Register system 对话框中,选择 Account ,以使用您的帐户凭证进行注册。
- 输入您的用户名。
- 输入您的密码。
可选:输入您的机构名称或 ID。
如果您的帐户属于红帽客户门户网站中的多个机构,您必须添加机构名称或机构 ID。要获得机构 ID,请联系您的红帽联系人。
- 如果您不想将您的系统连接到 Red Hat Lightspeed,请清除 Insights 复选框。
- 点 。
4.4. 在 web 控制台中使用激活码注册订阅 复制链接链接已复制到粘贴板!
您可以在 RHEL web 控制台中使用激活码注册新安装的 Red Hat Enterprise Linux。
先决条件
- 您的红帽产品订阅的激活码。
您已安装了 RHEL 10 web 控制台。
具体步骤请参阅安装并启用 Web 控制台。
流程
- 登录到 RHEL 10 web 控制台。
在 Overview 页面的 Health 字段中,点击 Not registered 警告,或者点击主菜单中的 Subscriptions 来进入到订阅信息页面。
.
- 在 Overview 文件中,点 。
- 在 Register system 对话框中,选择 Activation key ,以使用激活码进行注册。
- 输入您的密钥或密钥。
输入您的机构名称或 ID。
要获得机构 ID,请联系您的红帽联系点。
- 如果您不想将您的系统连接到 Red Hat Lightspeed,请清除 Insights 复选框。
- 点 。
第 5 章 在 web 控制台中管理远程系统 复制链接链接已复制到粘贴板!
您可以连接到远程系统,并在 Red Hat Enterprise Linux web 控制台中通过一个中央界面监控和管理它们。
为了安全起见,请使用以下由 Web 控制台管理的远程系统的网络设置:
- 将一个系统配置为堡垒主机。堡垒主机是一个带有打开的 HTTPS 端口的系统。
- 所有其他系统通过 SSH 进行通信。
使用在堡垒主机上运行的 Web 界面,您可以通过 SSH 协议访问所有其他系统。
5.1. 从 Web 控制台登录页面使用 SSH 连接到远程主机 复制链接链接已复制到粘贴板!
您可以直接从 RHEL web 控制台的登录页面使用 SSH 协议连接到远程系统。远程登录后,连接流量会被加密,您可以在 web 控制台的图形界面中管理远程系统。
先决条件
您已安装了 RHEL 10 web 控制台。
具体说明请参阅 安装并启用 Web 控制台。
-
cockpit-system软件包已安装在远程系统上。 -
sshd服务在远程系统上运行,且防火墙中允许相应的端口。
流程
- 打开 Web 控制台登录页面。
- 在 User name 字段中指定远程主机上的用户名。
- 单击 Other options 以显示 Connect to 文本字段。
在 Connect to 文本字段中,指定要使用 SSH 连接到的远程主机。如果没有指定任何端口,Web 控制台会尝试连接到指定远程主机上的端口 22。
- 点 Log in。
5.2. 在 web 控制台中添加远程主机 复制链接链接已复制到粘贴板!
登录到 RHEL web 控制台时,您可以通过 Overview 页面左上角的主机切换器在本地系统和多个远程主机之间切换。在将凭证添加到主机切换器后,您可以连接并管理远程系统。
先决条件
您已安装了 RHEL 10 web 控制台。
具体说明请参阅 安装并启用 Web 控制台。
流程
-
在终端中,使用您首选的文本编辑器,在
/etc/cockpit/目录中打开或创建cockpit.conf文件。 添加以下文本:
[WebService] AllowMultiHost=yes警告主机切换器已弃用并默认禁用。由于 Web 技术的限制,此功能不安全。如果您连接到不受信任的主机,则不要启用主机切换器,因为所有连接的系统可以对连接的其余部分进行任意更改。作为更安全的替代选择,您可以使用 web 控制台登录页面,在 Web 浏览器会话或 Cockpit Client Flatpak 中有一个主机的安全限制。
- 保存该文件。
重启 Web 控制台,以确保更改生效。
# systemctl try-restart cockpit在 RHEL web 控制台中,点 Overview 页面左上角的
<username>@<hostname>。
- 在下拉菜单中,单击 。
- 在 Add new host 对话框中,指定要添加的主机。
可选:为您要连接的帐户添加用户名。
您可以使用远程系统的任意用户帐户。但是,如果您使用没有管理特权的用户凭证,则无法执行管理任务。
如果您使用与本地系统上相同的凭证,Web 控制台会在您每次登录时都自动验证远程系统。
重要Web 控制台不保存用来登录到远程系统的密码。
- 可选:点击 Color 字段更改系统颜色。
- 点。
验证
-
新主机列在
<username>@<hostname>下拉菜单中。
5.3. 为新主机启用 SSH 登录 复制链接链接已复制到粘贴板!
您可以使用 RHEL web 控制台中的基于密钥的身份验证为新的远程主机启用安全 SSH 登录。
如果您的系统中已有 SSH 密钥,Web 控制台将使用现有的密钥;否则,它可以创建密钥。
先决条件
您已安装了 RHEL 10 web 控制台。
具体说明请参阅 安装并启用 Web 控制台。
您考虑到安全风险,并启用主机切换器。
如需更多信息,请参阅 将远程主机添加到 web 控制台中。
流程
- 登录到 RHEL 10 web 控制台。
在 RHEL web 控制台中,点 Overview 页面左上角的
<username>@<hostname>。
- 在下拉菜单中,单击 。
- 在 Add new host 对话框中,指定要添加的主机。如果您第一次连接到主机,您必须单击以下对话框中的 。
密码对话框因主机上 SSH 密钥文件的存在而有所不同:
- 如果您已有主机的 SSH 密钥,请选择 Authorize SSH key 选项。
- 如果您没有 SSH 密钥,请选择 Create a new SSH key and authorize it 选项。Web 控制台创建密钥。
- 添加并确认 SSH 密钥的密码。
- 点。
验证
- 注销。
- 重新登录。
- 在 Not connected to host 屏幕中点 。
- 选择 SSH 密钥 作为您的身份验证选项。
- 输入您的密钥密码。
- 点。
5.4. 在 web 控制台中为 SSH 登录配置智能卡验证 复制链接链接已复制到粘贴板!
在 RHEL web 控制台上登录到用户帐户后,您可以使用 SSH 协议连接到远程机器。您可以使用受限委托功能来使用 SSH,而无需再次进行身份验证。
在示例流程中,web 控制台会话在 myhost.idm.example.com 主机上运行,您可以配置控制台,来代表经过身份验证的用户使用 SSH 访问 remote.idm.example.com 主机。
先决条件
-
您已在
myhost.idm.example.com上获得了 IdMadmin票据授予票据(TGT)。 -
您有访问
remote.idm.example.com的root权限。 - 运行 Web 控制台的主机是 IdM 域的成员。
流程
在 Terminal 页面中,验证 web 控制台是否已在用户会话中创建了一个 User to Proxy (S4U2proxy) Kerberos 票据:
$ klist … Valid starting Expires Service principal 05/20/25 09:19:06 05/21/25 09:19:06 HTTP/myhost.idm.example.com@IDM.EXAMPLE.COM …创建委派规则可以访问的目标主机的列表:
创建服务委托目标:
$ ipa servicedelegationtarget-add cockpit-target将目标主机添加到委派目标:
$ ipa servicedelegationtarget-add-member cockpit-target \ --principals=host/remote.idm.example.com@IDM.EXAMPLE.COM
通过创建服务委派规则并将 HTTP 服务 Kerberos 主体添加到其中,来允许
cockpit会话访问目标主机列表:创建服务委派规则:
$ ipa servicedelegationrule-add cockpit-delegation将 Web 控制台客户端添加到委派规则中:
$ ipa servicedelegationrule-add-member cockpit-delegation \ --principals=HTTP/myhost.idm.example.com@IDM.EXAMPLE.COM将委派目标添加到委派规则中:
$ ipa servicedelegationrule-add-target cockpit-delegation \ --servicedelegationtargets=cockpit-target
在
remote.idm.example.com主机上启用 Kerberos 身份验证:-
以
root身份通过 SSH 连接到remote.idm.example.com。 -
将
GSSAPIAuthentication yes行添加到/etc/ssh/sshd_config文件中。
-
以
在
remote.idm.example.com上重启sshd服务,以使更改立即生效:$ systemctl try-restart sshd.service
5.5. 在 web 控制台中使用 Ansible 为 SSH 登录配置智能卡验证 复制链接链接已复制到粘贴板!
在 RHEL web 控制台上登录到用户帐户后,您可以使用 SSH 协议连接到远程机器。您可以使用 servicedelegationrule 和 servicedelegationtarget Ansible 模块为受限委托功能配置 Web 控制台,这将启用 SSH 连接,而无需再次进行身份验证。
在示例流程中,web 控制台会话在 myhost.idm.example.com 主机上运行,您可以将它配置为代表经过身份验证的用户使用 SSH 访问 remote.idm.example.com 主机。
先决条件
-
您已在
myhost.idm.example.com上获得了 IdMadmin票据授予票据(TGT)。 -
您有访问
remote.idm.example.com的root权限。 - 运行 Web 控制台的主机是 IdM 域的成员。
您已配置了 Ansible 控制节点以满足以下要求:
-
您已安装
ansible-freeipa软件包。 -
示例假设您已在
~/MyPlaybooks/目录中创建了一个具有 IdM 服务器的完全限定域名(FQDN)的 Ansible 清单文件。 示例假定
secret.ymlAnsible vault 将 admin 密码存储在ipaadmin_password变量中。如需更多信息,请参阅
和/usr/share/doc/ansible-freeipa/playbooks/servicedelegationtarget/usr/share/doc/ansible和-freeipa/playbooks/servicedelegationrule/playbooks/servicedelegationrule.mdREADME-servicedelegationtarget.md文件。
-
您已安装
-
目标节点(也就是在其上运行
ansible-freeipa模块的节点)是 IdM 域的一部分,作为 IdM 客户端、服务器或副本。
流程
进入您的
~/MyPlaybooks/目录:$ cd ~/MyPlaybooks/将敏感变量存储在加密的文件中:
创建 vault :
$ ansible-vault create secret.yml New Vault password: <vault_password> Confirm New Vault password: <vault_password>在
ansible-vault create命令打开编辑器后,以<key>: <value>格式输入敏感数据:ipaadmin_password: <admin_password>- 保存更改,并关闭编辑器。Ansible 加密 vault 中的数据。
在 Terminal 页面中,验证 web 控制台是否已在用户会话中创建了一个 User to Proxy (S4U2proxy) Kerberos 票据:
$ klist … Valid starting Expires Service principal 05/20/25 09:19:06 05/21/25 09:19:06 HTTP/myhost.idm.example.com@IDM.EXAMPLE.COM …创建包含以下内容的
web-console-smart-card-ssh.ymlplaybook:创建确保存在委派目标的任务:
--- - 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: 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 servicedelegationrule delegation-rule is present ipaservicedelegationrule: ipaadmin_password: "{{ ipaadmin_password }}" name: web-console-delegation-rule添加一项任务,该任务确保 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添加一个任务,以确保 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添加一个任务,其在
remote.idm.example.com上启用 Kerberos 身份验证:- name: Enable Kerberos authentication hosts: remote.idm.example.com vars: sshd_config: GSSAPIAuthentication: true roles: - role: rhel-system-roles.sshd
- 保存该文件。
运行 Ansible playbook。指定 playbook 文件,存储保护
secret.yml文件的密码的文件,以及清单文件:$ ansible-playbook --vault-password-file=password_file -v -i inventory web-console-smart-card-ssh.yml
第 6 章 在 IdM 域中为 RHEL web 控制台配置 SSO 身份验证 复制链接链接已复制到粘贴板!
使用身份管理(IdM)为 RHEL web 控制台配置单点登录(SSO)身份验证。启用 SSO 后,具有 Kerberos 票据的 IdM 用户可以访问 Web 控制台,而无需重新输入凭证。
您可以在 RHEL web 控制台中使用 Identity Management (IdM)提供的单点登录(SSO)身份验证来利用以下优点:
- IdM 域管理员可以使用 Web 控制台管理本地系统。
- IdM 域中具有 Kerberos 票据的用户不必提供登录凭据来访问 Web 控制台。
- IdM 域已知的所有主机均可通过 web 控制台本地实例的 SSH 访问。
- 不需要证书配置。控制台的 Web 服务器会自动切换到 IdM 证书颁发机构发布的证书,并被浏览器接受。
配置用于登录到 Web 控制台的 SSO 需要:
- 您必须使用 Web 控制台将系统添加到 IdM 域中。
- 如果要使用 Kerberos 进行身份验证,您必须在系统上获得 Kerberos 票据。
- 允许 IdM 服务器上的管理员在任何主机上使用任何命令。
6.1. 使用 web 控制台将 RHEL 系统加入到 IdM 域 复制链接链接已复制到粘贴板!
您可以在 RHEL web 控制台中将 RHEL 系统直接加入到 IdM 域中。这会将系统集成到集中式身份管理环境中,使 IdM 用户能够登录。
先决条件
- IdM 域正在运行,并可访问您想要加入的客户端。
- 您有 IdM 域管理员凭证。
您已安装了 RHEL 10 web 控制台。
具体说明请参阅 安装并启用 Web 控制台。
流程
- 登录到 RHEL 10 web 控制台。
- 在 Overview 选项卡的 Configuration 字段中点 Join Domain。
- 在 Join a Domain 对话框中,在 Domain Address 字段中输入 IdM 服务器的主机名。
- 在 Domain administrator name 字段中,输入 IdM 管理帐户的用户名。
- 在域 Domain administrator password 中添加密码。
- 点 。
验证
- 如果 RHEL 10 web 控制台没有显示错误,则系统加入到 IdM 域,您可以在 System 屏幕中看到域名。
要验证该用户是否为域的成员,请点击 Terminal 页面并输入
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
6.2. 使用 Kerberos 身份验证登录到 web 控制台 复制链接链接已复制到粘贴板!
您可以使用 Kerberos 身份验证登录到 RHEL web 控制台。如果您已经有来自 IdM 域的有效的 Kerberos 票据,您可以在不重新输入您的密码的情况下访问控制台。
使用 SSO ,您通常在 Web 控制台中没有任何管理特权。这只有在您配置免密码 sudo 时有效。Web 控制台不会以交互方式提示输入 sudo 密码。
先决条件
IdM 域在您的公司环境中运行并可访问。
详情请参阅 使用 web 控制台将 RHEL 系统加入到 IdM 域。
您已安装了 RHEL 10 web 控制台。
具体说明请参阅 安装并启用 Web 控制台。
-
如果系统没有使用 SSSD 客户端管理的 Kerberos 票据,请使用
kinit工具手动请求票据。
流程
通过在网页浏览器中输入以下 URL 登录到 RHEL web 控制台:
https://<dns_name>:9090
第 7 章 使用 Web 控制台为集中管理的用户配置智能卡验证 复制链接链接已复制到粘贴板!
为 RHEL web 控制台中的集中管理用户配置智能卡验证。这种安全措施有助于为管理和常规用户提供物理访问控制。
您可以在 RHEL web 控制台中为集中管理的用户配置智能卡验证:
- 身份管理
- Active Directory,它在 Identity Management 的跨林信任中连接
7.1. 先决条件 复制链接链接已复制到粘贴板!
您要使用智能卡验证的系统必须是 Active Directory 或 Identity Management 域的成员。
有关使用 Web 控制台将 RHEL 系统加入到域中的详情,请参阅使用 web 控制台将 RHEL 系统加入到 IdM 域中。
用于智能卡验证的证书必须与身份管理或 Active Directory 中的特定用户关联。
有关在 Identity Management 中将证书与用户关联的详情,请参阅在 IdM Web UI 中的用户条目中添加证书,或将证书添加到 IdM CLI 中的用户条目中。
7.2. 用于集中管理的用户的智能卡验证 复制链接链接已复制到粘贴板!
使用智能卡验证为集中管理的用户提供强大的身份验证。此方法将用户帐户链接到物理凭据,从而增强身份管理域中的系统的安全性。
智能卡是一个物理设备,它可以使用保存在卡中的证书来提供个人验证。个人验证意味着,您可以象使用用户密码一样使用智能卡。
您可以使用私钥和证书的形式在智能卡中保存用户凭证。特殊的软件和硬件可用于访问它们。您可以将智能卡插入到读取器或者 USB 套接字中,并为智能卡提供 PIN 代码,而不是提供密码。
身份管理(IdM)支持带有以下证书的智能卡验证:
Active Directory 证书服务(ADCS)证书颁发机构发布的用户证书。
详情请查看 为 IdM 中的智能卡身份验证配置 ADCS 发布的证书。
如果要开始使用智能卡验证,请参阅RHEL8+ 中的硬件要求:智能卡支持。
7.3. 为 Web 控制台启用智能卡验证 复制链接链接已复制到粘贴板!
为 RHEL web 控制台启用智能卡验证。这可让集中管理的用户使用其智能卡凭证和 IdM 域策略安全地登录。
要在 web 控制台中使用智能卡验证,请在 cockpit.conf 文件中启用此身份验证方法。另外,您还可以在同一文件中禁用密码验证。
先决条件
您已安装了 RHEL 10 web 控制台。
具体说明请参阅 安装并启用 Web 控制台。
流程
- 登录到 RHEL 10 web 控制台。
- 点 Terminal。
在
/etc/cockpit/cockpit.conf中,将ClientCertAuthentication设置为yes:[WebService] ClientCertAuthentication = yes可选:使用以下内容在
cockpit.conf中禁用基于密码的身份验证:[Basic] action = none这个配置禁用了密码验证,且必须总是使用智能卡。
重启 Web 控制台,以确保
cockpit.service接受更改:# systemctl restart cockpit
7.4. 使用智能卡登录到 web 控制台 复制链接链接已复制到粘贴板!
您可以使用智能卡凭证登录到 RHEL web 控制台。这使用配置的智能卡策略通过集中管理的用户进行安全访问。
先决条件
- 保存在智能卡中的有效证书,该证书与 Active Directory 或 Identity Management 域中创建的用户帐户关联。
- PIN 用于解锁智能卡。
- 已经将智能卡放入读卡器。
您已安装了 RHEL 10 web 控制台。
具体说明请参阅 安装并启用 Web 控制台。
流程
登录到 RHEL 10 web 控制台。
浏览器要求您添加 PIN 保护保存在智能卡中的证书。
- 在 Password Required 对话框中,输入 PIN 并点 OK。
- 在 User Identification Request 对话框中,选择保存在智能卡中的证书。
选择 Remember this decision。
系统下次打开这个窗口。
注意此步骤不适用于 Google Chrome 用户。
点击 OK。
您现在已连接,Web 控制台会显示其内容。
7.5. 为智能卡用户启用免密码 sudo 身份验证 复制链接链接已复制到粘贴板!
您可以为智能卡用户启用免密码 sudo 身份验证。这可让用户在不输入密码的情况下执行管理任务,进一步提高操作效率和安全性。
另外,如果使用 RHEL 身份管理,您可以将初始 Web 控制台证书声明为使用 sudo、SSH 或者其他服务进行身份验证。为此,Web 控制台会在用户会话中自动创建 S4U2Proxy Kerberos ticket。
在以下示例中,Web 控制台会话在 host.example.com 上运行,并被信任,以通过 sudo 访问自己的主机。此外,示例步骤添加第二个可信主机 - remote.example.com。
先决条件
- 身份管理已安装。
- Active Directory 在身份管理的跨林信任中连接。
- 您的智能卡已设置为登录到 web 控制台。如需更多信息 ,请参阅使用 Web 控制台配置智能卡验证。
流程
设置约束委派规则,以列出托管票据可以访问哪些主机。
创建以下示例委派:
输入以下命令添加特定规则可以访问的目标机器列表:
# 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要启用 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
在对应服务中启用 GSS 身份验证:
对于
sudo,在/etc/sssd/sssd.conf文件中启用pam_sss_gss模块:以
root用户身份,将域的条目添加到/etc/sssd/sssd.conf配置文件中。[domain/example.com] pam_gssapi_services = sudo, sudo-i在第一行启用
/etc/pam.d/sudo文件中的模块。auth sufficient pam_sss_gss.so
对于 SSH,将
/etc/ssh/sshd_config文件中的GSSAPIAuthentication选项更新为yes。警告从 Web 控制台连接到远程 SSH 主机时,委派的 S4U 票据不会被转发到远程 SSH 主机。使用您的票据在远程主机上向
sudo进行身份验证将无法正常工作。
验证
- 使用智能卡登录到 web 控制台。
- 点 Limited access 按钮。
- 使用您的智能卡进行验证。
- 或者:尝试使用 SSH 连接到其他主机。
7.6. 限制用户会话和内存以防止 DoS 攻击 复制链接链接已复制到粘贴板!
通过更改对应的 systemd 配置来限制 Web 控制台服务的用户会话和内存消耗。这个措施有助于降低 cockpit-ws Web 服务器上的拒绝服务(DoS)攻击的风险。
证书验证被分离和隔离 cockpit-ws Web 服务器的实例保护,使其免受要模拟其他用户的攻击者的攻击。但是,这可能会引入潜在的 DoS 攻击:远程攻击者可以创建大量证书,并将大量 HTTPS 请求发送到 cockpit-ws 各自使用不同的证书。
为防止此类 DoS 攻击,这些 Web 服务器实例的集体资源是有限的。默认情况下,对连接和内存用量的限制被设置为 200 个线程,75 % 设为软限制或 90 % 作为硬限制。
示例流程通过限制连接数量和分配内存量来演示资源保护。
流程
在终端中,打开
system-cockpithttps.slice配置文件:# systemctl edit system-cockpithttps.slice将
TasksMax限制为 100,将CPUQuota限制为 30% :[Slice] # change existing value TasksMax=100 # add new restriction CPUQuota=30%要应用这些更改,请重启系统:
# systemctl daemon-reload # systemctl stop cockpit
第 8 章 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