24 Consejos para seguridad web Joomla

No hay fórmulas mágicas ni fáciles para la seguridad web joomla. Todo se basa en tiempo y pequeñas actuaciones que sumando, pueden hacer de nuestro Joomla un sistema más seguro, pero no invulnerable. Los “trucos” aquí mostrados dependerán por supuesto del servidor que tengais (sea compartido, dedicado, VPS, Clood…) y del acceso al mismo para configurarlo.
Lo básico es usar solo lo imprescindible y con la configuración más restrictiva, aunque eso implique que en ciertos momentos tengamos que probar si algunos componentes funcionan, o haya que desactivar algo en momentos puntuales. Se que es algo tedioso, pero si queremos seguridad web joomla, es lo que hay…

No soy informático, sinó un usuario avanzado de Joomla que puede dar lecciones de seguridad web joomla, y he aprendido algunas para compartir.

Una vez aclarados estos puntos, paso a comentarles los puntos que deberan seguir para hacer mas seguro sun CMS JOOMLA!:

1.- Permisos de las carpetas

De todos es sabido no dejar las carpetas con permisos (CHMOD) que puedan dar entrada a ataques (por ejemplo un CHMOD 777). En este caso solo quiero concretar una cosa, y es el hecho de una vez modificado el permiso para que un componente pueda ejecutarse, probar luego a volver a los permisos seguros (por ejemplo un CHMOD 644).

En ocasiones muchos programas se ejecutan con permisos seguros aunque nos den aviso de que hay que ponerlos en 777. Es decir, tenemos que dedicar tiempo a repasar permisos, poner todos seguros y luego poco a poco si vemos que el programa no funciona ir probando con otros permisos. Ensayo y error amigos! Aviso: no os olvideis de la carpeta raiz (“httpdocs” o “public_html”). Ayuda sobre permisos y uso cliente FTP

2.- Acceso desde el front-end

Si no es estrictamente necesario no lo hagas. Si tienes tiempo, una web puede subsistir si tu subes los documentos y las imágenes de las Galerías o los componentes de descarga (por ejemplo galerías de imágenes y subida de documentos).

Evita habilitar la subida desde el frontend a usuarios registrados (y menos a usuarios públicos). Si lo haces, estás dejando una puerta abierta a código malicioso, y no lo digo que lo hagan tus usuarios, pero si ya hay un lugar en donde cualquier experimetado puede acceder. Y si decides dejar esa «puerta abierta» procura restringir concienzudamente el tipo de archivos que vas permitir subir.
Para imagenes, existe una técnica llamada Esteganografía – Saber Más.

3.- Configuración .htaccess para seguridad web joomla

htaccess es una potente herramienta (tienes miles de tutoriales en la red). Debes tener un .htaccess configurado con los parámetros que trae Joomla, y luego añadir los tuyos propios, por ejemplo para proteger accesos. Usa nuevamente Google para ver como utilizar este documento a nivel de seguridad. Te muestro texto básico que debes añadir al inicio del htaccess aparte de, como dije, lo que trae Joomla por defecto (en su .htaccess de ejemplo).

Algunas de las cosas imprescindibles en un htaccess son:

a) Para evitar que enlacen con tus archivos donde pone site.com debes poner su web, y tantas lineas como webs quieras dar acceso a tus archivos:

#Hotlink RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?site.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?otarweb.com [NC] .*\.(jpg|jpeg|png|gif|pdf|zip|rar|mov|mp3|doc|pdf|bmp|swf|flv|wmv)$ - [NC,F,L]

b)Para evitar ataques mediante ejecución de XML

## Deny access to extension xml files (uncomment out to activate) Order allow,deny Deny from all Satisfy all

Si esto te da problemas con XML de tu web que necesitan ejecutarse, puedes permitirlo mediante:

Allow from all Satisfy all
Si queremos limitar el acceso a ciertos “sistemas” (como correos temporales) sospechosos lo hacemos tal como se comenta en este artículo: Como utilizar el archivo .htaccess de nuestro Joomla!.
Muchos componentes admiten su propio htaccess (por ejemplo las Galerías de Imágenes y los gestores de descarga). Si es así, crea el htaccess para cada componente dentro de su carpeta. htaccess es todo un mundo, os recomiendo buscar y probar con él las diferentes opciones.

4.- Módulos o Componentes joomla que no uses

Todo aquello que no uses elimínalo, aunque lo tengas deshabilitado y no se puede ver en el frontend, un atacante experimentado puede comprobar si tienes un componente y aprovechar sus bugs aunque esté desactivado. Ten en tu servidor solo aquello que estés usando. Y además así ahorrarás espacio. Si no necesitas un componente imprescindiblemente, no lo uses. Cuantos más componentes y plugins, mas código y más posibilidades de que encuentren un lugar débil para atacar.

