24.2.7. 保护集群
要安全运行集群,需要解决几个问题:
- 防止未经授权的节点加入集群。这可以通过需要身份验证来解决。
- 防止非成员与群集成员通信.这可以通过加密消息来解决。
24.2.7.1. 配置身份验证 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
JGroups 身份验证由 AUTH 协议执行。目的是确保只有经过身份验证的节点才能加入群集。
在适用的服务器配置文件中,使用适当的属性设置添加 AUTH 协议。AUTH 协议应该在 pbcast.GMS 协议之前配置。
以下示例演示了如何将 AUTH 与不同类型的授权令牌搭配使用。
带有简单令牌的AUTH
带有 Digest Algorithm 令牌的 AUTH
此格式可与任何摘要算法一起使用,如 MD5 或 SHA-2。JBoss EAP 7.3 的默认摘要算法是 SHA-256,JVM 支持最强大的摘要算法。很多 JVM 还将实施 SHA-512。
带有 X509 令牌的 AUTH
本例在 elytron 子系统中创建新的密钥存储,并在 JGroups AUTH 配置中引用它。
创建密钥存储:
keytool -genkeypair -alias jgroups_key -keypass my_password -storepass my_password -storetype jks -keystore jgroups.keystore -keyalg RSA
$ keytool -genkeypair -alias jgroups_key -keypass my_password -storepass my_password -storetype jks -keystore jgroups.keystore -keyalg RSACopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用管理 CLI 将密钥存储添加到
elytron子系统:/subsystem=elytron/key-store=jgroups-token-store:add(type=jks,path=/path/to/jgroups.keystore,credential-reference={clear-text=my_password}, required=true)/subsystem=elytron/key-store=jgroups-token-store:add(type=jks,path=/path/to/jgroups.keystore,credential-reference={clear-text=my_password}, required=true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 JGroups 堆栈定义中,将
AUTH配置为使用密钥存储:Copy to Clipboard Copied! Toggle word wrap Toggle overflow