首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Windows 下 JBoss 管理控制台 (jmx-console / web-console) 安全配置詳解

     編輯:Java 相關知識

預設風險

JBoss 預設 https://localhost:8080/jmx-console 與 /web-console 無需認證即可存取,生產環境嚴重風險。

一、jmx-console 加密

1. 啟用安全域

編輯 server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml,取消註解:

<jboss-web>
  <security-domain>java:/jaas/jmx-console</security-domain>
</jboss-web>

2. 宣告受保護資源與角色

同目錄 web.xml:

<security-constraint>
  <web-resource-collection>
    <web-resource-name>HtmlAdaptor</web-resource-name>
    <url-pattern>/*</url-pattern>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
  </web-resource-collection>
  <auth-constraint>
    <role-name>JBossAdmin</role-name>
  </auth-constraint>
</security-constraint>

<login-config>
  <auth-method>BASIC</auth-method>
  <realm-name>JBoss JMX Console</realm-name>
</login-config>

<security-role>
  <role-name>JBossAdmin</role-name>
</security-role>

3. 定義用戶/角色映射

server/default/conf/login-config.xml 中的 application-policy name="jmx-console" 指向:

  • props/jmx-console-users.properties:username=password
  • props/jmx-console-roles.properties:username=role1,role2

修改範例:

# jmx-console-users.properties
admin=StrongP@ssw0rd
monitor=MonitorPass

# jmx-console-roles.properties
admin=JBossAdmin,HttpInvoker
monitor=JBossMonitor

重啟 JBoss,訪問 /jmx-console 即彈出 BASIC 認證對話框。

二、web-console 加密(步驟雷同)

  1. server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF/jboss-web.xml 啟用 security-domain>java:/jaas/web-console。
  2. 同目錄 web.xml 加入相同 security-constraint、login-config(角色同用 JBossAdmin)。
  3. login-config.xml 找 application-policy name="web-console",指向 web-console-users.properties / web-console-roles.properties,編輯用戶密碼。

進階:改用 Digest / Form 認證

login-config 的 auth-method 可改為:

  • DIGEST:密碼不以明文傳輸,需用戶端支援。
  • FORM:自訂 login.jsp / login-error.jsp,體驗較好。

範例(FORM):

<login-config>
  <auth-method>FORM</auth-method>
  <realm-name>JBoss Admin</realm-name>
  <form-login-config>
    <form-login-page>/login.html</form-login-page>
    <form-error-page>/login-error.html</form-error-page>
  </form-login-config>
</login-config>

生產環境建議

  • 將管理控制台綁定至內網 IP(-b 192.168.x.x),禁止公網直連。
  • 配合防火牆僅允許跳板機/堡壘機存取 8080/9990 管理埠。
  • 定期輪換密碼,審計 jmx-console-users.properties 變更記錄。
  • JBoss EAP 6/7 (WildFly) 已改用 management-native 介面 (9990/9993) 與 ApplicationRealm,配置方式不同,請參考新版文件。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved