Persistencia en las credenciales JMX de Alfresco

Aunque esta es una funcionalidad activada y útil sobre todo para Alfresco Enterprise, creo que es una recomendación de seguridad necesaria y a tener muy en cuenta para entornos en producción. Sobre todo si no filtras los puertos con un firewall. Además así evitarás que alguien modifique la configuración de Alfresco.
Vamos a ver cómo cambiar usuarios y contraseñas de acceso JMX por defecto que vienen en Alfresco y que no se sobreescriban cuando actualizamos la versión y siempre tengamos protegido de forma segura el acceso a la consola de configuración y monitorización de Alfresco.
La receta es muy sencilla:
  • Para ello debemos copiar los ficheros alfresco-jmxrmi.access y alfresco-jmxrmi.password que podemos encontrar por defecto en el directorio tomcat/webapps/alfresco/WEB-INF/classes/alfresco/ y los copiamos por ejemplo en tomcat/shared/classes/.
  • Una vez copiados, podemos editarlos y modificarlos a nuestro gusto, los ficheros están muy bien comentados y no dan lugar a dudas.
  • En el fichero alfresco-jmxrmi.access encontramos los nombres de usuario disponibles y el rol asignado:
monitorRole   readonly
controlRole   readwrite
  • En el fichero alfresco-jmxrmi.password podemos cambiar la contraseña de cada uno de los usuarios disponibles:
monitorRole  mi-nuevo-password1
controlRole  mi-nuevo-password2
  • Por último deberemos añadir la siguiente linea en alfresco-global.properties y reiniciar el servidor de aplicaciones:
alfresco.jmx.dir=/directorio/instalacion/tomcat/shared/classes
Por lo tanto, usaríamos el usuario monitorRole para monitorización (aplicaciones externas como Hyperic o Nagios) y el usuario controlRole para acceder mediante jconsole y configurar Alfresco. De eso ya hablé aquí.

4 thoughts to “Persistencia en las credenciales JMX de Alfresco”

  1. Hola:

    Como apunte al artículo:
    – se requiere que los permisos del ficherito alfresco-jmxrmi.password sean 400 para que pueda arrancar el server.
    – y si no quieres usar monitorizacion propiamente, puedes conectarte via ssh -X al servidor y usar el jconsole del servidor (si tienes la sdk de sun instalada)

    Una pregunta Toni, tengo entendido que cuando empiezas a usar JMX en la configuración esta persiste en bbdd, y ya no utiliza las definiciones del alfresco-global.properties

    ¿ Hay alguna manera de volver hacia atrás en este proceso ? Es decir, que puedas volver a utilizar el alfresco-global.properties (y que deje de persistir en bbdd)

  2. Hola Cesar, gracias por el comentario, efectivamente el tema de los permisos en los ficheros es algo muy importante a nivel de seguridad, lo trataré en otro artículo que tengo pensado ;)

    Si, mediante ssh -X es otra opción y bastante segura para evitar tener que abrir puertos y demás. Muy bueno el apunte.

    Sobre lo último que comentas, cuando hablo de persistencia no me refiero a que se almacene la información de las contraseñas en la base de datos, igual el título es confuso, me refiero a que “persisten” y no se sobreescriben tras redesplegar un nuevo alfresco.war.

    En cuanto al uso de JMX o ficheros, si se hace algo mediante JMX ya persiste en la BBDD y no se puede borrar directamente salvo que se vuelva a modificar por JMX, en ese caso los ficheros del subsistema de turno no tienen efecto. Lo que hay en la BBDD prevalece sobre lo que hay en los ficheros. Por eso hay que definir una política de configuración con Alfresco, o se hace mediante ficheros o por JMX y respetarlo. En la versión 4.0 Enterprise muchas de las cosas que se hacían por ficheros o por JMX ya se pueden hacer mediante el panel de administración de Share, que en realidad es un frontend web de JMX.

    Espero que sea útil. Gracias por los comentarios Cesar. Te veo en un mes!!

  3. Usando la opción Revert, que se puede invocar por JMX (jconsole) se puede volver a usar el fichero de configuración.

Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.