Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki

Joomla!: Instalar Joomla! 3.1 en Linux Ubuntu Server 13.04 con Apache + PHP + MySQL
CMS, ECM, Gestor de contenidos web


Cómo instalar Joomla! 3.1 en equipo con Linux Ubuntu Server 13.04. Mostramos algunas de las novedades de esta nueva versión y los requisitos necesarios para su instalación, cómo crear la base de datos y el usuario, cómo establecer las opciones de seguridad de los ficheros y carpetas, instalar paquetes de idioma y enumeramos algunas consideraciones básicas para mejorar la seguridad de Joomla!.



Novedades Joomla! 3.1

La nueva versión del gestor de contenidos web (CMS) Joomla! 3.1 incluye numerosas mejoras con respecto a versiones anteriores, a continución indicamos algunas de ellas:

  • Incorporación de Twitter Bootstrap, un framework CSS para desarrolladores.
  • Nuevas plantillas para frontend y backend que utilizan Twitter Bootstrap y se adaptan a dispostivios móviles.
  • Plantilla accesible Beez3 actualizada.
  • Proceso de instalación simplificado.
  • Driver para bases de datos Microsoft SQL Server.
  • Driver para bases de datos PostgreSQL.
  • Driver para PHP Memcached.
  • Utilización de Jfeed para la administración de los feeds.
  • Instalación de los idiomas directamente desde el gestor de extensiones.
  • Grupo invitados disponible por defecto.
  • Posibilidad para guardar artículos vacíos.
  • Nuevo módulo de estadísticas para la administración.
  • Actualización de TinyMCE a la versión 3.5.6.
  • Limpieza de código en desuso, archivos y campos de las tablas y mejor estandarización de las tablas.
  • Mejoras en la Búsqueda Inteligente.
  • Mayor estandarización y consistencia del código.
  • Prueba de unidad en el CMS.   
  • Test del sistema actualizados.
  • Elemento activo del menu personalizado para el módulo del menú.
  • Permitir al plugin SEF añadir la url canonica a la cabecera.
  • Versión 12.2 de la Plataforma Joomla.

 

Requisitos para instalar Joomla! 3.1 en Linux y crear un sitio web profesional de forma gratuita

Requisitos para instalar Joomla 3.1 en Ubuntu Server 13.04

Instalaremos Joomla! 3.1 sobre un equipo con Linux Ubuntu Server, por lo que, en primer lugar necesitaremos un equipo (virtual o físico) con sistema operativo Linux. Además Joomla! se iniciará sobre Apache y PHP y utilizará una base de datos MySQL. En los siguientes tutoriales mostramos cómo instalar (Linux + Apache + PHP + MySQL):

 

Requerimientos oficiales de Joomla 3.x

Software
Recomendado
Mínimo
PHP (Magic Quotes GPC off)
5.3.1 +
5.3.1 +
Bases de datos soportadas:
MySQL (requerido soporte para InnoDB)
5.1 +
5.1 +
Microsoft SQL Server
10.50.1600.1+
10.50.1600.1+
PostgreSQL
8.3.18 +
8.3.18 +
Servidores web soportados:
Apache (con mod_mysql, mod_xml, and mod_zlib)
2.x +
2.x +
Nginx
1.1
1.0
Microsoft IIS
7
7

 

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Crear base de datos y usuario en MySQL para Joomla!

Antes de instalar Joomla! deberemos preparar MySQL (base de datos). Para ello crearemos una base de datos en MySQL y un usuario con permisos para usar esta base de datos. Será la base de datos y el usuario que asignaremos a Joomla!. Para crear una base de datos en MySQL Server podremos hacerlo desde la línea de comandos como indicamos a continuación.

Conectaremos con MySQL mediante MySQL monitor, con el comando:

mysql --user="root" --password="xxx"

("root" será un usuario de MySQL con permisos suficientes para crear bases de datos y usuarios, "xxx" será la contraseña de este usuario)

Una vez conectados ejecutaremos el siguiente comando para crear la base de datos "joomla3":

create database joomla3;

Ahora crearemos el usuario con el que nos conectaremos a MySQL desde Joomla! con el comando:

create user 'usujoomla'@'%' identified by 'xxx';

(donde "usujoomla" será el nombre de usuario y "xxx" la contraseña)

