天天看點

jboss安全配置參考0x01 賬号密碼0x03 服務0x04 其他事項

0x01 賬号密碼

1   jmx-console 

    預設情況通路 http://ip:port/jmx-console 需要輸入使用者名和密碼。設定使用者名密碼限制賬号,并進行加密存儲。jboss 6.0 之前的版本 JMX 控制台的配置檔案位置為:server/$config/deploy/jmx-console.war/WEB-INF/,jboss 6.0 及以上、7.0 以前的版本,JMX 控制台的配置檔案位置為:common/deploy/jmx-console.war/WEB-INF/

①建議配置1

1)修改 Jboss 目錄下server/$config/deploy/jmx-console.war/WEB-INF/jboss-web.xml , 去 掉<security-domain>節點的注釋。 其中$config 表示使用者目前使用的 JBoss伺服器配置路徑。修改 jboss-web.xml 同級目錄下的 web.xml 檔案,去掉 < security-constraint>節

點的注釋,在這裡可以看到為登入配置了角色 JBossAdmin

2)jmx-console 的安全域和運作角色 JBossAdmin 都是在 login-config.xml 中配 置 , 在 Jboss 的 安 裝 目 錄 server/$CONFIG/config 下 找 到 。 在login-config.xml 中查找 jmx-console 的 application-policy 可以看到登入的角色 、 用 戶 等 信 息 分 别 在 server/$config/config/props 的jmx-console-roles.properties 和 jmx-console-users.properties 檔案中配置

②建議配置2

如無需jmx-console服務,可以删除相關檔案。如:jboss 6.0 之前的版本 JMX 控制台的配置檔案位置為:server/$config/deploy/jmx-console.war/WEB-INF/,jboss 6.0 及以上、7.0 以前的版本,JMX 控制台的配置檔案位置為:common/deploy/jmx-console.war/WEB-INF/

③補充操作說明

1)jmx-console-users.properties 檔案中定義了一個使用者名為 admin,的使用者。

2)jmx-console-roles.properties 檔案中預設為 admin 使用者,定義了

JBossAdmin 和 HttpInvoker 這兩個角色。

3)需要重新開機 JBoss

2  web-console 

      不需要輸入使用者名和密碼存在安全隐患。設定使用者名密碼限制賬号,并進行加密存儲。

①建議配置1

     修改 Jboss 目錄下server/$CONFIG/deploy/jmx-console.war/WEB-INF/jboss-web.xml , 去 掉<security-domain>節點的注釋。 其中$CONFIG 表示使用者目前使用的 JBoss伺服器配置路徑。修改 jboss-web.xml 同級目錄下的 web.xml 檔案,去掉 < security-constraint>節點的注釋,在這裡可以看到為登入配置了角色 JBossAdmin

2)jmx-console 的安全域和運作角色 JBossAdmin 都是在 login-config.xml 中配 置 , 在 Jboss 的 安 裝 目 錄 server/$CONFIG/config 下 找 到 。 在login-config.xml 中查找 jmx-console 的 application-policy 可以看到登入的角色 、 用 戶 等 信 息 分 别 在server/$CONFIG/config/props 的jmx-console-roles.properties 和 jmx-console-users.properties 檔案中配置

②建議配置2

如無需jmx-console服務,可以删除相關檔案。Jboss 目錄下server/$CONFIG/deploy/jmx-console.war/WEB-INF/jboss-web.xml ,

② 補充操作說明

1)jmx-console-users.properties 檔案中定義了一個使用者名為 admin,的使用者。

2)jmx-console-roles.properties 檔案中預設為 admin 使用者,定義了JBossAdmin 和 HttpInvoker 這兩個角色。

3)需要重新開機 JBoss

3  Webservice 

      設定 webservice 控台使用者名和密碼進行保護。預設通路不需要輸入使用者名和密碼。

① 啟用密碼保護

       先修改配置檔案server/$CONFIG/deploy/jbossws-console.war/WEB-INF/web.xml,将<security-constraint> </security-constraint>部分的注釋取消然後修改配置檔案server/$CONFIG/deploy/jbossws-console.war/WEB-INF/jboss-web.xml,将<security-domain> </security-domain>部分的注釋取消

