Escuela
...
Seguridad de Joomla

Seguridad de Joomla

Dmytro Sokol
Dmytro Sokol
Experto en hosting (experiencia de 17 años )
1348
5 minutos

En este artículo describimos los pasos principales que pueden ayudarle a hacer más seguro su sitio web construido con Joomla y evitar que sea hackeado. Por supuesto, no podemos garantizar que su sitio será 100% seguro después de seguir estos pasos, ya que incluso los sitios más seguros (como Facebook) pueden ser hackeados. No obstante, le aconsejamos seguir las recomendaciones de este artículo para estar en el lado seguro.

¡Nota! Recomendamos encarecidamente revisar también las recomendaciones generales de seguridad, ya que no se mencionarán en este artículo. Son aplicables a todos los sitios, independientemente del CMS utilizado. Este artículo describe recomendaciones específicamente para la seguridad del CMS Joomla.

¿Cómo asegurar un sitio construido con Joomla?

1. Actualizaciones

No olvide actualizar su CMS de forma regular. Las versiones más recientes son más seguras, ya que las vulnerabilidades detectadas previamente suelen corregirse.

2. Módulos de seguridad

La mayoría de los siguientes pasos pueden ejecutarse automáticamente mediante módulos de seguridad. Sin embargo, estos módulos suelen ser de pago. Aun así, incluyen multitud de funciones, como notificaciones por correo electrónico sobre intentos de acceso no autorizados. Los módulos de seguridad de Joomla más populares son RSFirewall! y Admin Tools.

3. .htaccess

Lo más probable es que el archivo htaccess.txt se cree automáticamente. Debe renombrarlo a .htaccess y configurarlo correctamente para proteger su sitio web. Puede encontrar las directrices en la base de conocimientos del proveedor de hosting.

4. Restricción de IP para el acceso al login

Restringa el acceso al área de administración por dirección IP. Para bloquear todas las direcciones IP excepto una, debe añadir el siguiente texto al archivo .htaccess:

order deny,allow
allow from xxx.xx.xxx.xx
deny from all

xxx.xx.xxx.xx debe reemplazarse por la dirección IP que utiliza para iniciar sesión en el panel de administración (o por la que no debería estar restringida).

A partir de entonces, solo los usuarios que inicien sesión desde la IP indicada tendrán acceso a la carpeta administrator.

5. Extensiones de terceros

No descargue extensiones de terceros sospechosas. Recomendamos descargarlas únicamente del sitio web oficial, porque Joomla en sí es un CMS bastante seguro; sin embargo, los atacantes pueden obtener acceso a su sitio a través de extensiones o módulos. Por ejemplo, instala un módulo de discusión. El atacante puede insertar código malicioso en lugar de un comentario o un archivo adjunto y obtener acceso a los datos de su sitio. En caso de que ya haya instalado extensiones de terceros, le recomendamos eliminarlas.

6. Permisos de archivos

Configure los siguientes valores de permisos: 755 para carpetas y 644 para todos los archivos, excepto configuration.php. Este último debe tener 444 como valor de permiso.

7. Nombre de usuario del superadministrador

No utilice ‘admin’ como nombre de usuario del Superadministrador. Cree un usuario con un nombre complejo y no obvio.

8. Habilitar SEF

Habilitar enlaces SEF (Search Engine Friendly, amigables para motores de búsqueda) no es una forma muy efectiva de proteger su sitio, pero vale la pena intentarlo.

9. Configuración de PHP

Deshabilite las siguientes configuraciones de PHP: register_globals, safe_mode, allow_url_fopen y allow_url_include. Además, habilite las funciones disable_functions y open_basedir. Si no es posible editar las configuraciones mencionadas desde el panel de control de hosting, contacte con el equipo de soporte del proveedor de hosting para verificar si pueden habilitar/deshabilitar estas directivas.

10. FTP

Elimine todos los datos de FTP. Para hacerlo, haga clic en Sistema, seleccione Configuración global y haga clic en la pestaña Servidor.

11. Duración de la sesión

Asegúrese de que el valor de duración de la sesión sea de 10-15 minutos. Puede cambiar la configuración de sesión en el menú Sistema seleccionando Configuración global. Una vez allí, seleccione la pestaña Sistema.

12. Mover el archivo de configuración

Si es posible, es mejor mover el archivo configuration.php fuera de la carpeta pública (normalmente, public_html). Para hacerlo, siga los pasos a continuación:

