jboss安全配置参考

0x01 账号口令

1   jmx-console 

    默认情况访问 http://ip:port/jmx-console 需要输入用户名和密码。设置用户名密码限制账号,并进行加密存储。jboss 6.0 之前的版本 JMX 控制台的配置文件位置为:server/$config/deploy/jmx-console.war/WEB-INF/,jboss 6.0 及以上、7.0 以前的版本,JMX 控制台的配置文件位置为:common/deploy/jmx-console.war/WEB-INF/

①建议配置1

1)修改 Jboss 目录下server/$config/deploy/jmx-console.war/WEB-INF/jboss-web.xml , 去 掉<security-domain>节点的注释。 其中$config 表示用户当前使用的 JBoss服务器配置路径。修改 jboss-web.xml 同级目录下的 web.xml 文件,去掉 < security-constraint>节
点的注释,在这里可以看到为登录配置了角色 JBossAdmin

2)jmx-console 的安全域和运行角色 JBossAdmin 都是在 login-config.xml 中配 置 , 在 Jboss 的 安 装 目 录 server/$CONFIG/config 下 找 到 。 在login-config.xml 中查找 jmx-console 的 application-policy 可以看到登录的角色 、 用 户 等 信 息 分 别 在 server/$config/config/props 的jmx-console-roles.properties 和 jmx-console-users.properties 文件中配置

②建议配置2

如无需jmx-console服务,可以删除相关文件。如:jboss 6.0 之前的版本 JMX 控制台的配置文件位置为:server/$config/deploy/jmx-console.war/WEB-INF/,jboss 6.0 及以上、7.0 以前的版本,JMX 控制台的配置文件位置为:common/deploy/jmx-console.war/WEB-INF/

③补充操作说明
1)jmx-console-users.properties 文件中定义了一个用户名为 admin,的用户。
2)jmx-console-roles.properties 文件中默认为 admin 用户,定义了
JBossAdmin 和 HttpInvoker 这两个角色。
3)需要重启 JBoss

2  web-console 

      不需要输入用户名和密码存在安全隐患。设置用户名密码限制账号,并进行加密存储。

①建议配置1

     修改 Jboss 目录下server/$CONFIG/deploy/jmx-console.war/WEB-INF/jboss-web.xml , 去 掉<security-domain>节点的注释。 其中$CONFIG 表示用户当前使用的 JBoss服务器配置路径。修改 jboss-web.xml 同级目录下的 web.xml 文件,去掉 < security-constraint>节点的注释,在这里可以看到为登录配置了角色 JBossAdmin

2)jmx-console 的安全域和运行角色 JBossAdmin 都是在 login-config.xml 中配 置 , 在 Jboss 的 安 装 目 录 server/$CONFIG/config 下 找 到 。 在login-config.xml 中查找 jmx-console 的 application-policy 可以看到登录的角色 、 用 户 等 信 息 分 别 在server/$CONFIG/config/props 的jmx-console-roles.properties 和 jmx-console-users.properties 文件中配置

②建议配置2

如无需jmx-console服务,可以删除相关文件。Jboss 目录下server/$CONFIG/deploy/jmx-console.war/WEB-INF/jboss-web.xml ,

② 补充操作说明
1)jmx-console-users.properties 文件中定义了一个用户名为 admin,的用户。
2)jmx-console-roles.properties 文件中默认为 admin 用户,定义了JBossAdmin 和 HttpInvoker 这两个角色。
3)需要重启 JBoss

3  Webservice 

      设置 webservice 控台用户名和密码进行保护。默认访问不需要输入用户名和密码。
① 启用密码保护
       先修改配置文件server/$CONFIG/deploy/jbossws-console.war/WEB-INF/web.xml,将<security-constraint> </security-constraint>部分的注释取消然后修改配置文件server/$CONFIG/deploy/jbossws-console.war/WEB-INF/jboss-web.xml,将<security-domain> </security-domain>部分的注释取消
2)设置复杂口令
     为 jbossws 设置复杂的口令,修改配置文件server/$CONFIG/conf/props/jbossws-users.properties将其中 kermit=thefrog 修改为 kermit=复杂的密码
② 备注事项
1)口令长度至少 8 位,并包括数字、小写字母、大写字母和特殊符号 4 类中至少 3 类。
2)需要重启 JBoss

4  Admin-console 

      设置 admin-console 接口用户名和密码进行保护。默认用户名和密码为admin/admin.
①  建议配置
修改$CONFIG/configuration/mgmt-users.properties 文件,将密码设置为复杂的口令。
② 备注事项
1)对于 JBoss 7.0 版本,可以直接检查下列文件中的明文口令:$CONFIG/configuration/mgmt-users.properties
2)口令长度至少 8 位,并包括数字、小写字母、大写字母和特殊符号 4 类中至少 3 类。

5  数据库连接用户和密码保护

