Jboss 安全和優化

Jboss 安全和優化

一.        Jboss後臺啓動:
添加後臺修改命令:
vi run.sh
while true; do
   if [ "x$LAUNCH_JBOSS_IN_BACKGROUND" = "x" ]; then
      # Execute the JVM in the foreground
     nohup  "$JAVA" $JAVA_OPTS \
         -Djava.endorsed.dirs="$JBOSS_ENDORSED_DIRS" \
         -classpath "$JBOSS_CLASSPATH" \
         org.jboss.Main "$@"
      JBOSS_STATUS=$?
   else
      # Execute the JVM in the background
      "$JAVA" $JAVA_OPTS \
         -Djava.endorsed.dirs="$JBOSS_ENDORSED_DIRS" \
         -classpath "$JBOSS_CLASSPATH" \
         org.jboss.Main "$@" &
      JBOSS_PID=$!
      # Trap common signals and relay them to the jboss process
      trap "kill -HUP  $JBOSS_PID" HUP
      trap "kill -TERM $JBOSS_PID" INT
      trap "kill -QUIT $JBOSS_PID" QUIT
      trap "kill -PIPE $JBOSS_PID" PIPE
      trap "kill -TERM $JBOSS_PID" TERM
      # Wait until the background process exits
      WAIT_STATUS=0
      while [ "$WAIT_STATUS" -ne 127 ]; do
         JBOSS_STATUS=$WAIT_STATUS
         wait $JBOSS_PID 2>/dev/null
         WAIT_STATUS=$?
      done
   fi
   # If restart doesn't work, check you are running JBossAS 4.0.4+
   #    http://jira.jboss.com/jira/browse/JBAS-2483
   # or the following if you're running Red Hat 7.0
   #    http://developer.java.sun.com/developer/bugParade/bugs/4465334.html   
   if [ $JBOSS_STATUS -eq 10 ]; then
      echo "Restarting JBoss..."
   else
      exit $JBOSS_STATUS
   fi
done &
二.        Jboss內存優化:
修改這個兩參數,給jvm分配適當的內存,一般爲服務器的3/4內存量,推薦至少使用4G內存。
另外添加兩個參數 -XX:+UseParallelGC -XX:+UseParallelOldGC 這兩個讓服務並行回收內存空間。修改完成後,大致爲 JAVA_OPTS = “-Xms4096m -Xmx8192m -XX:+UseParallelGC -XX:+UseParallelOldGC -Dsum……
三.        Jboss日誌輸出模式
[root@190MEM conf]# pwd
/usr/local/jboss/server/default/conf
[root@190MEM conf]# vi jboss-log4j.xml
   <appender name="FILE" 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="false"/>
      <param name="Threshold" value="ERROR"/>
四.        Jboss數據庫連接池優化
修改數據庫連接池:
<datasources>
  <local-tx-datasource>
    <jndi-name>training_master_db</jndi-name>    <connection-url>jdbc:mysql://211.100.192.128:3306/dts?useUnicode=true&characterEncoding=UTF-8</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password></password>
        <min-pool-size>100</min-pool-size>
        <max-pool-size>500</max-pool-size>    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
五.        Jboss部署目錄優化:
     去掉和應用無關的部署,加快jboss運行速度
bsh-deployer.xml 
client-deployer-service.xml  
ear-deployer.xml
ejb-deployer.xml 
http-invoker.sar 
jboss-bean.deployer 
jboss-ws4ee.sar
jms 
jsr88-service.xml   
schedule-manager-service.xml
scheduler-service.xml
sqlexception-service.xml
uuid-key-generator.sar
六.        Jboss應用安全加固:
去掉:
Tomcat status (full) (XML) 
JMX Console 
JBoss Web Console
刪除deploy下的jmx-console.war/ management/
[root@190MEM deploy]# pwd
/usr/local/jboss/server/default/deploy
[root@190MEM deploy]# ls jmx-console.war/ management/
jmx-console.war/:
checkJNDI.jsp  displayMBeans.jsp    images     inspectMBean.jsp  META-INF          WEB-INF
cluster        displayOpResult.jsp  index.jsp  jboss.css         style_master.css

management/:
console-mgr.sar

 