Por último estableceremos los permisos de ALTER, UPDATE, DELETE, INSERT, SELECT, CREATE, DROP a este usuario para todas las tablas de la base de datos creada anteriormente (joomla3) con el comando:

grant all on joomla3.* to 'usujoomla'@'%';

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Atención: en este ejemplo estamos usando "%" para permitir que se pueda acceder con el usuario "usujoomla" de MySQL desde cualquier equipo de la red, si queremos limitar el acceso una determinada IP cambiaremos "%" por la IP.

Podremos administrar MySQL con MySQL Workbetch también en modo gráfico si disponemos de Xming (o modo gráfico de Linux) como indicamos en el siguiente tutorial:

 

Descargar e instalar Joomla! 3 en Linux

A continuación explicaremos cómo instalar Joomla! 3 en un equipo con Linux Ubuntu Server, este método es válido para cualquier distribución de Linux incluso muy semejante para Windows. Asumiremos que nos conectaremos a Linux Ubuntu Server mediante PuTTY (como explicamos aquí), también explicamos la instalación si no usamos PuTTY para conectarnos al servidor Linux Ubuntu, para los casos en que sólo podamos trabajar en la terminal de Linux directamente.

Una vez preparado el equipo con Linux Ubuntu Server y Apache + PHP + MySQL, como mostramos aquí, descargaremos el paquete de instalación de Joomla!. Si utilizamos Linux Ubuntu Server y no disponemos de Xming para iniciar Firefox en el propio servidor (como indicamos aquí) deberemos descargarlo por comando. Accederemos a la carpeta por defecto de nuestro sitio web en el servidor (en el caso de Apache y Linux, por defecto, será /var/www), para posicionarnos en esta carpeta ejecutaremos el comando:

cd /var/www

Una vez posicionados en la carpeta correspondiente al sitio web, ejecutaremos el siguiente comando para descargar el fichero de instalación de Joomla! 3:

wget http://joomlacode.org/gf/download/frsrelease/18323/80368/Joomla_3.1.1-Stable-Full_Package.zip

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Como decimos, si disponemos de modo gráfico con Xming y tenemos instalado Firefox (como indicamos aquí), podremos descargar el fichero de instalación de Joomla! sin tener que usar el comando anterior, desde la ventana de terminal con PuTTY ejecutaremos el comando:

firefox

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Se abrirá la ventana de Mozilla Firefox en nuestro PC con Windows (ejecutándose en el servidor Linux Ubuntu Server), desde aquí accederemos a la URL:

http://www.joomla.org/download.html

Pulsaremos en "Download Joomla! 3.1 English (UK), 3.1.1 Full Package, ZIP)":

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Marcaremos "Save File":

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Y guardaremos el fichero descargado en la carpeta /var/www o en la carpeta de nuestro sitio web:

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Una vez descargado el fichero de instalación de Joomla (o bien con el comando wget o bien con el modo gráfico y Firefox) lo deberemos descomprimir. Utilizaremos el comando "unzip", que previamente instalaremos en Linux Ubuntu Server, para instalarlo ejecutaremos:

sudo apt-get install unzip

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Para descomprimir el fichero de instalación de Joomla! 3 ejecutaremos:

unzip Joomla_3.1.1-Stable-Full_Package.zip

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Tras descomprimirlo podremos eliminar el fichero .zip con el comando:

rm Joomla_3.1.1-Stable-Full_Package.zip

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Ejecutando el siguiente comando podremos listar las carpetas y ficheros de Joomla! 3:

ls -lah

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Antes de continuar, si en la carpeta del sitio web teníamos el fichero index.html (que por defecto genera la instalación de Apache) deberemos eliminarlo para que Joomla! se inicie (si dejamos el fichero index.html cuando se acceda a nuestro sitio web se abrirá éste y no el index.php de Joomla). Para eliminar el fichero "index.html" de prueba de Apache de nuestro sitio web ejecutaremos el siguiente comando (desde la carpeta del sitio web /var/www):

rm index.html

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Continuaremos con la instalación de Joomla! 3, ahora podremos ejecutar el instalador desde un navegador web, o bien ejecutando Firefox desde la consola de terminal de PuTTY (si tenemos activado Xming):

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Si no disponemos de PyTTY y Xming para Linux Ubuntu Server, podremos acceder desde cualquier equipo de la red abriendo un navegador web e introduciendo la IP del servidor web Linux en la barra de direcciones:

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

