JBoss is a popular open-source Java application server which underwent a major rewrite of its code-base for its latest version 7.x. Of this new branch, only version 7.1.0.Final, released a week ago, is certified for the Java EE 6 Full Profile.
As part of the code rewrite, the configuration settings also got a global overhaul. The settings are now mostly regrouped per mode (standalone or domain) and profile (default, full, ha and full-ha – e.g. standalone/standalone-full.xml).
The default settings for the web server component look as follow:
<?xml version='1.0' encoding='UTF-8'?> <server xmlns="urn:jboss:domain:1.1"> [CUT BY COMPASS] <profile> [CUT BY COMPASS] <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false"> <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http" /> <virtual-server name="default-host" enable-welcome-root="true"> <alias name="localhost" /> <alias name="example.com" /> </virtual-server> </subsystem> [CUT BY COMPASS]
Several hardening steps can be performed, such as:
- Enabling only HTTPS and disabling HTTP
- Disabling the display of source fragment
- Removing the x-powered-by http header
- Disabling the default JBoss 7 welcome pages
The following hardened configuration is therefore a good start for the web server component:
<?xml version='1.0' encoding='UTF-8'?> <server xmlns="urn:jboss:domain:1.1"> [CUT BY COMPASS] <profile> [CUT BY COMPASS] <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false"> <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http" enabled="false"/> <configuration> <jsp-configuration display-source-fragment="false" x-powered-by="false"/> </configuration> <connector name="https" protocol="HTTP/1.1" socket-binding="https" scheme="https" secure="true"> <ssl name="ssl" protocol="TLSv1" password="[CUT BY COMPASS]" verify-client="false" cipher-suite="HIGH" certificate-key-file="${user.home}/.keystore" ca-certificate-file="${user.home}/.trustedstore"/> </connector> <virtual-server name="default-host" enable-welcome-root="false"> <alias name="localhost" /> <!-- COMMENT THIS SECTION TO DISABLE IT <alias name="example.com" /> --> </virtual-server> </subsystem> [CUT BY COMPASS]
Documentation relating to these settings can either be found in the XML schema files located in docs/schema/*.xsd or in the online documentation (e.g. about the jsp-configuration element).
Leave a Reply