2)設定複雜密碼

     為 jbossws 設定複雜的密碼,修改配置檔案server/$CONFIG/conf/props/jbossws-users.properties将其中 kermit=thefrog 修改為 kermit=複雜的密碼

② 備注事項

1)密碼長度至少 8 位,并包括數字、小寫字母、大寫字母和特殊符号 4 類中至少 3 類。

2)需要重新開機 JBoss

4  Admin-console 

      設定 admin-console 接口使用者名和密碼進行保護。預設使用者名和密碼為admin/admin.

①  建議配置

修改$CONFIG/configuration/mgmt-users.properties 檔案,将密碼設定為複雜的密碼。

② 備注事項

1)對于 JBoss 7.0 版本,可以直接檢查下列檔案中的明文密碼:$CONFIG/configuration/mgmt-users.properties

2)密碼長度至少 8 位,并包括數字、小寫字母、大寫字母和特殊符号 4 類中至少 3 類。

5  資料庫連接配接使用者和密碼保護

①  建議配置

1)在${jboss}/server/${server}/deploy/oracle-ds.xml配置檔案中設定oracle密碼<security-domain>EncryptDBPassword</security-domain>

2)在${jboss}/server/${server}/conf/login-config.xml配置檔案中設定JNDI加密

<application-policy name="testDataSource"> --testDataSource 是連接配接池的名稱

<authentication>

<login-module

code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required">

<module-option name=“username”>apps</module-option> -- 使用者名

<module-option name="password">3fb2b2b29f74131a</module-option>

--加密後的密碼

<module-option name="managedConnectionFactoryName">

jboss.jca:service=LocalTxCM,name=testDataSource

</module-option>

</login-module>

</authentication>

</application-policy>

② 備注事項

密碼長度至少 8 位,并包括數字、小寫字母、大寫字母和特殊符号 4 類中至少 3 類。

6  服務賬号管理

     禁用超級使用者啟動 JBoss。

①  建議配置

Unix 系統:

(1) 建立 jboss 組:groupadd Jboss

(2) 建立 jboss 使用者并加入 jboss 組:useradd Jboss –g Jboss

(3) 以 Jboss 身份啟動服務

Windows 系統:

(1) 建立一個 Jboss 使用者

(2) 設定 Jboss 使用者對 Jboss_home 的相關權限

(3) 在服務管理器 (service.msc) 中找到 Jboss 服務,右鍵選擇屬性,設定登

錄身份為 Jboss 使用者

0x02 日志安全

   裝置應配置日志功能,對使用者登入進行記錄,記錄内容包括使用者登入使用的賬号,登入是否成功,登入時間,使用的 IP 位址。

① 建議配置

編輯 server/$CONFIG/conf/ log4j.xml 配置檔案,

<appender name="FILE-0"

class="org.jboss.logging.appender.DailyRollingFileAppender">

<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>

<param name="File" value="${jboss.server.log.dir}/server.log"/>

<param name="Append" value="true"/>

<param name="Threshold" value="ERROR"/>

<param name="DatePattern" value="'.'yyyy-MM-dd_HH"/>

<layout class="org.apache.log4j.PatternLayout">

<param  name="ConversionPattern"  value="%d  %-5p  [%t]

7

[%c{1}] %l %m%n"/>

</layout>

</appender>

② 備注事項

Threshold 是個全局的過濾器,它将把低于所設定的 level 的資訊過濾不顯示出來,優先級由高到低分為 OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL參數都以%開始後面不同的參數代表不同的格式化資訊(參數按字母表順序

列出):

%c 輸出所屬類的全名,可修改為 %C{Num} ,Num 類名輸出的圍 如:"org.apache.elathen.ClassName",%C{2}将輸出 elathen.ClassName

% 輸出日志時間其格式為 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式如 %d{HH:mm:ss}

%l 輸出日志事件發生位置,包括類目名、發生線程,在代碼中的行數

%n 換行符

%m 輸出代碼指定資訊,如 info(“message”),輸出 message

%p 輸出優先級,即 FATAL ,ERROR 等

%r 輸出從啟動到顯示該 log 資訊所耗費的毫秒數

%t 輸出産生該日志事件的線程名

0x03 服務

1 HTTPS協定

① 建議配置

(1)使用 JDK 自帶的 keytool 工具生成一個證書