En el primer acceso Joomla! detectará que aún no ha sido instalado, por po que iniciará el asistente para instalar Joomla! 3. Introduciremos los siguientes datos en el primer paso:

  • Seleccione el idioma: seleccionaremos el idioma de instalación de Joomla! 3.
  • Nombre del sitio: nombre del sitio web, un nombre no muy largo, por ejemplo el nombre de la organización "Proyecto AjpdSoft".
  • Descripción: breve descripción del sitio web, a modo de slogan.
  • El correo electrónico del administrador: email del usuario administrador, para recibir notificaciones.
  • Nombre de usuario del administrador: nombre de usuario administrador (superusuario de Joomla!), no recomendamos usar nombres comunines por seguridad como "admin", "administrator", "administrador", etc. sino nombre no estándar como "conadmjoo".
  • Contraseña del administrador: contraseña para el superusuario administrador, es recomendable usar una contraseña segura (números, letras mayúsculas, letras minúscilas, signos).
  • Confirmar contraseña del administrador: repetiremos la contraseña.
  • Sitio fuera de línea: Joomla! 3 nos permite dejar, de forma inicial, el sitio fuera de línea tras la instalación. Así podremos establecer la configuración y contenidos iniciales antes de que los usuarios puedan ver el resultado.

Tras introducir los datos pulsaremos "Siguiente":

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

En el segundo paso de la instalación de Joomla! 3 estableceremos los datos de conexión a la base de datos:

  • Tipo de base de datos: elegiremos MySQL ó MySQLi, normalmente "MySQL".
  • Hospedaje: IP o nombre DNS donde esté ubicado el servidor de MySQL, normalmente suele estar en el mismo servidor que Joomla! por lo que suele ser "localhost".
  • Usuario: usuario creado anteriormente con permisos para la base de datos Joomla. En nuestro caso "usujoomla".
  • Contraseña: contraseña del usuario anterior.
  • Base de datos: nombre de la base de datos creada anteriormente, en nuestro caso "joomla3".
  • Prefijo de las tablas: caracteres que se añadirán al principio del nombre de las tablas, esto es útil cuando usamos la misma base de datos para varias versiones de Joomla! (o para otros menesteres), con el prefijo no reemplazaremos otras tablas existentes.
  • Proceso para una base de datos antigua: Joomla! 3 nos da la posibilidad de eliminar tablas de algún Joomla! anterior o bien de hacer un respaldo y no reemplazarlas. En nuestro caso es una instalación nueva por lo que esta opción no tendrá lugar.

Tras introducir los datos de la base de datos MySQL, pulsaremos "Siguiente":

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

En el paso 3 de la instalación podremos elegir las opciones para la configuración del FTP de Joomla!, lo recomendable es habilitar la capa de FTP (si la vamos a necesitar) y no establecer usuario y contraseña (no es muy seguro). Introduciremos los datos que deseeemos y pulsaremos "Siguiente":

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

En el último paso de la instalación de Joomla! 3 podremos elegir las siguientes opciones:

  • Instalar los datos de ejemplo: para usuarios noveles en Joomla! que ya quieran disponer de algún contenido de ejemplo con artículos, categorías, menús y demás marcaremos alguna de las opciones siguientes:
    • Datos de ejemplo tipo blog.
    • Datos de ejemplo tipo folleto.
    • Datos de ejemplo predeterminados.
    • Datos de ejemplo: Learn Joomla.
    • Datos de ejemplo: Test.
  • Si queremos recibir los datos de configuración de Joomla! por correo electrónico activaremos "Configuración del correo electrónico".

El asistente para instalar Joomla! 3 nos mostrará más abajo los valores elegidos para la instalación (configuración principal, configuración de la base de datos):

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Y en la parte inferior "Configuración del FTP" y el resultado de las comprobaciones de compatibilidad de Joomla! 3 con nuestro sistema Apache + PHP:

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Joomla! 3 nos mostrará las comprobaciones y si cumplimos con cada una de ellas, normalmente harán referencia a algún paquete instalado en el sistema o a algún valor de configuración de PHP o Apache:

