搜索

第 3 章 基本安全性

download PDF

本章论述了在第一次引导前配置安全性的基本步骤。默认情况下,ESB 是安全的,但其任何服务都不能被远程访问。本章论述了如何启用对通过 Karaf 公开的端口的安全访问。

3.1. 配置基本安全性

3.1.1. 概述

Apache Karaf 运行时默认对网络攻击进行保护,因为所有公开的端口都需要用户身份验证,而且最初没有定义用户。换句话说,默认情况下可以远程访问 Apache Karaf 运行时。

如果要远程访问运行时,您必须首先自定义安全配置,如下所述。

3.1.2. 在启动容器前

如果要启用到 Karaf 容器的远程访问,您必须在启动容器前创建 secure JAAS 用户:

3.1.3. 创建安全 JAAS 用户

默认情况下,容器没有定义 JAAS 用户,这可有效禁用远程访问(无法登录)。

要创建安全 JAAS 用户,请编辑 InstallDir/etc/users.properties 文件并添加一个新用户字段,如下所示:

Username=Password,admin

其中 UsernamePassword 是新用户凭证。admin 角色授予该用户访问容器的所有管理和管理功能的特权。

不要用前导零定义数字用户名。此类用户名始终会导致登录尝试失败。这是因为 console 使用的 Karaf shell,当输入显示为数字时,丢弃前导零。例如:

karaf@root> echo 0123
123
karaf@root> echo 00.123
0.123
karaf@root>
警告

强烈建议您使用强大密码定义自定义用户凭证。

3.1.4. 基于角色的访问控制

Karaf 容器支持基于角色的访问权限控制,该控制通过 JMX 协议、XDP 命令控制台和 Fuse 管理控制台进行监管。为用户分配角色时,您可以从标准角色集合中选择,它提供了 表 3.1 “访问控制的标准角色” 中描述的访问级别。

表 3.1. 访问控制的标准角色
角色描述

Viewer

授予容器的只读权限。

Manager

授予在适当级别上对普通用户(希望部署和运行应用程序)的读写访问权限。但阻止对敏感容器配置设置的访问。

admin

授予容器的不受限制的访问权限。

ssh

通过 SSH 端口授予对远程控制台访问权限的权限。

有关 基于角色的访问控制 的详情,请参阅基于角色的访问控制。

3.1.5. Apache Karaf 容器公开的端口

容器公开以下端口:

  • 通过 Apache Karaf shell 命令,控制台端口 >_<-admission-enables 对容器实例的远程控制。此端口默认为启用,并且由 JAAS 身份验证和 SSH 保护。
  • JMX 端口 abrt-enables 通过 JMX 协议管理容器。此端口默认为启用,并由 JAAS 身份验证进行保护。
  • Web 控制台端口 & gt;_<-abrtprovides 对可托管 Web 控制台 servlets 的嵌入式 Undertow 容器的访问。默认情况下,Fuse 控制台安装在 Undertow 容器中。

3.1.6. 启用远程控制台端口

您可以同时满足以下条件时访问远程控制台端口:

  • JAAS 配置至少有一组登录凭据。
  • PackageKit 运行时 还没有 以客户端模式启动(客户端模式可完全禁用远程控制台端口)。

例如,要从运行容器的同一机器中登录到远程控制台端口,请输入以下命令:

./client -u Username -p Password

其中,UsernamePassword 是带有 ssh 角色的 JAAS 用户的凭据。通过远程端口访问 Karaf 控制台时,您的权限取决于在 etc/users.properties 文件中分配给用户的角色。如果要访问一组完整的控制台命令,用户帐户必须具有 admin 角色。

3.1.7. 加强远程控制台端口的安全性

您可以使用以下措施加强远程控制台端口的安全性:

  • 确保 JAAS 用户凭据具有强大的密码。
  • 自定义 X.509 证书(将 Java 密钥存储文件 替换为自定义密钥对 InstallDir/etc/host.key )。

3.1.8. 启用 JMX 端口

默认情况下启用 JMX 端口,并通过 JAAS 身份验证进行保护。若要访问 JMX 端口,您必须至少有一个登录凭证配置有一组登录凭证。要连接到 JMX 端口,请打开 JMX 客户端(例如,jconsole)并连接到以下 JMX URI:

service:jmx:rmi:///jndi/rmi://localhost:1099/karaf-root

您还必须向 JMX 客户端提供有效的 JAAS 凭据,才能进行连接。

注意

通常,JMX URI 的尾部的格式为 /karaf-ContainerName。如果将容器名称从 root 更改为其他名称,您必须相应地修改 JMX URI。

3.1.9. 加强 Fuse 控制台端口的安全性

Fuse 控制台已经由 JAAS 身份验证进行保护。要添加 SSL 安全性,请参阅 保护 Undertow HTTP 服务器

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.