A tener MUY en cuenta…
Cuando desinstalas una extensión de tu joomla, en la inmensa de las ocasiones, los desarrolladores NO incluyen en su programación el ELIMINAR las tablas de tu base de datos creadas por esa extensión joomla o Plugins para WordPress.
Debes ELIMINAR esas tablas si no tienes intención de volver a utilizar dicha extensión joomla. En el caso de WordPress es más complicado eliminar tablas y datos de según que plugin desinstalado, ya que se sigue utilizando la tabla WP_POSTS y WP_POSTMETA en la mayoria de plugins creados por desarrolladores de plugins WordPress para la gestión de los datos.

5.- Templates

Elimina las plantillas que no uses. Es importante eliminar lo que no uses para la protección joomla.

6.- Sistemas de seguridad de terceros

Yo personalmente NO. Me refiero a esos componentes (la mayoría de pago) que nos aseguran protegernos contra ataques. A ver, su función pueden hacerla mejor o peor pero mi opinión es que consumen muchos recursos y ralentizan la página. Suelen usar tablas muy grandes en las Bases de Datos para guardar IPs sospechosas.

Esas IPs además deben actualizarse y lo que es peor… A veces nos dan errores inesperados o restringen el sitio a gente «normal». Ya sabemos que eso de las IP asociadas a ciertos usuarios es muy relativo. Muchos además ejecutan en segundo plano scripts que pueden ralentizar e incluso bloquear el propio Joomla. O hacen consultas interminables a la Base de datos, provocando lo mismo que comentamos antes.

7.- Protege el acceso a backend

Por ejemplo mediante una contraseña en tu servidor. En este caso debes estar usando Plesk o CPanel (paneles de control de los servidores) y pones una contraseña para el acceso a esa carpeta, tudominio/administrator para joomla o tudominio.com/wp-admin para WordPress. Es un paso más que un intruso debe pasar. Ah! y no le pongas el mismo usuario y contraseña que tu acceso al backend. También puedes protegerlo mediante un .htpassword – Generador Online.

Captura prueba desde una web joomla cualquiera que he encontrado sin esfuerzos.

Acceso administración joomla

Otra opción es cambiar la url de acceso a la administración cambiando la misma con una sucesión de letras, números, caracteres o una frase que recuerde o cojunto de palabras. Existen extensiones joomla para ello, como AdminExile.

8.- Base de datos

No pongas el prefijo por defecto a la base de datos, que es jos_ en versiones joomla 1.5, cambiado a una opción que debes crear tu mismo a tu antojo, cámbialo cuando hagas la instalación. Relacionado con este punto, siempre que instales un componente que requiera instalar tablas nuevas o una base de datos, hazlo en Bases de Datos independientes si es posible. No uses la Base de Datos de Joomla para todo.

9.- Index.html

No dejes carpetas sin index.html en blanco para protección joomla y carpetas, así se evitará que se pueda acceder al listado de los archivos de una carpeta. Esto se puede controlar también desde el htaccess para evitar mostrar el listado de un directorio.

10.- Configuration.php

Este archivo debe estar bien protegido. Mueve el archivo fuera de la carpeta raiz (httpdocs o public_html). Así el acceso al mismo será complicado. Por ejemplo si tu directorio es /home/user/www/public_html, puedes mover el archivo configuration.php a /home/user/www. Ahora, donde estba el antiguo, creamos 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.

Si no lo vas a mover, una vez realizada la instalación de tu joomla, para una protección joomla optima, cambia los permisos CHMOD del archivo configuration.php a 444.

11.- Robots.txt

Mediante este archivo, limita la indexación de carpetas y archivos que consideres importantes, por ejemplo si tiene documentos que no quieres que Google indexe, o si tienes componentes que dan acceso al front-end. Ficheros y directorios importantes mejor que no se indexen. Joomla trae por defecto este archivo. Infórmate al respecto y adáptalo a tus necesidades.

12.- Uso descontrolado

No permitas el uso “descontrolado de componentes joomla”. Por ejemplo, si permites subidas de archivos (no recomendable, ya sabes) procura usar componentes que te permitan limitar el tamaño de los mismos y el tiempo de subida entre cada uno (antiflood suele llamarse).

Así evitaremos subidas o consultas automatizadas. Configura el antiflood para al menos 60 segundos. Lo mismo en el foro. Kunena (muy utilizado en Joomla) permite aplicar el antiflood para la publicación de mensjaes. Ponlo a 60 segundos. Conseguiras una protección joomla mas eficaz.

13.- Crear un nuevo Super Admin