Versión de PHP >= 5.3.1
Comillas mágicas GPC desactivadas
Registros globales desactivado
Soporte de compresión Zlib
Soporte XML
Soporte para la base de datos:
(mysql, mysqli, pdo)
Mbstring language predeterminado
Mbstring overload desactivado
Soporte para análisis INI
Soporte JSON
configuration.php escribible No

Las configuraciones recomendadas (Joomla! nos mostrará las recomendadas y cómo las tenemos en nuestro sistema):

Directiva
Recomendado Actual
Modo seguro Desactivado Desactivado
Mostrar errores Desactivado Activado
Subida de archivos Activado Activado
Comillas mágicas en tiempo de ejecución Desactivado Desactivado
Área de intercambio ('buffer') de salida Desactivado Activado
Inicio automático de sesión Desactivado Desactivado
Sporte ZIP nativo Activado Activado

En nuestra instalación, puesto que no hemos asignado los permisos de escritura a la carpeta del sitio web Joomla!, en la comprobación previa de "configuration.php escribible" nos indicará "No", a continuación mostraremos cómo solucionar este problema. Este paso no sería necesario si hubiéramos establecido más permisos a la carpeta /var/www (como indicamos aquí). Volveremos a la parte superior de la página del paso 4 y pulsaremos "Instalar":

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Se iniciará la instalación definitiva de Joomla! 3 (el asistente mostrará una barra de progreso), que configurará los ficheros de Joomla y creará las tablas de la base de datos MySQL. Tras la instalación, si todo es correcto, el asistente nos indicará "¡Felicidades! Ahora Joomla! ya está instalado":

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Como hemos comentado, en nuestro caso, al no establecer permisos suficientes, deberemos solucionar el problema de la creación del fichero "configuration.php". Para ello copiaremos el texto del cuadro de edición que el asistente nos proporciona (con el contenido que debería tener nuestro fichero "configuration.php"):

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Mostrar contenido de ejemplo de un fichero configuration.php de Joomla! 3.1.1

Desde la ventana de terminal de Linux ejecutaremos el siguiente comando (en /var/www) para crear el fichero configuration.php:

sudo nano configuration.php

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Ahora pegaremos el texto copiado desde la web de instalación de Joomla!, guardaremos los cambios pulsando "Control + O" y cerraremos la edición pulsando "Control + X":

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

El siguiente paso será eliminar la carpeta de instalación de Joomla!, por seguridad es muy recomendable eliminarla, para ello pulsaremos en "Eliminar carpeta de instalación":

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Si falla el proceso (por permisos) podremos eliminarla desde la línea de comandos ejecutando (en la carpeta /var/www):

rm -r installation

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Y ya tendremos nuestro sitio web en Joomla! 3 (de momento con el contenido de ejemplo), para mostrarlo introduciremos la IP del servidor Linux en cualquier navegador web de cualquier equipo de la red:

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

Para acceder a la administración introduciremos la URL:

http://ip_servidor_joomla/administrator

Nos solicitará usuario y contraseña (introduciremos el establecido en el proceso de instalación):

Instalar Joomla! 3.1 en un equipo con Linux Ubuntu Server 13.04, Apache, PHP y MySQL

 

Seguridad de ficheros y carpetas en Linux para Joomla!

La configuración de seguridad recomendable para los archivos y carpetas de Joomla! 3 es:

  • Carpetas: 755.
  • Archivos: 644.

Con el siguiente comando estableceremos los permisos de todas las carpetas (de forma automática) a 755:

find /www/var -type d -exec chmod 755 {} \;

Y con este otro comandos estableceremos a 644 los permisos para todos los archivos de Joomla! de forma automática:

find /ruta/hacia/joomla -type f -exec chmod 644 {} \;

Seguridad de ficheros y carpetas en Linux para Joomla!

Si tenemos problemas de seguridad ejecutaremos el siguiente comando para establecer como propietario de la carpeta de nuestro sitio web Joomla! a "www-data" del grupo "www-data" (por defecto, si hemos utilizado otro usuario o grupo para el inicio de Apache lo cambiaremos por el establecido):

sudo chown -R www-data.www-data /var/www

