Por defecto, Apache Tomcat muestra la versión en todas las páginas de error. A la hora de ocultar la versión, hay que tener en cuenta que la forma más rápida y cómoda sólo es válida a partir de Tomcat 6, o por lo menos a mí en Tomcat 5 no me ha funcionado. Para Tomcat 5 es necesario modificar el string de la versión que está incrustado directamente en el catalina.jar.
Otra de las opciones es crear páginas de error personalizadas con <error-page>
, pero sin duda la forma más rápida y sencilla es la que explico a continuación.
Ocultar versión en Apache Tomcat 5
Para quitar la versión de Tomcat 5 en las páginas de error es necesario desempaquetar el jar catalina.jar, modificar las strings en el archivo «ServerInfo.properties» y volver a empaquetarlo.
Este jar se encuentra en:
$CATALINA_HOME/server/lib/catalina.jar
Lo copiamos a una ruta temporal para trabajar con el archivo:
# cp -p $CATALINA_HOME/server/lib/catalina.jar /var/tmp/jar
Desempaquetamos:
$ jar xvf catalina.jar
Editamos el archivo ServerInfo.properties quitando las versiones:
# cat /var/tmp/temp/org/apache/catalina/util/ServerInfo.properties server.info=Apache Tomcat server.number= server.built=
Y volvemos a empaquetar y copiar a su ubicación original:
$ jar cfv catalina-jar *
# cp -p /var/tmp/jar/catalina.jar $CATALINA_HOME/server/lib/catalina.jar
Y al reiniciar Tomcat la versión ya no aparecerá en las páginas de error:
Ocultar versión en Apache Tomcat 6
A partir de Tomcat 6 es más sencillo pues en lugar de tener que manipular el archivo catalina.jar directamente se puede crear la estructura de directorios donde se encuentra ServerInfo.properties y poner ahí los parámetros a sobreescribir:
# mkdir -p $CATALINA_HOME/lib/org/apache/catalina/util
Y crear ahí el archivo:
# cat $CATALINA_HOME/lib/org/apache/catalina/util/ServerInfo.properties server.info=Apache Tomcat server.number= server.built=
Reiniciamos Tomcat y listo.
Buenas
Como curiosidad, ¿qué utilidad tiene ocultar la versión? ¿es para evitar dar pistas a los hackers sobre posibles vulnerabilidades? ¿hay alguna más?
gracias
Efectivamente. Cuanta menos información se ofrezca en entornos de producción, mejor ;)