Joomla asigna al admin el ID 62. Para cambiárselo, creamos un nuevo Super Administrador, y accediendo con el nuevo, al antiguio lo ponemos como Admin y luego ya podemos eliminarlo. Ahora tenemos nuestro Super Admin con otra ID. Si eres mañoso, esto también puedes hacerlo cambiando la ID con phpMyAdmin.

14.- Usuarios

Utiliza sistemas CAPTCHA en todas las secciones que puedas (sobre todo en el registro). No permitas participación pública, sinó siempre mediante registro. Revisa los usuarios registardos y observa que no aparecen repetidos o con nombres y correos sopechosos. Aquellos usuarios que aún no se han activado, elimínalos periódicamente.

15.- Administración y seguridad web joomla

Hay que evitar el acceso directa a la administración. Mediante contraseña en el servidor como digimos anteriormente, o también se puede cambiar el nombre de la carpeta “administrator”. Pero CUIDADO, esto requiere muchos cambios y puede ser complicado. Es una buena medida pero infórmate antes de aplicarla o dejarás el acceso al back-end inhabilitado.

16.- La configuración para la seguridad web Joomla

En las opciones de configuración de Joomla podemos hacer lo siguiente, siempre y cuando os sea posible:

Configuración Global > Sistema > Parámetros del Usuario: Activación de cuenta para Nuevos Usuarios > SI Parámetros para los Usuarios de la Portada > NO

Configuración Global > Sistema > Configuración Multimedia: Extensiones permitidas: Solo las imprescindibles> odt, csv, xcf, y muchas otras no sueles utilizarlas. ELIMINALAS.

Ruta del directorio de archivo & Ruta absoluta del directorio de imágenes> CAMBIALOS… pon nuevas rutas. Subidas restringidas > SI Tipos de MIME Permitidos > Igual que las extensiones permitidas. Habilitar la subida de Flash > NO

Configuración Global > Sistema > Parámetros de Depuración de errores: NO en las dos opciones

Configuración Global > Servidor > Configuración del Servidor: Ruta directorio Temporal > Cambiarla. Comprwsión GZIP > NO Informe de errores > NADA

Configuración Global > Servidor > Parámetros FTP: Habilitar FTP> NO

Cuando nos haga falta accedemos y lo habilitamos temporalmente.

17.- La configuración de Componentes para seguridad web joomla

En aquellos componentes que ofrezcan la posibilidad de configurar su seguridad y por ende protección joomla, utilizar las opciones más restrictivas y comprobar si funcionan. Crear htaccess en todos los componentes que os lo permitan. Los componentes que creen carpetas para almacenar archivos, modificar esas carpetas.

Por ejemplo, las Galería de Imágenes y los gestores de descargas suelen crear una carpeta para almacenar los ficheros. Cambiar la ubicación de la misma. Usa componentes que estén bien integrados en Joomla. Vistiva Joomla Extensions y ahí verás aquellos que según su popularidad están más utilizados. Por ejemplo, si quieres un foro, Kunena se integra perfectamente.

18.- Cosas evidentes sobre seguridad web joomla

  1. Tener siempre actualizado Joomla y los componentes.

    La inmensa mayoria de páginas, no solo de joomla, si no también de WordPress (Próximamente redactare un articulo sobre WordPress para explicar como protegerse de ataques, ya que es el CMS mas utilizado de largo y por tanto el mas deseado por los amigos de lo ajeno y dar razones de peso para que entiendan que no siempre es el mas indicado para su uso), si no de cualquier CMS (Gestor de contenidos) son hackeadas accediendo desde sus extensiones / plugins realizadas por terceros que hemos instalado en nuestro sistema.

  2. Utilizar contraseñas seguras con letras, números, mayúsculas y minúsculas. Guardarlas en lugar seguro y cambiarlas cada determinado tiempo.
  3. Instalar componentes de los lugares oficiales del desarrollador, o de lugares que os inspiren confianza (comprobar antes el soporte que ofrecen, como e sla web en donde ofrecen el componente…)
  4. Eliminar ficheros de instalación y ejemplos.