A continuación explicamos qué significan estos números 755 y 644 para aquellos usuarios no experimentados en Linux:

  • 755: drwxr-xr-x
    • Los propietarios, es decir el usuario www-data o el usuario propietario de la carpeta de Joomla!, tendrán control total (lectura, escritura y ejecución) sobre las carpetas del servidor (7).
    • Los miembros del grupo ("www-data" por defecto) tendrán permisos de lectura y ejecución (5).
    • El resto de usuarios, los que acceden a la página web de forma pública y sus servicios, tendrán permisos de lectura y ejecución (5).
  • 644: -rw-r--r--
    • Los propietarios tendrán permiso de lectura y escritura sobre los archivos del servidor (6).
    • Los miembros del grupo tendrán permisos de lectura (4).
    • El resto de usuarios tendrán permisos de lectura (4).

En la notación simbólica (drwxr-xr-x y -rw-r--r--) el primer carácter indica el tipo de fichero:

Valor Descripción
-
Fichero regular
d
Directorio
b
Fichero especial como dispositivo de bloque
c
Fichero especial de caracteres
l
Enlace simbólico
p
Tubería nombrada (FIFO)
s
Zócalo de dominio (socket)

En cuanto a los permisos en la notación simbólica:

Valor Descripción
r
Lectura
w
Escritura
x Ejecución

Siempre se establecen en este orden rwx, si algún archivo no tiene alguno de los permisos se sustituirá por "-", por ejemplo, si no tiene el permisos de escritura será r-x.

La tabla de permisos en notación octal con su equivalente en notación simbólica:

Octal Simbólica Significado
0
-
Nada
1
x
Ejecución
2
w
Escritura
3
wx
Escritura y ejecución
4
r
Lectura
5
rx
Lectura y Ejecución
6
rw
Lectura y Escritura
7
rwx
Lectura, Escritura y Ejecución

El 3 (wx) es el resultado de 1+2 (w+x). El 5 (rx) es el resultado de 4+1 (r+x). El 6 (rw) es el resultado de 4+2 (r+w). El 7 (rwx) es el resultado de 4+3 (r+xw).

Si con los permisos anteriores experimentamos problemas con Joomla! (a veces en determinados hosting puede ocurrir) y si necesitamos realizar cambios en la configuración global de Joomla! 3 o bien si vamos a instalar algún plugin, módulo, componente, idioma o plantilla y se produce algún error (normalmnete por falta de permisos) estableceremos los permisos de todos los archivos y carpetas de Joomla! a 777 con el comando:

sudo chmod 777 -R /var/www

(suponemos que nuestro sitio web Joomla! 3 está en /var/www)

Aunque no es recomendable por seguridad, el comando anterior solo lo ejecutaremos mientras configuramos nuestro sitio web Joomla! y en caso de problemas, una vez finalizada la configuración y cuando ya hayamos instalado los plugin, módulos, componentes, idiomas y plantillas necesarios dejaremos la seguridad como indicamos al principio de esta sección.

 

Instalar idioma y establecer idioma por defecto para la administración de Joomla! 3.1

Accederemos a la administración de Joomla!:

Instalar idioma y establecer idioma por defecto para la administración de Joomla! 3.1

Pulsaremos en el menú "Extensions" - "Language Manager":

Instalar idioma y establecer idioma por defecto para la administración de Joomla! 3.1

Pulsaremos en "Install Language":

Instalar idioma y establecer idioma por defecto para la administración de Joomla! 3.1

Buscaremos "spanish", lo marcaremos y pulsaremos en "Install":

Instalar idioma y establecer idioma por defecto para la administración de Joomla! 3.1

Si todo es correcto nos mostrará "Installing Spanish was successful":

Instalar idioma y establecer idioma por defecto para la administración de Joomla! 3.1

Tras instalar el paquete de idioma lo estableceremos como idioma por defecto para el sitio, para ello pulsaremos en el menú "Extensions" - "Language Manager":

Instalar idioma y establecer idioma por defecto para la administración de Joomla! 3.1

A continuación pulsaremos en "Installed-Site", marcaremos "Spanish" y pulsaremos en "Default":

Instalar idioma y establecer idioma por defecto para la administración de Joomla! 3.1

Si todo es correcto nos indicará:

Default Language Saved. This does not affect users that have chosen a specific language on their profile or on the login page.
Warning! When using the multilanguage functionality (i.e. when the plugin System - Languagefilter is enabled) the Site Default Language has to also be a published Content language

Instalar idioma y establecer idioma por defecto para la administración de Joomla! 3.1

