1. 适用情况

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

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

2. 技能要求

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

3. 前置条件

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

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

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

4. 详细操作

4.1 日志配置

Jboss 5.x版本日志配置:

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

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

Jboss7日志配置:

1、在默认的情况下,JBoss7是没有开启access_log的,如果要开启这项功能,就需要修改$JBOSS_HOME\standalone\configuration\standalone.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}\standalone\log\目录下生成access_log

4.2 错误页面重定向

1、找到%JBOSS_HOME%\server\default\deployers\jbossweb.deployer\conf\web.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%\server\default\conf\props\jmx-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%\server\default\deploy\management\console-mgr.sar\web-console.war\WEB-INF\classes\web-console-users.properties,设置用户名、密码。

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

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

4.3.3     关闭status统计信息

1、 打开%JBOSS_HOME%\server\default\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>

2、重新启动 Jboss 服务

4.3.4     删除默认文件

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

4.3.5     禁止目录列出

1、找到%JBOSS_HOME%\server\default\deployers\jbossweb.deployer\conf\web.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%\server\default\deployers\jbossweb.deployer\server.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%\server\default\deployers\jbossweb.deployer\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 服务

最后

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

【中间件安全】Jboss安全加固规范的更多相关文章

  1. 下一代的中间件必须是支持docker规范的

    下一代的中间件必须是支持docker规范的,这是中间件技术走向标准规范化的必经之路. 什么是 Docker? 答案是:Docker 是下一代的云计算模式.Docker 是下一代云计算的主流趋势. Do ...

  2. 【中间件安全】WebSphere安全加固规范

    1. 适用情况 适用于使用WebSphere进行部署的Web网站. 2. 技能要求 熟悉WebSphere安装部署,熟悉WebSphere常见漏洞利用方式,并能针对站点使用WebSphere进行安全加 ...

  3. 【中间件安全】IIS6安全加固规范

    1. 适用情况 适用于使用IIS6进行部署的Web网站. 2. 技能要求 熟悉IIS配置操作,能够利用IIS进行建站,并能针对站点使用IIS进行安全加固. 3. 前置条件 1. 根据站点开放端口.进程 ...

  4. 【中间件安全】Weblogic 安全加固规范

    1. 适用情况 适用于使用Weblogic进行部署的Web网站. 2. 技能要求 熟悉Weblogic安装部署,熟悉Weblogic常见漏洞利用方式,并能针对站点使用Weblogic进行安全加固. 3 ...

  5. 【中间件安全】Nginx 安全加固规范

    1. 适用情况 适用于使用Nginx进行部署的Web网站. 2. 技能要求 熟悉Nginx配置,能够Nginx进行部署,并能针对站点使用Nginx进行安全加固. 3. 前置条件 1. 根据站点开放端口 ...

  6. 【中间件安全】Tomcat 安全加固规范

    1. 适用情况 适用于使用Tomcat进行部署的Web网站. 2. 技能要求 熟悉Tomcat配置操作,能够利用Tomcat进行建站,并能针对站点使用Tomcat进行安全加固. 3. 前置条件 1.根 ...

  7. 【中间件安全】IIS7.0 安全加固规范

    1. 适用情况 适用于使用IIS7进行部署的Web网站. 2. 技能要求 熟悉IIS配置操作,能够利用IIS进行建站,并能针对站点使用IIS进行安全加固. 3. 前置条件 1. 根据站点开放端口.进程 ...

  8. 【中间件安全】Apache 安全加固规范

    1. 适用情况 适用于使用Apahce进行部署的Web网站. 2. 技能要求 熟悉Apache配置文件,能够利用Apache进行建站,并能针对站点使用Apache进行安全加固. 3. 前置条件 1. ...

  9. Linux 工作站安全加固规范

    目标受众 这是一套 Linux 基金会为其系统管理员提供的推荐规范. 这个文档用于帮助那些使用 Linux 工作站来访问和管理项目的 IT 设施的系统管理员团队. 如果你的系统管理员是远程员工,你也许 ...

随机推荐

  1. URL结构

    一.概念 URL:统一资源定位符 (Uniform Resource Locator, URL). 完整的URL由这几个部分构成:scheme://host:port/path?query#hash: ...

  2. db2 执行报错收集

    1.对于执行中的报错,可以在db2命令行下运行命令 : db2=>? SQLxxx 查看对应的报错原因及解决方法. 2.错误SQL0206N SQLSTATE=42703  检测到一个未定义的列 ...

  3. JS_高程3.基本概念(5)语句

    1.if语句 2.do-while语句:后测循环语句,循环体内的代码至少执行一次. 3.while语句:前测循环语句. 4.for语句:前测循环语句. 注意:在ECMAScript中不存在块级作用域, ...

  4. js动态时间(转)

    html代码 <span id="timeShow" show_cur_times()></span> js代码 $(function(){ //设置1秒调 ...

  5. pygame 笔记-6 碰撞检测

    这一节学习碰撞检测,先看原理图: 2个矩形如果发生碰撞(即:图形有重叠区域),按上图的判断条件就能检测出来,如果是圆形,则稍微变通一下,用半径检测.如果是其它不规则图形,大多数游戏中,并不要求精确检测 ...

  6. wriesharek同时监听多个端口

    之前的文章<wireshark解析自定义的protobuf协议> ,当时只监听了一个端口,而如果游戏同时有二个 socket 连接,比如一个是网关另外一个是其它的,怎么办呢? for i, ...

  7. SSE图像算法优化系列二十:一种快速简单而又有效的低照度图像恢复算法。

    又有很久没有动笔了,主要是最近没研究什么东西,而且现在主流的趋势都是研究深度学习去了,但自己没这方面的需求,同时也就很少有动力再去看传统算法,今天一个人在家,还是抽空分享一个简单的算法吧. 前段日子在 ...

  8. shell编程学习笔记(三):Shell中局部变量的使用

    现在我们看一下Shell中局部变量的使用 以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容: # cd /opt/scripts # vim script03.sh 开始编写script0 ...

  9. SharePoint online 获取文件版本记录

    endpoint: _api/web/GetFileByServerRelativeUrl('/allDoc/xxx.pdf')/Versions 问题: 第一次使用,无论在本地还是o365上,都只返 ...

  10. sed 替换多个空格为一个

    sed -i 's/[ ][ ]*/ /g'  file.txt