①  建议配置
1)在${jboss}/server/${server}/deploy/oracle-ds.xml配置文件中设置oracle密码<security-domain>EncryptDBPassword</security-domain>
2)在${jboss}/server/${server}/conf/login-config.xml配置文件中设置JNDI加密
<application-policy name="testDataSource"> --testDataSource 是连接池的名称
<authentication>
<login-module
code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required">
<module-option name=“username”>apps</module-option> -- 用户名
<module-option name="password">3fb2b2b29f74131a</module-option>
--加密后的密码
<module-option name="managedConnectionFactoryName">
jboss.jca:service=LocalTxCM,name=testDataSource
</module-option>
</login-module>
</authentication>
</application-policy>
② 备注事项
口令长度至少 8 位,并包括数字、小写字母、大写字母和特殊符号 4 类中至少 3 类。

6  服务账号管理

     禁用超级用户启动 JBoss。
①  建议配置
Unix 系统:
(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 用户

0x02 日志安全

   设备应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号,登录是否成功,登录时间,使用的 IP 地址。

① 建议配置
编辑 server/$CONFIG/conf/ log4j.xml 配置文件,
<appender name="FILE-0"
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="true"/>
<param name="Threshold" value="ERROR"/>
<param name="DatePattern" value="'.'yyyy-MM-dd_HH"/>
<layout class="org.apache.log4j.PatternLayout">
<param  name="ConversionPattern"  value="%d  %-5p  [%t]
7
[%c{1}] %l %m%n"/>
</layout>
</appender>
② 备注事项
Threshold 是个全局的过滤器,它将把低于所设置的 level 的信息过滤不显示出来,优先级由高到低分为 OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL参数都以%开始后面不同的参数代表不同的格式化信息(参数按字母表顺序
列出):
%c 输出所属类的全名,可修改为 %C{Num} ,Num 类名输出的围 如:"org.apache.elathen.ClassName",%C{2}将输出 elathen.ClassName
% 输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式如 %d{HH:mm:ss}
%l 输出日志事件发生位置,包括类目名、发生线程,在代码中的行数
%n 换行符
%m 输出代码指定信息,如 info(“message”),输出 message
%p 输出优先级,即 FATAL ,ERROR 等
%r 输出从启动到显示该 log 信息所耗费的毫秒数
%t 输出产生该日志事件的线程名

0x03 服务

1 HTTPS协议

① 建议配置
(1)使用 JDK 自带的 keytool 工具生成一个证书
JAVA_HOME/bin/keytool -genkey –alias tomcat –keyalg RSA
-keystore /path/to/my/keystore
(2)修改 server/$CONFIG/deploy/jbossweb-tomcat55.sar/conf/server.xml 配置文件,更改为使用 https 方式,增加如下行:
Connector classname=”org.apache.catalina.http.HttpConnector”
port=”8443” minProcessors=”5” maxprocessors=”100”
enableLookups=”true” acceptCount=”10” debug=”0”
scheme=”https” secure=”true” >
Factory classname=”org.apache.catalina.SSLServerSocketFactory”
clientAuth=”false”
keystoreFile=”/path/to/my/keystore” keystorePass=”runway”
protocol=”TLS”/>
/Connector>
其中 keystorePass 的值为生成 keystore 时输入的密码
(3)重新启动 Jboss 服务

2  更改默认端口

① 建议配置
(1)修改 server/$CONFIG/deploy/jbossweb-tomat55.sar/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 服务
② 备注事项
Jboss 默认端口是 8080,通常占用的端口是 1098,1099,4444,4445,8080,8009,8083,8093
在 windows 系统中: 1098、1099、4444、4445、8083 端口在/server/ehr_jsprd
/conf/jboss-service.xml 中
8080 端口在/server/ ehr_jsprd /deploy/jboss-web.deployer/server.xml 中
8093 端口在/server/ ehr_jsprd /deploy/jms/uil2-service.xml 中。

3  定时退出

① 建议配置
编辑 server/$CONFIG/deploy/jbossweb-tomat55.sar/server.xml 配置文件,修改为 2000 秒
<Connector port="8100" address="${jboss.bind.address}"
maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"
emptySessionPath="true"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="300"
disableUploadTimeout="true" URIEncoding="utf-8"/>
② 备注事项
设置时间为30 分钟,即 3000 秒。

4  状态页面管理

删除或屏蔽状态页面,防止服务器信息泄露

① 建议配置
方法一:删除后台页面
      如果不需要使用后台页面,在将 server/$CONFIG/deploy/ROOT.war 文件夹下的所有文件备份到其它位置后删除文件夹下的所有文件。
方法二:修改配置文件
修改配置文件 server/$CONFIG/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>
② 备注事项
需重新启动 Jboss 服务

5  错误页面重定向

Jboss 错误页面重定向

① 建议配置
(1)编辑 server/$CONFIGdeploy/jbossweb-tomcat55.sar/conf 文件:
<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 服务

0x04 其他事项

1 认证授权与用户权限

     在设备权限配置能力内,根据用户的业务需要,配置其所需的最小权限。
① 建议配置
编辑 /server/default/config/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>
2 、备注事项
jmx-console 角色浏览 jboss 的部署管理信息。
Web-console 角色进行监控

2 禁止目录列出

① 建议配置

(1) 编辑 deploy/jbossweb-tomcat55.sar/conf 配置文件,
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
把 true 改成 false
(2)重新启动 Jboss 服务



欢迎大家分享更好的思路,热切期待^^_^^ !

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值