一、 前言: 
Jboss默認安裝以後,會默認打開http://127.0.0.1,顯示如下: 
JBoss Online Resources 
• JBoss 4.0 documentation 
• JBoss Wiki 
• JBoss forums 
JBoss Management 
• Tomcat status (full) (XML) 
• JMX Console 
• JBoss Web Console 
Jmx Console和Jboss Web Console 裏面可以修改和刪除應用的參數,如果不加強安全設置,將會帶來嚴重安全後果。 
二、 關閉管理端口和相關統計信息: 
1、 關閉jmx-console: 
刪除 
/export/home/jboss-4.0.3SP1/server/default/deploy下目錄jmx-console.war、management 
2、 關閉web-console: 
刪除 
/export/home/jboss-4.0.3SP1/server/default/deploy/jbossweb-tomcat55.sar下目錄ROOT.war 
3、 關閉status統計信息: 
修改/export/home/jboss-4.0.3SP1/server/default/deploy/ROOT.war/WEB-INF/web.xml 
屏蔽其中jboss的內容:粗體爲添加屏蔽符號: 
  <!--display-name>Welcome to JBoss </display-name> 
  <description> 
    Welcome to JBoss 
  </description> 
  <servlet> 
    <servlet-name>Status Servlet </servlet-name> 
    <servlet-class>org.jboss.web.tomcat.tc5.StatusServlet </servlet-class> 
  </servlet--> 

  <!--servlet-mapping> 
    <servlet-name>Status Servlet </servlet-name> 
    <url-pattern>/status </url-pattern> 
  </servlet-mapping--> 
4、 刪除jboss主頁相目錄和文件: 
/export/home/jboss-4.0.3SP1/server/default/deploy/ROOT.war下:Manager/favicon.ico/jboss.css/jbossindex.html/logo.gif 

lion:/export/home/jboss-4.0.3SP1/server/default/deploy/ROOT.war # rm -rf manager favicon.ico jboss.css jbossindex.html logo.gif 
5、 備註: 
三、 關閉完成測試: 
1、 http://127.0.0.1/jmx-console 
2、 http://127.0.0.1/web-console 
3、 http://127.0.0.1/jbossindex.html 
4、 http://127.0.0.1/status 
5、 測試結果: 
測試人 時間 
服務器 jmx-console web-console status jbossindex.html 測試

 

 

 

jboss默認配置了以下服務:
•  JMX Console 
•  JBoss Web Console 
爲了安全起見,需要用戶通過授權進行訪問。
一、JMX安全配置
STEP 1:
    找到%JBOSS_HOME%/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml文件,根據說明,去掉註釋。

 

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


STEP 2:
    與jboss-web.xml同級目錄下還有一個文件web.xml,找到其中的節點,根據說明,取消註釋。

<security-constraint>   
     <web-resource-collection>   
       <web-resource-name>HtmlAdaptor</web-resource-name>   
       <description>An example security config that only allows users with the    
         role JBossAdmin to access the HTML JMX console web application    
       </description>   
       <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>   


STEP 3:
    在第一步中的jmx-console安全域和第二步中的運行角色JBossAdmin都是在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>   


文件props/jmx-console-users.properties定義了用戶名、密碼;props/jmx-console-roles.properties定義了用戶所屬角色

注:
jmx-console-users.properties 格式是:用戶名=密碼明文
jmx-console-roles.properties 格式是:用戶名=角色1,角色2,角色3

二、WEB-CONSOLE的安全配置
STEP 1:
找到%JBOSS_HOME%/server/default/deploy/ management/console-mgr.sar/web-console.war/WEB-INF/jboss-web.xml文件,根據說明,去掉註釋。

<jboss-web>   
   <depends>jboss.admin:service=PluginManager</depends>   
</jboss-web> 

 


STEP 2:
與jboss-web.xml同級目錄下還有一個文件web.xml,找到其中的節點,根據說明,取消註釋。

<security-constraint>   
   <web-resource-collection>   
   <web-resource-name>HtmlAdaptor</web-resource-name>   
   <description>An example security config that only allows users with the    
   role JBossAdmin to access the HTML JMX console web application    
   </description>   
   <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>   


STEP 3:
在本目錄的classes文件夾下找到web-console-users.properties和web-console-roles.properties兩個文件更名爲:

<application-policy name = "web-console">   
       <authentication>   
          <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"   
             flag 
= "required">   
             <module-option name="usersProperties">users.properties</module-option>   
             <module-option name="rolesProperties">roles.properties</module-option>   
          </login-module>   
       </authentication>   
</application-policy>   


啓動服務輸入http://localhost:8080/
 然後分別點擊JMX Console以及Jboss Web Console測試安全機制

user.properties和role.propertie並修改users.properties其中的用戶名和密碼修改%JBOSS_HOME%/server/default/conf/login-config.xml中web-console節點修改爲以下:
到後自行修改或重新定義用戶名、密碼。JBOSS_HOME%/server/default/config下找到它。查找名字爲:jmx-console的application-policy:

 

http://wiki.jboss.org/wiki/Wiki.jsp?page=SecureTheJmxConsole  
http://jira.jboss.com/jira/secure/attachment/12313981/index.html

http://wiki.jboss.org/wiki/Wiki.jsp?page=SecureTheJmxConsole  

http://jira.jboss.com/jira/secure/attachment/12313981/index.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章