• 【中间件安全】Jboss安全加固规范


    1. 适用情况

    适用于使用Jboss进行部署的Web网站。

    适用版本:5.x版本的Jboss服务器

    2. 技能要求

    熟悉Jboss安装配置,能够Jboss进行部署,并能针对站点使用Jboss进行安全加固。

    3. 前置条件

    根据站点开放端口,进程ID,确认站点采用Nginx进行部署;

    找到Jboss安装目录,针对具体站点对配置文件进行修改;

    在执行过程中若有任何疑问或建议,应及时反馈。

    4. 详细操作

    4.1 日志配置

    Jboss 5.x版本日志配置:

    1、打开%JBOSS_HOME%serverdefaultdeployersjbossweb.deployerserver.xml文件,在<HOST>标签中,将Access logger以下内容的注释标记取消,取消后的内容如下:

     

    2、重启Jboss服务,网站访问日志生成在JBOSS_HOME%serverdefaultlog目录下。

     

    Jboss7日志配置:

    1、在默认的情况下,JBoss7是没有开启access_log的,如果要开启这项功能,就需要修改$JBOSS_HOMEstandaloneconfigurationstandalone.xml这个文件,备份配置文件,相关的修改内容如下所示:

    <virtual-server name="default-host" enable-welcome-root="true">

        <alias name="localhost"/>

        <alias name="example.com"/>

           <access-log pattern="%t %a %m %U %s %D" prefix="access_log." rotate="true">

               <directory path="." relative-to="jboss.server.log.dir"/>

           </access-log>

    </virtual-server>

    重启即可看到${jbossHome}standalonelog目录下生成access_log

    4.2 错误页面重定向

    1、找到%JBOSS_HOME%serverdefaultdeployersjbossweb.deployerconfweb.xml文件,对该文件内容进行编辑:

       <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 服务

    4.3 最佳操作实践

    4.3.1     关闭jmx-console

    1、找到%JBOSS_HOME%/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml文件,去掉对下面这段xml文本的注释。修改后的该文件内容为:

    2、与jboss-web.xml同级目录下还有一个文件web.xml,,查找到<security-constraint/>节点,去掉它的注释,修改后该部分内容为:

    3、在%Jboss_HOME%serverdefaultconfpropsjmx-console-users.properties,该文件定义的格式为:用户名=密码,在该文件中,默认定义了一个用户名为admin,密码也为admin的用户,建议设置强口令密码。

    在同目录下jmx-console-roles.properties,该文件定义的格式为:用户名=角色,多个角色以“,”隔开,该文件默认为admin用户定义了JBossAdmin和HttpInvoker这两个角色。

    可以找到这两个文件,修改用户名和密码。

    4、配置完成,通过访问: http://localhost:8088/jmx-console/ ,输入jmx-console-roles.properties文件中定义的用户名和密码,访问jmx-console的页面。

    4.3.2     关闭web-console

    1、找到%JBOSS_HOME%/server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF/jboss-web.xml文件,去掉<security-domain>节点的注释,修改后的文件内容为:

    2、与jboss-web.xml同级目录下还有一个文件web.xml,查找到<security-constraint/>节点,去掉它的注释,修改后该部分内容为:

    3、打开%Jboss_HOME%serverdefaultdeploymanagementconsole-mgr.sarweb-console.warWEB-INFclassesweb-console-users.properties,设置用户名、密码。

    要分配一个用户到JBossAdmin组里,在同目录下的web-console-roles.properties.properties文件里添加"username=JBossAdmin"

    两个文件默认是admin/admin的用户,为了安全起见,建议更换一个强口令密码。

    4.3.3     关闭status统计信息

    1、 打开%JBOSS_HOME%serverdefaultdeployROOT.warWEB-INFweb.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>

    2、重新启动 Jboss 服务

    4.3.4     删除默认文件

    如果不需要使用后台页面,找到jboss部署目录,将 %JBOSS_HOME%serverdefaultdeployROOT.war文件夹下的所有文件备份到其它位置后删除文件夹下的所有文件。

    4.3.5     禁止目录列出

    1、找到%JBOSS_HOME%serverdefaultdeployersjbossweb.deployerconfweb.xml文件,对该文件内容进行编辑:

          <init-param>

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

             <param-value>false</param-value>

          </init-param>

    把 true 改成 false

    2、重新启动 Jboss 服务

    4.3.6     定时登出

    1、找到%JBOSS_HOME%serverdefaultdeployersjbossweb.deployerserver.xml文件,修改为1800秒,30分钟自动登出:

    <Connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.0.0.0.0}" connectionTimeout="1800" redirectPort="8443" />

    2、重新启动 Jboss 服务

    4.4    风险操作项

    4.4.1     Jboss降权

    建议配置 linux 系统:

    (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 用户

    4.4.2     更改默认端口

    1、打开%JBOSS_HOME%serverdefaultdeployersjbossweb.deployerserver.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 服务

    最后

    欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。 

     

  • 相关阅读:
    C语言的灵魂(函数)
    GO语言测试题
    gRPC的发布订阅模式
    gRPC 介绍和简单实现
    RPC与Protobuf(五)
    RPC和Protubuf(四)
    RPC与Protobuf(三)
    JS立即执行函数的几种写法
    如何写出让人看了恶心的代码
    记录几个前端必备的库/框架
  • 原文地址:https://www.cnblogs.com/xiaozi/p/10167215.html
Copyright © 2020-2023  润新知