Bilbao Digital

Asociación para la Cualificación y el Aprendizaje Permanente

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Guía de Seguridad para el Administrador de sitios Joomla!

E-mail Imprimir PDF
Usar puntuación: / 0
MaloBueno 

La instalación de Joomla! en local o en un servidor remoto es extremadamente sencillo. Los asistentes web, las herramientas como Fantástico, la centralización de la configuración... facilitan mucho la puesta en marcha del CMS Joomla!. Pero asegurar un sitio web o un servidor en Internet es otra cosa. De hecho, muchas de las facilidades y funcionalidades se ofrecen en detrimento de la seguridad del entorno.

"Joomla! es el mejor sistema de administración de contenidos del 2006 y 2007."

La popularidad de Joomla! aumenta la ya de por sí alta probabilidad de ser atacado. Los esfuerzos de los desarrolladores sacando parches frecuentemente previenen que estos ataques tengan consecuencias. Pero es responsabilidad de los usuarios aplicar estos parches y tomar otras medidas de seguridad imprescindibles.

"¿Has hecho el sitio web con un CMS?, eso también lo podemos hacer nosotros..."

Este es el primer pensamiento del ignorante antes de caer en cualquiera de las siguientes situaciones:

  1. Alojar el sitio web con el proveedor de alojamiento más económico en un servidor con over-selling y cientos de otros sitios de mucho tráfico (de todo tipo). Solución: Comprobar mediante resoluciones inversas la utilización de los servidores y monitorizar su rendimiento mediante comandos de consola a través del navegador. Obviamente, optar por un servidor dedicado.

  2. No hacer copias de seguridad regulares. Los proyectos grandes suponen un problema logístico debido a transferencia mensual y el espacio web disponible en los servidores compartidos. Solución: Generar copias de seguridad incrementales y comprimidas.

  3. Instalar un nuevo e impoluto sistema de administración de contenidos Joomla! y celebrarlo por todo lo alto para no volver a preocuparte de nuevo. Total, ¿qué puede salir mal? (pista: muchas cosas). Solución: Comprender que la cuestión es cuándo va a suceder. Darse de alta en la lista de noticias oficiales para estar al corriente de las actualizaciones.

  4. Hacer todas las actualizaciones e instalación de extensiones directamente en el servidor de producción. Muchas incidencias informáticas se solucionan volviendo a instalar el sistema, pero la seguridad informática es una excepción. Solución: Reproducir el entorno de producción en local y realizar las actualizaciones offline. Atención a las librerías ioncube (van con la versión del intérprete).

  5. Instalar cualquier extensión/contenido sobre Joomla! y fiarse del correspondiente desarrollador. Todos los componentes aparte del core pueden comprometer la seguridad del sitio y del servidor. ¿Dejarías la llave de tu trabajo a cualquier persona fiándote de su buena voluntad o de lo guap@ que es?. Solución: Comprende que, habitualmente, las comunidades opensource no tienen un sistema de calidad que garantice la seguridad de los componentes. Puedes comenzar por aportar a la comunidad a este respecto.

  6. No actualizar el core a la última versión disponible. Solución: mmm... :-) hacerlo. Aunque parezca mucho trabajo es despreciable comparándolo con el que puede conllevar pasarlo por alto.

  7. Pensar que a él no le puede pasar, su sitio es seguro y de poco interés para los crackers. Solución: Tomar consciencia introduciendo en Google los términos Joomla y Hacked y/o visitando el foro de seguridad de joomla.org. La alternativa es que le suceda, pierda el control de la máquina y le llegue a su ISP una denuncia del British Bank por phishing.

  8. "Vaya pues sí, me ha pasado". Una vez que su sitio ha sido crackeado ir por los foros abriendo posts y tickets de asistencia con asuntos del tipo "¡Ayuda mi sitio ha sido hackeado!". Solución: Indicar información importante como la versión obsoleta de Joomla! que estaba utilizando o las extensiones instaladas.

  9. "Habiéndome sucedido ya, no es probable volver a tener tan mala suerte". Cuando le vuelva a suceder, posiblemente tome (o le hagan tomar...) consciencia de los complicado que es restaurar un sistema/servidor. En este punto, las soluciones sugeridas en los anteriores puntos han sido desconsideradas escrupulosamente y todos estos errores se pueden resumir en el último.

  10. No contar a un profesional con experiencia. Solución: Formación.

Lo que sí deben de hacer los Administradores de sitios web Joomla! (sin acceso root):