19.- El servidor

  1. Utilice las últimas versiones de PHP, MySQL (Hoy es aconsejable pasarse a MariaDB creado por Michael Widenius fundador de MySQL, en vez de MySQL y explicare el porque en otro articulo que estoy preparando )y en general todas los componentes de su servidor.
  2. Deshabilite el PING a su servidor.
  3. Si tienen instalados sistemas de Bases de Datos que no usa, por ejemplo PostreSQL etc… deshabilitelo. Todo lo que no use deshabilítelo.
  4. Configurar PHP correctamente. Debes tener tu Servidor configurado correctamente (si tienes acceso al archivo php.ini lo tienes fácil, pero htaccess también te permite configurar algunos parámetros):
  5. Deshabilitar register_globals
  6. Deshabilitar safe_mode
  7. Comprobar allow_url_fopen, lo mejor es que no se permita abrir ficheros remotos a un script.
  8. Comprobar allow_url_include, esta opción permite incluir ficheros php remotos, y ser ejecutados, en un script. Lo mejor es inhabilitarla.
  9. Utilizar disable_functions para deshabilitar algunas funciones que pudieran dejar tu sitio vulnerable. Algunas de estas funciones son: system, shell_exec, exec, phpinfo, etc
  10. Utilizar open_basedir para definir las rutas desde donde PHP tiene permiso para acceder a ficheros mediante funciones como fopen() o gzopen(). Si algún fichero esta fuera de las rutas incluidas en open_basdir, PHP no permitirá abrirlos.

RESUMEN:

register_globals = Off
display_errors = Off
log_errors = On
allow_url_fopen = Off
allow_url_include = Off
expose_php = Off

  1. Si es posible no use un servidor compartido. Si usa un servidor compartido, trate de ser malo y ver algo de otros usuarios. Si puedes ver por ejemplo las bases de datos de otros usuarios, pues a ti te está pasando lo mismo.
    Las opciones économicas son los Clouds
  2. En DNS Queries puedes ver las webs que comparten el servidor contigo, por si crees que alguna puede ser perjudicial.
  3. Logs: revisa los logs del servidor, puede que nos den pistas de si nos han intentado atacar.
  4. Utiliza el Firewall del servidor. Deja solo abiertos los puesrtos imprescindibles

20.- Herramientas online seguridad web joomla

Existen multitud de herramientas que analizan webs de manera gratuíta para averiguiar vulnerabilidades o si tienen virus. Puede que no sean muy fiables pero no está de más pasarle alguna a ver que resultados obtenemos para la protección joomla.

21.- Antivirus para seguridad web joomla

Un buen antivirus puedes pasárselo a los componentes joomla antes de instalarlo. Avast es una opción gratuita, que no es molesta y es actualizada regularmente en paneles Cpanel para seguridad web joomla y otros CMS que tengan instalados.

Si utilizas Cpanel puedes añadir a tu panel de control el antivirus ClamAV. Si no lo tienes activado, pidele a los administradores que te lo activen. Podras escanear tu sistema completo, incluido archivos joomla y correos electronicos.

22.- Compartir

Cualquier problema o idea que tengas sobre seguridad web joomla, debes compartirlo en la Comunidad Joomla. Es la mejor manera de evitar ataques y vulnerabilidades.

23.- Despues de un Ataque o Hackeo

NO TE FIES. Aunque localices los archivos implicados, haz una instalación limpia de Joomla. BORRA todo y vuelve a empezar, y vuelve a descargar todos los componentes joomla de sus sitios oficiales. Te ha pasado, ahora te va a llevar tiempo empezar de nuevo pero no hay alternativa ¿No querras que te vuelva a suceder verdad?.

Un post del Foro de solojoomla.com que te puede ayudar a empezar – Me han Hackeado y Borrado Todo

24.- Errores más frecuentes en seguridad web joomla

  1. No preocuparse de Joomla. Lo instalo, funciona y ya está.
  2. No dedicarle unos minutos cada día a revisar que todo funciona bien. Que los permisos son los correctos, etc…
  3. Confiar en cualquier componente. Lo buscamos, lo descargamos y lo instalamos.
  4. No tener el sitio web “limpio” no contribuye a la seguridad web joomla.
  5. No comprobar que un componente se ha desinstalado correctamente.
  6. Buscar la comodidad. Mejor hacerlo fácil, porque “nunca me va pasar a mi, no quiero complicarme”.
  7. No hacer copias de seguridad.
  8. Usar contraseñas repetidas en diferentes apartados o utilizar siempre el usuario «admin» para el Administrador.

Cualquier duda para aclaraciones, pueden preguntar en el foro de solojoomla o simplemenre rellena el siguiente formulario para que te ayudemos a solventar posibles problemas.

¡ Pide Presupuesto GRATIS ! – Rellenar el formulario solo te llevara 30″ segundos.

No es obligatorio, es simple cortesía para saber como dirigirnos a la persona que envío el formulario.
Por favor añada su email corercto para que podamos ponernos en contacto.
Indique aquí la dirección de la web en cuestión
Escriba aquí cual es son sus preferencias, si es que las tiene, a nivel de SEGURIDAD, para que nos hagamos una idea del alcance de sus preocupaciones.

Deja un comentario

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver Política de cookies
Privacidad