• 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

  • 相关阅读:
    10.$和#的区别 | 11.添加对象时如何把生成的id返回
    9. Mybatis的分页助手(pageHelper):
    8.逆向工程
    7.动态Sql语句
    6.关联查询
    5.解决列名与属性名不一致的情况
    4.接口与映射文件结合使用
    3.优化Mybatis
    2、Mybatis的编程Demo
    阿帕奇ab测试
  • 原文地址:https://www.cnblogs.com/firstdream/p/5953313.html
Copyright © 2020-2023  润新知