a) Copie el archivo configuration.php y pégelo en cualquier otra carpeta fuera de public_html (por ejemplo, en una carpeta un nivel por encima en la jerarquía de archivos).

b) Ubique los archivos /includes/defines.php y /administrator/includes/defines.php y luego encuentre la línea que contienen.

define( 'JPATH_CONFIGURATION', JPATH_ROOT );

c) En esta línea debe indicar la nueva ubicación del archivo configuration.php. Por ejemplo, si mueve el archivo de public_html a la carpeta llamada ‘test’ que está un nivel por encima de public_html, la línea debería verse así:

define( 'JPATH_CONFIGURATION', JPATH_ROOT.DS.'..'.DS.'test' );

d) Mueva el archivo configuration.php a la nueva carpeta y elimínelo de la antigua.

e) Tenga en cuenta que ya no podrá cambiar la configuración del sistema a través del panel de administración de Joomla. A partir de ahora deberá editar el archivo configuration.php directamente.

13. Registros y archivos temporales

Recomendamos mover también los archivos temporales (tmp) y de registro (logs) fuera de la carpeta public_html. Para ello, busque las siguientes líneas en el archivo configuration.php (hemos reemplazado la ruta real por letras):

var $log_path = '/home/xxxx/yyyyyy/zzzz/logs/';
var $tmp_path = '/home/xxxx/yyyyyy/zzzz/tmp/';

Una vez localizadas, edite las rutas existentes (indique la ruta del nuevo directorio) y luego copie los archivos temporales y de registro a la nueva carpeta.

14. Prefijo de la base de datos

Cambie el prefijo predeterminado de la base de datos. Aquí puede encontrar las instrucciones detalladas. Si no está muy familiarizado con los principios de funcionamiento de las bases de datos, es mejor no hacer cambios por su cuenta (los módulos de seguridad descritos en el punto 2 serían una mejor opción). Este método puede proteger parcialmente su sitio de inyecciones SQL; por ejemplo, puede impedir que el atacante acceda a las credenciales de inicio de sesión del panel de administración (desde la tabla jos_users). No obstante, para estar completamente protegido contra inyecciones SQL recomendamos usar módulos de seguridad (punto 2).

15. Copias de seguridad

Para estar seguro, se recomienda hacer copias de seguridad todos los días. Si no tiene la posibilidad de hacerlas con tanta frecuencia, al menos haga una copia de seguridad de su sitio antes de cambiar cualquier configuración o instalar un nuevo plugin o módulo.

16. Análisis de virus

Analice sus sitios en busca de virus al menos una vez cada dos semanas y, especialmente, después de instalar un nuevo plugin o módulo.

17. Certificados SSL

Hay muchas empresas que ofrecen certificados SSL como Comodo, Symantec o Let’s Encrypt. Este último suele ser ofrecido por las compañías de hosting de forma gratuita. Para habilitar un certificado SSL, es necesario editar la configuración correspondiente en el panel de control del hosting y en el archivo configuration.php de la siguiente manera:

Ubique la directiva live_site e introduzca

$live_site = ‘https//yourdomain.tld’;

Asegúrese de que NO haya una barra después del dominio.

Establezca el valor de force_ssl en ‘2’. Esto significa que tanto el sitio web como su panel de administración serán accesibles solo a través del protocolo https.

Si tiene cualquier sugerencia relacionada con la seguridad de sitios web en Joomla, no dude en dejarlas en la sección de comentarios y con gusto las añadiremos al artículo. Asimismo, tenga en cuenta que la implementación de cualquiera de las medidas de seguridad mencionadas puede influir en el rendimiento de su sitio web. Así que asegúrese de haber hecho una copia de seguridad de su sitio antes de realizar cualquier cambio.

¿No hay respuesta a su pregunta?

Haga su pregunta y reciba una respuesta de un experto, un miembro de nuestro soporte técnico, en su correo electrónico

Nuestros expertos

nuestro experto  Nickola Naous
Nickola Naous
nuestro experto  Oliver Salo
Oliver Salo
nuestro experto  László Kovács
László Kovács
nuestro experto  Maxim Malacili
Maxim Malacili
nuestro experto  Oleg Jaritinov
Oleg Jaritinov
nuestro experto  Pavan Nikam
Pavan Nikam
nuestro experto  Md Billal Hossain Sarker
Md Billal Hossain Sarker
nuestro experto  Zion Owelle
Zion Owelle
nuestro experto  Banko Stoyanov
Banko Stoyanov

37 expertos están listos para ayudarle a tomar la decisión correcta

Valoraciones de proveedores de hosting por categorías