Repetiremos el proceso para establecer el idioma instalado por defecto también para la administración, seleccionando "Installed - Administrator" y marcando el idioma instalado y "Default":

Instalar idioma y establecer idioma por defecto para la administración de Joomla! 3.1

Si cerramos sesión pulsando en "Super User" - "Logout":

Instalar idioma y establecer idioma por defecto para la administración de Joomla! 3.1

Y volvemos a iniciar sesión nos aparecerá el idioma instalado en el desplegable, si lo hemos establecido por defecto nos aparecerá seleccionado directamente:

Instalar idioma y establecer idioma por defecto para la administración de Joomla! 3.1

Y ya tendremos nuestro sitio web Joomla! traducido a nuestro idioma:

Instalar idioma y establecer idioma por defecto para la administración de Joomla! 3.1

 

Consideraciones básicas para mejorar la seguridad de Joomla!

A continuación indicamos algunas consideraciones a tener en cuenta para mejorar la seguridad de nuestro sitio web Joomla! y evitar (en la medida de lo posible) fallos de seguridad que puedan permitir a un atacante modificar nuestro sitio web Joomla!:

  • Eliminar la carpeta de instalación de Joomla! (como hemos explicado en este tutorial). Dejar por descuido esta carpeta tras la instalación puede ser un fallo de seguridad grave.
  • Evitar instalar plugins, módulos, componentes y plantillas de sitios dudosos o de dudoso funcionamiento. Siempre es recomendable hacer testeos en un Joomla! de prueba y no en el de producción. Muchas extensiones pueden contener código malicioso o bien no estar correctamente desarrolladas y ser vulnerables, por lo que debemos instalar sólo aquellas extensiones que realmente necesitemos y, a ser posible, de fuentes conocidas.
  • Copia de seguridad diaria de la base de datos y ficheros de Joomla!: es muy recomendable hacer copia de seguridad diaria y, a ser posible, aplicar una política de retención alta de forma que dispongamos de las copias de varias semanas. De esta forma, si detectamos un ataque (a veces es difícil cuando sólo se ha modificado algún texto de nuestro sitio web) podremos recuperar la BD a un momento del tiempo antes de que fuera hackeada.
  • Configuración global de Joomla! lo más restrictiva posible (por ejemplo evitando el modo debug).
  • Mantener Joomla! actualizado con los últimos parches: aunque algunos expertos no recomiendan actualizar el último parche hasta pasados unos días, nosotros recomendamos que las actualizaciones se hagan contínuamente (siempre previa copia de seguridad).
  • Permisos de ficheros y carpetas correctos, como indicamos aquí.
  • Evitar vinculación directa a archivos de imagen usando .htaccess.
  • Usar contraseñas seguras para todos los usuarios, sobre todo para usuarios con permisos de administración (utilizar números, letras mayúsculas, letras minúsculas, símbolos) y contraseñas largas.
  • No usar nombres de usuarios estándar tipo admin, administrator, administrador, usuario, invitado.
  • Utilizar un usuario de MySQL sólo con permisos para la base de datos de Joomla!, nunca usar un superusuario de MySQL, como indicamos aquí.
  • Supervisar los intentos de hackeo o ataques usando dispositivos de seguridad con log habilitado, para bloquear posibles IPs atacantes.
  • Examinar periódicamente el tráfico HTTP para verificar que las contraseñas viajen cifradas usando algún software analizador de protocolos como Wireshark.
  • Contratar proveedor de alojamiento con certificaciones de seguridad altas, si no vamos a alojar nuestro sitio web Joomla! en nuestros propios servidores y optamos por contratar un servicio de alojamiento profesional, para sitios web importantes y en producción (para empresas y organizaciones) es recomendable no utilizar alojamientos gratuitos que no suelen incluir medidas de seguridad.
  • Bloquear exploraciones directas de directorios con .htaccess.
  • Proteger directorio "administrator" con .htaccess o algún plugin, como explicamos en el siguiente tutorial:
  • Evitar ataques por CSRF en formularios usando, por ejemplo, token en métodos GET y POST.
  • Securizar acceso a la administración de Joomla! con SSL (HTTPS) para que las contraseñas viajen cifradas.
  • Revisar regularmente los registros de acceso en busca de actividad sospechosa o posibles errores.
  • Mantener actualizado el sistema base (PHP, Apache, MySQL, Linux).
  • Realizar pruebas automáticas de SQL Injection, utilizando alguna herramienta software o sistema de seguridad perimetral.
  • Utilizar los valores de los parámetros de PHP más seguros (allow_url_fopen, disable_functions, register_globals, magic_gpc_quotes, magic_quotes, safe_mode, open_basedir.
  • Descargar Joomla! sólo de sitios oficiales.
  • Eliminar todas las extensiones innecesarias, en especial aquellas que requieran register_globals ON.
  • Apelar al sentido común, aunque parezca una nimiedad, es importante proceder con precaución cuando instalamos nuevos componentes o realizamos cambios en la configuración.

Aquí hemos enumerado algunas consideraciones a tener en cuenta, hay muchas más y el hecho de tenerlas todas en cuenta y aplicarlas no nos eximirá de ataques y vulnerabilidades, toda web es vulnerable. Aún así, si una ataque a nuestro sitio web nos puede causar incuantificables pérdidas económicas y de imagen, existen sistemas de seguridad avanzados y específicos (normalmente de pago) que permiten securizar servidores web de forma automática, por ejemplo FortiWeb Web Application Security de Fortinet.

 

Anexo

  • Contenido de ejemplo de fichero configuration.php de Joomla! 3.1.1:
<?php
class JConfig {
        public $offline = '0';
        public $offline_message = 'Este sitio está cerrado por tareas de mantenimiento.';
        public $display_offline_message = '1';
        public $offline_image = '';
        public $sitename = 'Proyecto AjpdSoft';
        public $editor = 'tinymce';
        public $captcha = '0';
        public $list_limit = '20';
        public $access = '1';
        public $debug = '0';
        public $debug_lang = '0';
        public $dbtype = 'mysql';
        public $host = '192.168.31.165';
        public $user = 'usujoomla';
        public $password = 'xxx';
        public $db = 'joomla3';
        public $dbprefix = 'joo3_';
        public $live_site = '';
        public $secret = 'SbQPtc6kz';
        public $gzip = '0';
        public $error_reporting = 'none';
        public $helpurl = 'http://help.joomla.org';
        public $ftp_host = '127.0.0.1';
        public $ftp_port = '21';
        public $ftp_user = '';
        public $ftp_pass = '';
        public $ftp_root = '';
        public $ftp_enable = '1';
        public $offset = 'Europe/Madrid';
        public $mailer = 'mail';
        public $mailfrom = 'bas@ajpdsoft.com';
        public $fromname = 'Proyecto AjpdSoft';
        public $sendmail = '/usr/sbin/sendmail';
        public $smtpauth = '0';
        public $smtpuser = '';
        public $smtppass = '';
        public $smtphost = 'localhost';
        public $smtpsecure = 'none';
        public $smtpport = '25';
        public $caching = '0';
        public $cache_handler = 'file';
        public $cachetime = '15';
        public $MetaDesc = 'Sitio web de ejemplo de instalación de Joomla! 3';
        public $MetaKeys = '';
        public $MetaTitle = '1';
        public $MetaAuthor = '1';
        public $MetaVersion = '0';
        public $robots = '';
        public $sef = '1';
        public $sef_rewrite = '0';
        public $sef_suffix = '0';
        public $unicodeslugs = '0';
        public $feed_limit = '10';
        public $log_path = '/var/www/logs';
        public $tmp_path = '/var/www/tmp';
        public $lifetime = '15';
        public $session_handler = 'database';
        public $MetaRights = '';
        public $sitename_pagetitles = '0';
        public $force_ssl = '0';
        public $feed_email = 'author';
        public $cookie_domain = '';
        public $cookie_path = '';
}

  • Errores típicos si los permisos no están correctamente establecidos en las carpetas y ficheros de Joomla! (se suelen producir al establecer valores de configuración, al instalar idiomas, al instalar plantillas, al instalar módulos, plugin o componentes):
    • Error: Archive does not exist.
    • Warning: JFolder: files path is not a folder.
    • Error : JInstaller: install: cannot find Joomla XML setup file.
    • Error: install path does not exist.

 

Artículos relacionados

 

Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft.

Artículo en inglés.


Anuncios


Enviado el Domingo, 16 junio a las 15:42:15 por ajpdsoft
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A