【中间件安全】Jboss安全加固规范
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安全加固规范的更多相关文章
- 下一代的中间件必须是支持docker规范的
下一代的中间件必须是支持docker规范的,这是中间件技术走向标准规范化的必经之路. 什么是 Docker? 答案是:Docker 是下一代的云计算模式.Docker 是下一代云计算的主流趋势. Do ...
- 【中间件安全】WebSphere安全加固规范
1. 适用情况 适用于使用WebSphere进行部署的Web网站. 2. 技能要求 熟悉WebSphere安装部署,熟悉WebSphere常见漏洞利用方式,并能针对站点使用WebSphere进行安全加 ...
- 【中间件安全】IIS6安全加固规范
1. 适用情况 适用于使用IIS6进行部署的Web网站. 2. 技能要求 熟悉IIS配置操作,能够利用IIS进行建站,并能针对站点使用IIS进行安全加固. 3. 前置条件 1. 根据站点开放端口.进程 ...
- 【中间件安全】Weblogic 安全加固规范
1. 适用情况 适用于使用Weblogic进行部署的Web网站. 2. 技能要求 熟悉Weblogic安装部署,熟悉Weblogic常见漏洞利用方式,并能针对站点使用Weblogic进行安全加固. 3 ...
- 【中间件安全】Nginx 安全加固规范
1. 适用情况 适用于使用Nginx进行部署的Web网站. 2. 技能要求 熟悉Nginx配置,能够Nginx进行部署,并能针对站点使用Nginx进行安全加固. 3. 前置条件 1. 根据站点开放端口 ...
- 【中间件安全】Tomcat 安全加固规范
1. 适用情况 适用于使用Tomcat进行部署的Web网站. 2. 技能要求 熟悉Tomcat配置操作,能够利用Tomcat进行建站,并能针对站点使用Tomcat进行安全加固. 3. 前置条件 1.根 ...
- 【中间件安全】IIS7.0 安全加固规范
1. 适用情况 适用于使用IIS7进行部署的Web网站. 2. 技能要求 熟悉IIS配置操作,能够利用IIS进行建站,并能针对站点使用IIS进行安全加固. 3. 前置条件 1. 根据站点开放端口.进程 ...
- 【中间件安全】Apache 安全加固规范
1. 适用情况 适用于使用Apahce进行部署的Web网站. 2. 技能要求 熟悉Apache配置文件,能够利用Apache进行建站,并能针对站点使用Apache进行安全加固. 3. 前置条件 1. ...
- Linux 工作站安全加固规范
目标受众 这是一套 Linux 基金会为其系统管理员提供的推荐规范. 这个文档用于帮助那些使用 Linux 工作站来访问和管理项目的 IT 设施的系统管理员团队. 如果你的系统管理员是远程员工,你也许 ...
随机推荐
- Jsp俩大内置对象学习
https://www.cnblogs.com/smyhvae/p/4065790.html post与get的区别 最直观的区别就是GET把参数包含在URL中,POST通过request body传 ...
- PAT Basic 1004
1004 成绩排名 (20 分) 读入 n(>0)名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓名和学号. 输入格式: 每个测试输入包含 1 个测试用例,格式为 第 1 行:正整数 ...
- Java第二课 项目的导入和导出
Java项目的导入和导出 项目的导入和导出1)导入 右击myeclipse或eclipse的左侧有项目那一栏空白部分或者是File--Import,然后选择Import--General--双击Exi ...
- 实验楼-高级Bash脚本编程指南
实验1.Bash介绍与入门 1.简介:Bash是一个为GNU计划编写的Unix shell,它是许多Linux平台默认使用的shell shell是一个命令解释器,是介于操作系统内核与用户之间的一个绝 ...
- JS冲刺
1.简单/复杂数据类型1)基本数据类型把数据名和值直接存储在栈当中复杂数据类型在栈中存储数据名和一个堆的地址,在堆中存储属性及值,访问时先从栈中获取地址,再到堆中拿出相应的值简单数据类型:number ...
- Spring mvc前台后台传值
前台向后台传值: ①同名参数传递:form表单中提交input,Controller方法入参中,直接以同名参数获取 ②不同名参数传递:from表单提交input,Controller方法入参中需要使用 ...
- Aizu0121 Seven Puzzle(bfs+康托展开)
https://vjudge.net/problem/Aizu-0121 比八数码要水的多,bfs. 但是做的时候我把康托展开记错了,wa了好几次. 附上康托展开博客详解:https://blog.c ...
- windows NT的意义和各个版本
javascript中navigator.userAgent里的window NT今天为了尝试查看网址的来源document.referrer,但是不知道每个浏览器的版本号,然后我就用navigato ...
- 【性能提升神器】STRAIGHT_JOIN
今天给大家下另一个性能提升神器-STRAIGHT_JOIN,在数据量大的联表查询中灵活运用的话,能大大缩短查询时间. 首先来解释下STRAIGHT_JOIN到底是用做什么的: STRAIGHT_JOI ...
- 具有相同名称 的类/接口已在使用。请使用类定制设置来解决此冲突。java调用第三方的webservice应用实例
WSDLToJava Error: http://10.96.84.124:81/BTRPWebServiceForSMB/OnSMBOrderService.svc?xsd=xsd0 [0,0]: ...