JAVA_HOME/bin/keytool -genkey –alias tomcat –keyalg RSA

-keystore /path/to/my/keystore

(2)修改 server/$CONFIG/deploy/jbossweb-tomcat55.sar/conf/server.xml 配置檔案,更改為使用 https 方式,增加如下行:

Connector classname=”org.apache.catalina.http.HttpConnector”

port=”8443” minProcessors=”5” maxprocessors=”100”

enableLookups=”true” acceptCount=”10” debug=”0”

scheme=”https” secure=”true” >

Factory classname=”org.apache.catalina.SSLServerSocketFactory”

clientAuth=”false”

keystoreFile=”/path/to/my/keystore” keystorePass=”runway”

protocol=”TLS”/>

/Connector>

其中 keystorePass 的值為生成 keystore 時輸入的密碼

(3)重新啟動 Jboss 服務

2  更改預設端口

① 建議配置

(1)修改 server/$CONFIG/deploy/jbossweb-tomat55.sar/server.xml 配置檔案,更改預設管理端口到 8100

<Connector port="8100" address="${jboss.bind.address}"

maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"

emptySessionPath="true"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="1800"

disableUploadTimeout="true" URIEncoding="utf-8"/>

(2)重新開機 JBOSS 服務

② 備注事項

Jboss 預設端口是 8080,通常占用的端口是 1098,1099,4444,4445,8080,8009,8083,8093

在 windows 系統中: 1098、1099、4444、4445、8083 端口在/server/ehr_jsprd

/conf/jboss-service.xml 中

8080 端口在/server/ ehr_jsprd /deploy/jboss-web.deployer/server.xml 中

8093 端口在/server/ ehr_jsprd /deploy/jms/uil2-service.xml 中。

3  定時退出

① 建議配置

編輯 server/$CONFIG/deploy/jbossweb-tomat55.sar/server.xml 配置檔案,修改為 2000 秒

<Connector port="8100" address="${jboss.bind.address}"

maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"

emptySessionPath="true"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="300"

disableUploadTimeout="true" URIEncoding="utf-8"/>

② 備注事項

設定時間為30 分鐘,即 3000 秒。

4  狀态頁面管理

删除或屏蔽狀态頁面,防止伺服器資訊洩露

① 建議配置

方法一:删除背景頁面

      如果不需要使用背景頁面,在将 server/$CONFIG/deploy/ROOT.war 檔案夾下的所有檔案備份到其它位置後删除檔案夾下的所有檔案。

方法二:修改配置檔案

修改配置檔案 server/$CONFIG/deploy/ROOT.war/WEB-INF/web.xml,将以下部分注釋掉

<servlet>

<servlet-name>Status Servlet</servlet-name>

<servlet-class>org.jboss.web.tomcat.service.StatusServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>Status Servlet</servlet-name>

<url-pattern>/status</url-pattern>

</servlet-mapping>

② 備注事項

需重新啟動 Jboss 服務

5  錯誤頁面重定向

Jboss 錯誤頁面重定向

① 建議配置

(1)編輯 server/$CONFIGdeploy/jbossweb-tomcat55.sar/conf 檔案:

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

(2)重新啟動 Jboss 服務

0x04 其他事項

1 認證授權與使用者權限

     在裝置權限配置能力内,根據使用者的業務需要,配置其所需的最小權限。

① 建議配置

編輯 /server/default/config/login-config.xml 配置檔案,修改使用者角色權限

<application-policy name = "jmx-console">

<authentication>

<login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"

flag = "required">

<module-option

name="usersProperties">props/jmx-console-users.properties</module-option>

<module-option

name="rolesProperties">props/jmx-console-roles.properties</module-option>

</login-module>

</authentication>

</application-policy>

2 、備注事項

jmx-console 角色浏覽 jboss 的部署管理資訊。 Web-console 角色進行監控

2 禁止目錄列出

① 建議配置

(1) 編輯 deploy/jbossweb-tomcat55.sar/conf 配置檔案,

<init-param>

<param-name>listings</param-name>

<param-value>true</param-value>

</init-param>

把 true 改成 false

(2)重新啟動 Jboss 服務

歡迎大家分享更好的思路,熱切期待^^_^^ !

繼續閱讀