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 服務
歡迎大家分享更好的思路,熱切期待^^_^^ !