Joomla! Es uno de los gestores de contenidos o CMS más utilizados para realizar webs de todo tipo. Es un sistema que está bastante maduro, y soportado por una gran comunidad de desarrolladores que van mejorando y optimizando su código fuente con mejores características y funcionalidades.
Al estar el mismo código fuente instalado en millones de servidores en todo el Mundo, cualquier hacker frustrado y que esté aburrido, puede vulnerar el sistema fácilmente explotando los errores más comunes que suelen cometer los administradores y webmaster menos experimentados.
En lo referente a la seguridad, es un sistema que bien configurado es fiable y seguro. Desafortunadamente nadie puede garantizar al 100% que no vayas a sufrir una ataque, ni en Joomla!, ni en ningún otro sistema infrmático, pero sí que puedes minimizar riesgos. Si no tienes experiencia y no tomas las medidas oportunas, te puedes llevar un disgusto, por lo que te recomendamos una serie de medidas para asegurar tu web, y si tienes datos muy sensibles, acude a un profesional con experiencia para que haga el trabajo por ti.
Antes de comenzar con la lista de medidas, hay dos componentes que te recomendamos instalar, y que deberían venir de serie en la instalación oficial de Joomla!, que son el Admin Tools Pro y el Akeeba Backup Pro, desarrollados por Nicholas K. Dionysopoulos. Admin Tools es un paquete de utilidades para mejorar la seguridad y monitorizar los accesos a tu web y cambios en los archivos que la componen. Akeeba Backup es un componente de para realizar una copia de segurdad completa a tu web, muy útil y sencillo de usar.
Medidas de seguridad que deberías adoptar en tu Web Joomla!
A continuación te damos una serie de pautas para mejorar la seguridad de tu web en Joomla!
1. Instala tu web en un Hosting fiable
Elegir un proveedor de hosting muy barato o gratuito puede llegar a salirte muy caro, sobretodo si tu proyecto va en serio, no deberías escatimar en el alojamiento de tu web. Si vas a usar Joomla! Para una web con datos muy sensibles y confidenciales, contrata un servidor dedicado para tu web. Un hosting compartido tiene más riesgos, ya que tu web estará en un servidor con 50 ó 100 webs de otros clientes, por lo que hay más posibilidades de que por un error de otro cliente, se vea comprometida la seguridad global del servidor. Por poner un ejemplo, 1and1.es sigue utilizando la versión desfasada de PHP 5.2.17 en sus planes de hosting Linux, algo que puede comprometer la seguridad de tu web. Contrata un hosting que haga copias de seguridad diarias de tus archivos y bases de datos, pero también haz tú también las copias manualmente. Antes de contratar verifica el nivel de soporte técnico y pregunta en foros y comunidades de usuarios por experiencias previas con esa empresa.
2. Cambiar usuario y contraseña periódicamente
Aunque pueda parecer muy evidente, («de cajón» como diríamos en Canarias) muchos administradores cometen el error de usar contraseñas débiles o muy usuales (1234, admin, etc.). Cambia el usuario y pon contraseñas fuertes que contengas mayúsculas, minúsculas, números y caracteres especiales (utiliza la letra Ñ en tu contraseña, que no suele estar presente en los teclados y software en otros idiomas!). Usa un usuario y contraseña diferente al que utilizas para entrar en tu cuenta de hosting. Anótala en un sitio seguro fuera de tu ordenador (mejor a boli y papel, que ahí no hay virus que valga) o en tu agenda para que no la pierdas, que no serías el primero que no la recuerda y luego no puede entrar en su propia web.
3. Actualiza Joomla! los módulos, plantilla, componentes y plugins a su última versión
Es importante actualizar tu web a la última versión de Joomla!, descargándola desde su web oficial, ya que cada actualización soluciona problemas de seguridad encontrados y mejoras de rendimiento y funcionalidades. Las versiones 1.0 y 1.5 están desfasadas y no recibirán más actualizaciones, por lo que te recomendamos migrar a la versión 2.5. Actualiza también tu plantilla a su última versión, evitando usar las que trae el sistema por defecto. Haz lo mismo con todos los módulos, plugins y componentes que utilizas en tu web. Comprueba la lista de extensiones vulnerables antes de instalarlas.
4. Configuración archivo .htaccess
Aunque es un tema no apto para pezqueñines, es importante que sepas para qué sirve y que aprendas a configurar el archivo .htaccess. Con Admin Tools Pro puedes configurarlo fácilmente para bloquear el acceso a determinadas carpetas de tu web (por ejemplo la carpeta de tu plantilla), utilizar URL’s amigables para mejorar tu posicionamiento en buscadores, forzar que tu dominio se muestre con www o sin www para evitar contenidos duplicados que puedan perjudicarte en tu posicionamiento SEO, bloquear el acceso a determinados buscadores, bots o crawlers, etc.
5. Cambiar ID de Súper Administrador (42 y 62)
La instalación por defecto de Joomla! Usa el ID 42 o 62 en la base de datos para el Súper Administrador. Al cambiar el ID le ponemos más difícil a los hackers hacerse con el control de nuestra web. Para cambiarlo usa el Admin Tools Pro. Utiliza sólo un Súper Administrador.
6. Cambia los permisos a tu configuration.php a 444 y permisos a carpetas y archivos
Los permisos (CHMOD) son reglas que especifican quién puede leer, ejecutar o escribir una archivo de tu web. Normalmente se usa permisos 755 y 644 para tus archivos. Para Linux existen tres tipo de usuarios/propietarios: Owner o propietario, Group o grupo y Other/Public u otros. Y existen tres tipo de permiso: de lectura (r), escritura (w) y ejecución (x), y a cada permiso, los sistemas Linux los asignan a través de un valor numérico, así para lectura sería un «4», para escritura un «2» y para ejecución un «1». Puedes cambiar los permisos por FTP o con Admin Tools Pro, que es lo que te recomendamos si no tienes mucha experiencia. El archivo configuration.php deberías de dejarlo con permisos 444, y si tu web necesita de una configuración de seguridad muy alta, cambia el lugar del archivo configuration.php (no apto para pezqueñines).
7. Cambia el prefijo de las tablas de tu base de datos (que no sea _jos)
Si aún usas una versión de Joomla! 1.5 (¿a qué esperas para actualizarla?), Cambia el prefijo de las tablas de tu base de datos que vienen por defecto (_jos) en la instalación básica de Joomla!. En las últimas versiones de Joomla!, como la 2.5.x o la 3.0.x ya te genera un prefijo aleatorio en la instalación. Para cambiarlo puedes hacerlo fácilmente con Admin Tools Pro, o a mano con un editor de texto si tienes experiencia manejando las tablas de tu base de datos.
8. Configura el archivo robots.txt
Con el archivo robots.txt puedes bloquear el acceso de robots, también conocidos como bots, crawlers, spiders, arañas,… y buscadores a determinadas carpetas de tu web (descargas, documentos pdf, etc).
9. Deshabilita el registro de usuarios y la subida de archivos si no es necesario
Si no quieres un área privada para tus clientes en tu web o no vas a ofrecer contenidos restringidos sólo para usuarios registrados, lo mejor es que deshabilites el registro de usuarios. Si tienes algún componente que permita la subida de archivos (foro, área de descargas, etc.) bloquea la subida de archivos a tu web por parte de tus usuarios. Si vas a usar el registro de usuarios, utiliza sistemas CAPTCHA como Google reCaptcha para controlar los registros automatizados y el SPAM. Pon la clave que te da Google en el plugin ReCaptcha y actívalo desde el archivo de configuración. Revisa en tu panel de control y elimina los usuarios que no se hayan activado (porque no hayan pinchado en el enlace de activación que les llega a su email) y los que tengan emails sospechosos (teminados en .ru, o .kz, etc.). No seas tan ingenuo como para pensar que tus contenidos les interesan a 150 usuarios rusos y 80 turcos.
10. Utiliza un cortafuegos en tu Joomla!
En proyectos importantes o en donde se guardan datos sensibles, deberías usar un cortafuegos para restringir el acceso de determinadas IPs a tu web. Admin Tools Pro tiene un firewall que registra los intentos de accesos erróneos que se hacen manualmente o con programas y scripts automatizados para probar por fuerza bruta gran cantidad de combinaciones de usuarios y claves. Te asombraría conocer la cantidad de intentos de acceso a tu panel de control. ¡En dos meses hemos tenido 10200 intentos de accesos erróneos a nuestra web!
11. Limita el número de componentes y módulos en tu web
Utiliza sólo los módulos, plantillas, plugins y componentes estrictamente necesarios y desinstala los que no te hagan falta. De este modo minimizarás riesgos de que vulneren la seguridad de tu web entrando en tu sistema por un componente mal programado y que encima no uses o que fuese prescindible. Descárgalos siempre desde su web oficial o desde la web oficial de joomla!. Normalmente las extensiones de pago están mejor programadas, son más seguras, y se actualizan con mayor frecuencia que las gratuitas.
12. Audita la seguridad de tu web. Myjoomla.com o sucuri.net
Cuando hayas terminado de implementar estas medidas de seguridad, haz una auditoría de seguridad con myjoomla.com para evaluar la seguridad de tu web y que te digan los cambios y medidas adicionales que deberías adoptar.
13. Utiliza un servidor dedicado con certificado SSL
Para proyectos que requieran de un nivel máximo de seguridad, como una tienda online, debido al tipo de contenidos y datos sensibles (datos personales, números de tarjetas de crédito, etc.) es recomendable contratar un servidor dedicado y configurar un certificado SSL de 256 bits. Otra ventaja es que le das más confianza a tus clientes, ya que estarán haciendo una transacción económica en una web que tiene un alto nivel de seguridad. Deja esto en manos de profesionales si no tienes la experiencia suficiente para configurar y administrar un servidor dedicado con SSL.
14. Utiliza un buen antivirus en tu ordenador
De nada te servirán las medidas que adoptes en tu servidor y en tu web si el ordenador con el que trabajas habitualmente no cuenta con un buen antivirus actualizado. Si vulneran tu ordenador, podrás conseguir tus claves FTP y ve preparando el pañuelo para secarte las lágrimas.
Evita darle claves de FTP a colaboradores o clientes que no tengan experiencia suficiente, porque de la misma forma pueden obtener las claves FTP en un ordenador de un colaborador o cliente.
15. Haz copias de seguridad de tu web
Por último haz copias de seguridad con frecuencia de tu web y descárgalas a tu disco duro. Te recomendamos que uses Akeeba Backup Pro, porque puedes hacerlo en pocos clicks, y sin dificultad. Puedes incluir o excluir en tu copia de seguridad archivos y bases de datos que tengas en tu servidor. Una vez que haya terminado la copia, descárgala en tu disco duro por FTP. Si necesitas restaurar una copia de seguridad hecha con Akeeba Backup sigue esta guía.
Hay muchas más medidas de seguridad que se pueden adoptar, pero siempre que actúes con sentido común podrás evitar sorpresas desagradables. Como administrador de una web tienes la responsabilidad de mantener la custodia de los datos de nuestros usuarios y cumplir con lo dispuesto en la Ley de Protección de Datos. Si no tienes nivel o experiencia suficiente, recurre a un profesional que administre la seguridad de tu web y de tu servidor.
Podrás encontrar más información en la web oficial de joomla! y en sus foros.
¿Hay alguna medida importante que no hayamos mencionado? Déjanos un comentario y dinos qué medidas crees que hay que adoptar sí o sí para tenr una web más segura.