Obviamente se debe de contar con cierta predisposición a aprender y si es posible, voluntad para aportar a la comunidad. Son dos conceptos seguramente muy familiares para el visitante pero sorprendentemente, desconocidos para los mediocres. Las siguientes orientaciones no están numeradas para animar a todas las visitas a colaborar con buenas prácticas:

  • Independientemente del método de instalación es importantísimo dar los permisos correctos a todos los archivos y carpetas. Cualquier archivo con extensión php debe te tener permisos 644. Las carpetas que cuelguen del public_html deben de tener permisos 755. Durante la instalación de extensiones es necesario cambiar los permisos de algunas de las carpetas a 777. Una vez concluídas las modificaciones es imprescindible no dejar permisos 777 y volver a los permisos 755. En ocasiones la instalación de mambots, módulos o componentes generan permisos para el usuario httpd y no permiten ser modificados por el usuario ftp. Para solucionar esta incidencia se puede utilizar un gestor de archivos a través del navegador. JoomlaXplorer es una buena opción porque tiene actualizaciones de seguridad frecuentes:
    http://extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,102/Itemid,35/

  • Esta sección es exclusivamente para usuarios de Joomla! sin acceso root pero me voy a dejar una nota (a mí mismo) para los administradores de sistemas que ofrecen scripts tipo Fantástico. Sería muy recomendable (imprescindible) que se añadieran los permisos adecuados después de la instalación de cualquier paquete. Por ejemplo con: find -type f -exec chmod 644 {} \; y find -type d -exec chmod 755 {} \;.

  • Bloquear los exploits habituales renombrando el archivo htaccess.txt de la raíz a .htaccess. Este apartado lo trataré más adelante con detalle porque es muy recomendable introducir algunas directivas importantes.

  • Proteger los directorios delicados como /administrator mediante un archivo .htaccess. Además podemos añadir un nivel de seguridad adicional permitiendo el acceso de determinadas IPs. <Limit Get> Order Deny,Allow Deny from all Allow from 200.200.200.200 </Limit>. Es posible añadir rangos de IPs indicando los octetos fijos (200.200.200) o añadir varias direcciones separándolas con comas.

  • Desactivar Register Globals Emulation editando el archivo globals.php que se encuentra en el directorio raíz de la instalación (define('RG_EMULATION',0);) . Aunque la emulación es más segura que register_globals en PHP, es mejor no permitir register_globals de ninguna forma. Para desactivar su uso puedes incluir php_flag register_globals off en el archivo .htacces de la raíz de la instalación de Joomla!. De esta forma se desactivará en todo el sitio web y las carpetas dependientes. En PHP6 ni siquiera será una opción. Este directiva la trataré más adelante.

  • Borrar las plantillas que no se utilizan. Al diseñar un sitio lo optimizamos para su uso con una plantilla en particular por lo que el que figuren el resto de las plantillas es meramente un despiste. El motivo de esta recomendación es que cualquier usuario puede dejar enlaces a la web en cuestión complementando la URL con ?jos_change_template=rhuk_solarflare_ii por lo que la visita vería un sitio desorganizado dañando seriamente la imagen del cliente. Igualmente, la dirección anterior saltaría las directivas de seguridad presentes en el resto de los diseños (documentos index.php) pudiendo acceder libremente a todos los contenidos (Nota a mí mismo: Un vídeo sobre las consecuencias sería didáctico).

  • Proteger los archivos de configuración del aceso directo desde Internet. Para proteger el archivo configuration.php de una manera elegante podemos sacar el archivo por encima de la carpeta public_html creando un nuevo archivo configuration.php con el siguiente contenido <?php require( dirname( __FILE__ ) . '/../mijoomla.conf' ); ?>. Muy atentos de no incluir espacios antes ni después de los tags php porque nos reportaría un error del tipo "headers already sent...". Este archivo no puede ser escrito para evitar ser sobreescrito por com_config. Si deseamos hacer modificaciones en el archivo de configuración real las realizamos a mano.

  • Iré añadiendo más...

Enlaces de interés:

Foros Joomla!

Comunidad española Joomla! (muchísimas gracias)

Comentarios (1)add comment
Tener Cuidado Con el Hosting
escrito por edward , 18, agosto, 2009

hay que tener mucho cuidado con el hosting q se va comprar, diganmelo a mi que ando en problemas
report abuse
vote down
vote up

Votos: +0


Escribir comentario
menor | mayor
password
 

busy
You are here: Artículos Seguridad Guía de Seguridad para el Administrador de sitios Joomla!