Joomla! 3.7.1

Actualización de seguridad crítica para Joomla! (3.7.1)

Como ya comenté la semana pasada en el artículo del lanzamiento de Joomla! 3.7.0, hoy se ha liberado una nueva versión que corrige varios bugs “normales” y uno de alta prioridad que afecta al núcleo del CMS. Si la actualización corrigiera sólo bugs normales, no sería necesario instalarla de forma inmediata. Por desgracia, éste no es el caso y conviene aplicar la actualización lo más pronto posible. Antes de aplicar la actualización es aconsejable guardar una copia de seguridad usando las extensiones de Joomla! o el panel de control del servidor. Leer más

Joomla! 3.7

La última versión de la serie ‘Joomla! 3’ ha llegado, aquí está Joomla! 3.7

Joomla! es uno de los gestores de contenidos, junto a WordPress, que se reparten la mayoría de las páginas Web. Joomla! aporta una infraestructura a la página Web que facilita el mantenimiento y la creación de contenido. No importa el número de personas que participen en la Web. Cada una tiene asociados unos permisos de manera que un grupo de usuarios pueden escribir el contenido, otros validarlo y unos pocos administrar la Web de forma completa. Las versiones de Joomla! se dividen en series. Dentro de una serie los cambios suelen ser menores y la actualización entre ellas es directa. Cuando se produce un cambio de versión, los cambios son mayores y se pueden romper algunas cosas.  Todo depende de los cambios introducidos. Con Joomla! 3.7.x, el proyecto Joomla! cierra la serie 3 y continúa trabajando en la versión 4.x

Leer más

Publicadas la versiones 3.6.3 y 3.6.4 de Joomla!

Joomla! es un gestor de contenidos que facilita la gestión de una página Web. Recientemente el equipo de Joomla! ha publicado dos actualizaciones que corrigen varios fallos detectados. Como en otras ocasiones es recomendable aplicar las actualizaciones lo más pronto posible para cerrar las incidencias. Antes de aplicar las actualizaciones conviene realizar una copia de seguridad de la Web, ya sea desde el panel de control del hosting o usando una extensión de Joomla! como Akeeba Backup. Si se produce un fallo durante la actualización la Web estará caída hasta que lo arreglamos. Ésto puede ser un par de minutos o un par de horas. Por esta razón es conveniente tener la copia de seguridad actualizada y poder recuperar la Web en un par de minutos.

Leer más

Joomla! 3.5

Liberada la versión 3.5 del CMS Joomla!

Joomla! es un gestor de contenidos que facilita el mantenimiento y el día a día de una página Web. Proporciona la infraestructura necesaria para gestionar artículos, comentarios o descargas y evita que la persona encargada de escribir en la Web tenga que conocer todos los detalles de su funcionamiento. El proyecto Joomla! ha liberado recientemente la versión 3.5. Entre sus novedades destaca el soporte de PHP 7 con lo que se incrementa el rendimiento de la página Web de forma importante. Aparte del aumento de velocidad se reduce también el consumo de memoria a la mitad.

Leer más

Joomla! 3.4.8

Publicada la versión 3.4.8 de Joomla!

El día de Nochebuena el equipo de Joomla! liberó la actualización 3.4.8. A diferencia de las dos últimas actualizaciones, esta actualización no es crítica ya que sólo corrige algunos errores introducidos en la versión 3.4.7. Por esta razón no es necesario hacer la instalación ya sino que pueden pasar algunos días hasta que acaben las fiestas. Como ya he comentado en otras ocasiones es recomendable hacer una copia de seguridad de la página Web antes de aplicarla. Al ser un cambio de versión menor no debería pasar nada pero mejor tomar algunas precauciones.

Leer más

Aviso de instalación de Joomla! 3.4.7

Publicada la versión 3.4.7 de Joomla!

Mientras esperamos que finalice el año y lleguen las vacaciones el equipo de seguridad de Joomla! ha publicado dos actualizaciones de este gestor de contenidos en un corto espacio de tiempo. Ambas actualizaciones corrigen fallos de seguridad críticos que pueden pueden dar acceso a un atacante al servidor. Por esta razón es conveniente hacer una copia de seguridad del servidor y aplicar la actualización lo más pronto posible. Joomla! ha tenido varias ramas de desarrollo (1.x, 2.x y 3.x). De esas tres ramas, sólo la última recibe actualizaciones con nuevas funciones y parches de seguridad. La importancia de los fallos de seguridad corregidos ha hecho que se libere la actualización en todas las ramas que han salido con independencia de que tengan o no soporte.

La copia de seguridad de la Web se puede hacer usando las herramientas del hosting o con una extensión de backup como Akeeba Backup. Una vez tenemos la copia de seguridad preparada es aconsejable probarla en una máquina virtual para asegurarnos que se puede restaurar si algo sale mal. No debería pasar eso pero conviene tomar algunas precauciones sobre todo si la Web está en producción.

Instalación

Para aplicar la actualización accedemos al panel de Joomla! y en el menú seleccionamos Componentes. Dentro del menú hay que seleccionar Actualización de Joomla!.

 

Pulsamos en el botón Instalar la actualización y esperamos a que el servidor termine de aplicarla.

Proceso de instalación 

Una vez ha finalizado sólo nos queda limpiar el caché de Joomla! y comprobar que la Web funciona de forma adecuada. Si todo está bien actualizamos el backup con la nueva versión de Joomla!.

Detalles técnicos

  • Versión 3.4.6

    • High Priority – Core – Remote Code Execution (affecting Joomla 1.5 through 3.4.5) More  information »

    • Low Priority – Core – CRSF Hardening (affecting Joomla 3.2.0 through 3.4.5) More information »

    • Low Priority – Core – Directory Traversal (affecting Joomla 3.2.0 through 3.4.5) More information »

    • Low Priority – Core – Directory Traversal (affecting Joomla 3.4.0 through 3.4.5) More information »

  • Versión 3.4.7

    • High Priority – Core – Session Hardening (affecting Joomla 1.5 through 3.4.6) More information »

    • Low Priority – Core – SQL Injection (affecting Joomla 3.0.0 through 3.4.6) More information »

Referencias

Data Center

Asegurar un servidor privado virtual (II)

La seguridad en un servidor hay que verla como un conjunto que está formado por piezas pequeñas. Si una de esas piezas falla, el conjunto se ve comprometido. Podemos encontrar varias de estas piezas en un servidor privado virtual (VPS). La primera es el sistema operativo. Su función es gestionar todos los elementos del sistema y proporcionar la infraestructura al contenido que ve un usuario. Para mostrar la información al usuario es necesario abrir puertos por los que se manda la información. El último elemento es el gestor de contenidos que muestra la información al usuario. Es necesario que todas las partes estén bien protegidas para evitar problemas. Hay dos tipos de servidores dependiendo de si están en pre-producción o en producción. La diferencia entre ambos es que en el primero podemos hacer pruebas mientras que en el segundo las pruebas están prohibidas. Un error en un servidor de producción puede afectar al contenido que mostramos al usuario. Si no tenemos un servidor de pre-producción podemos usar una máquina virtual para las pruebas. Podéis preguntar cualquier duda en los comentarios del artículo o bien en las redes sociales.

Autor de la fotografía del artículo: Bob Mical

El sistema operativo

Las distribuciones de GNU/Linux pueden ser de dos tipos dependiendo de la duración que tenga el soporte. Por ejemplo, Ubuntu 13.10 tiene 6 meses de soporte, en cambio Ubuntu 14.04 tiene 5 años de soporte. La cifra aumenta si usamos CentOS 6 que tiene soporte hasta finales de 2020. A diferencia de un PC de escritorio, un VPS necesita una distribución con un tiempo de soporte grande. En principio puede parecer poco importante este factor, pero hay que recordar que junto con el sistema operativo tenemos muchas aplicaciones asociadas. Actualizar el sistema cada 6 meses puede darnos trabajo extra que no tendríamos que realizar si usáramos Ubuntu 14.04 o CentOS 6.4. Es mejor hacer el trabajo una vez cada varios años que repetirlo dos veces al año.

El tiempo de soporte es importante por las actualizaciones. Llamamos ventana de tiempo al tiempo que pasa desde que se descubre un fallo de seguridad hasta que el fabricante lo arregla. Si usamos una distribución que no tiene soporte ese tiempo no tiene limite y tendremos un equipo vulnerable a los ataques. Aparte de la ventana de tiempo que he comentado, existe otro intervalo de tiempo variable que pasa hasta que aplicamos la actualización. Para reducir este tiempo lo más sencillo es configurar el sistema para que aplique de forma automática las actualizaciones. Es suficiente con actualizar cada 12 / 24 horas. Normalmente lo haremos en las horas que el servidor tenga menos carga. Si hay una actualización de Apache, MySQL o de aplicaciones similares el servidor estará parado durante ese tiempo.

Los pasos para configurar las actualizaciones automáticas dependen de si usamos Debian / Ubuntu o Fedora / CentOS. La idea es simple y consiste en ejecutar el comando que actualiza el sistema en una tarea de cron. Cron es una aplicación que permite programar acciones en intervalos de tiempo concretos. Por ejemplo, podemos ejecutar un comando cada 12 o 24 horas dependiendo de las necesidades que tengamos. El siguiente ejemplo corresponde a Ubuntu pero será similar en Fedora / CentOS.

sudo apt-get install cron-apt

Una vez está instalado, tenemos el archivo de configuración en la ruta /etc/cron.d/cron-apt. Lo podemos editar con nano

nano /etc/cron.d/cron-apt

El contenido del archivo es el siguiente:

# Regular cron jobs for the cron-apt package
#
# Every night at 1 o'clock.
0 1 * * * root test -x /usr/sbin/cron-apt && /usr/sbin/cron-apt
# Every hour.
# 0 * * * * root test -x /usr/sbin/cron-apt && /usr/sbin/cron-apt /etc/cron-apt/config2

Las líneas que se ejecutan son las que no están comentadas con #. El primer dígito indica el día de la semana en el que se ejecutará el comando. En este caso (0) se ejecutará todos los días. El siguiente valor corresponde a la hora. En el ejemplo el sistema pondrá las actualizaciones todos los días a la 1 de la mañana. La hora corresponde a la hora del servidor por lo que tendremos que asegurarnos que la hora local y la del servidor coincide.

Si se encuentran en diferentes zonas horarias es posible cambiar la zona horaria con el comando

sudo dpkg-reconfigure tzdata

Selección de la zona horariaSelección de la zona horaria

Zona horaria dentro de EuropaZona horaria dentro de Europa

Después de cambiar la hora hay que reiniciar cron para que trabaje con la nueva zona horaria

sudo service cron restart

Las conexiones

En GNU/Linux tenemos dos tipos de usuarios en el sistema. Por una parte tenemos los usuarios normales que sólo tienen permisos de escritura en su carpeta de usuario. Por otra parte tenemos el usuario root, que es el administrador del sistema y tiene acceso total. Cuando trabajamos con un VPS no tenemos acceso físico a la máquina y trabajamos con una conexión remota por SSH. Al mismo tiempo que nosotros usamos esa conexión, muchos atacantes intentarán acceder de esta forma. Para ello utilizarán el usuario root y contraseñas genéricas que se encuentren en un diccionario de palabras. Si hemos usado una contraseña que sea una palabra conocida es cuestión de tiempo que accedan al sistema.

Hay varias formas de protegerse de estos accesos que veremos en el siguiente artículo. La primera consiste en crearnos un usuario nuevo en el sistema y con permisos para usar sudo (conseguir permisos de root). El siguiente paso es obvio y consiste en desactivar el acceso como root. Con estas dos medidas evitamos la mayor parte de los accesos. La tercera medida consiste en el bloqueo de una dirección IP si falla varias veces la contraseña. Si tomamos las tres medidas conseguiremos asegurar la conexión SSH. No son las únicas formas de protegernos. Existe una aplicación llamada DenyHost que se encarga de analizar los registros del sistema para detectar patrones o detectar intrusiones. También podemos filtrar las conexiones por país para evitar la mayoría de intentos.

Un certificado digital es un archivo que tiene una parte pública y una privada que básicamente nos identifican ante un tercero (de forma muy simplificada). Podemos usarlos al conectarnos con el servidor de forma que si la conexión entrante al servidor no se identifica con el certificado digital no podrá hacer nada aunque conozca nuestra contraseña. El inconveniente de este método es que si perdemos los archivos tampoco podremos acceder nosotros al servidor.

Referencias

Data Center

Asegurar un servidor privado virtual (I)

Un servidor proporciona muchos servicios a los usuarios: Web, repositorio de archivos o control de código fuente. Para realizar estas funciones necesita tener por una parte aplicaciones escuchando en unos puertos concretos y por otra parte que esos puertos sean accesibles desde el exterior. Los usuarios legítimos usarán los servicios de forma adecuada y los atacantes intentarán conseguir el acceso al servidor aprovechando vulnerabilidades o accesos remotos. Como no tenemos acceso físico al servidor propiamente dicho utilizaremos un acceso remoto siendo el más conocido la conexión SSH. Si bien se puede usar Telnet para la misma tarea, es un suicidio utilizar una herramienta que no realiza cifrado de los datos para las tareas de gestión.

El servidor de SSH escucha las peticiones por el puerto 22. A priori no sabe si la petición de conexión es legítima o no. Por esta razón se pide un usuario y una contraseña. Sólo el usuario que tiene la contraseña puede entrar, pero ésto no evita que los atacantes intenten acceder al servidor utilizando usuarios y contraseñas genéricos. ¿De qué forma podemos evitar estas conexiones? Si permitimos únicamente el acceso por una IP corremos el riesgo de perder el acceso al servidor si cambia nuestra IP. En cambio, si bloqueamos por países evitaremos una parte de los ataques pero no los que vengan del mismo país en el que gestionemos el servidor. Para conocer la forma de detectar los ataques y minimizar su efecto podéis leer esta serie de artículos.

Autor de la fotografía del artículo: Bob Mical

Hay dos tipos de alojamiento Web que podemos usar dependiendo de si es o no mantenido. En el primer caso el proveedor del alojamiento se encarga de gestionar la infraestructura de la máquina, el sistema operativo y las herramientas que incluya el contrato. Dependiendo del mismo tendremos disponibles varias bases de datos o un número concreto de cuentas de correo. Si necesitamos más recursos el siguiente paso suele ser contratar un alojamiento con más prestaciones a costa de pagar más dinero (como es lógico). Sobre esta base instalaremos los diferentes servidores y trabajaremos con ellos.

Es posible que nos hagan falta más recursos para trabajar en un proyecto Web concreto. Por ejemplo, tenemos un servidor Web que utilizamos para comunicarnos con dispositivos móviles usando una aplicación específica. En estas condiciones necesitamos utilizar un servidor dedicado. Hay dos tipos de servidores según tengan una máquina real o una virtual. Los primeros pueden utilizar todo el hardware del equipo mientras que en los segundos se comparte el hardware entre varios equipos virtuales y reciben el nombre de VPS (servidor virtual privado). Recordad que se pueden utilizar tanto servidores que se encuentren en España como en otros países obteniendo en este último caso precios más competitivos.

Servidor (Autor del clipart: cyberscooty)Servidor (Autor del clipart: cyberscooty)

Como no tenemos un acceso físico a la máquina tenemos que usar una conexión SSH. En el caso de Joomla ya he comentado alguna vez que es importante asegurar bien el gestor de contenidos para evitar sustos. Lo mismo se aplica a un VPS pero a bajo nivel. Supongamos que tenemos una conexión SSH para gestionar el equipo. Esa conexión es accesible desde todo el mundo. En la siguiente imagen os muestro una captura de mi servidor. Corresponde a un proyecto en el que estoy trabajando con otra persona y tiene poco tiempo de vida. Aunque no es visible directamente en Internet al no estar indexado por los buscadores, recibe todos los días intentos de conexión.

Consola Consola

Hay dos factores que indican un ataque. El primero es la prueba de varios puertos desde la misma IP en intervalos de tiempo de pocos segundos. Si la contraseña del servidor no es fuerte es posible que un atacante pueda acceder al equipo y hacer lo que quiera. Si analizamos la IP con una aplicación de geolocalización como la que proporciona la página Web Geo Ip

  • Nombre del host: 116.10.191.168
  • País: China.
  • Region: Guangxi
  • Ciudad: Nanning

MapaMapa

Conclusiones

El log del servidor es el que realmente nos indica que estamos ante un ataque. Para reducir su efecto podemos tomar varias medidas. La primera consiste en bloquear países. Al usar la conexión SSH únicamente para gestionar el servidor sería una medida rápida y efectiva. El problema aparece si recibimos ataques desde países más cercanos como Francia e incluso España. En estos casos el bloqueo de todo el país sería un problema por lo que hay que tomar otras medidas.

Si no podemos bloquear un rango de direcciones IP podemos configurar el servidor para que no permite las conexiones que cumplan unos determinados requisitos. El bloqueo tiene que ser dinámico y adaptarse a las peticiones que recibe el servidor. Lo podremos realizar con la aplicación fail2ban que veremos en la siguiente entrega.

joomla logo black

Actualización para Joomla 2.5.16

Ayer miércoles se liberaron dos actualizaciones de seguridad para Joomla 2.5.14 (la última versión estable). Después de liberar la primera actualización se detectaron varios problemas de seguridad nuevos y publicaron la versión 2.5.16. Para aplicar la actualización es suficiente con iniciar sesión en el backend, acceder al menú Componentes y por último a Actualizar Joomla. Si por alguna razón os falla la actualización, también es posible aplicarla subiendo los archivos por FTP. Después, en Extensiones, Gestor de extensiones, seleccionamos la pestaña Bases de datos y pulsamos en el botón Arreglar. Con esto el esquema interno de la base de datos se actualizará a la ultima versión de Joomla.

Importante: Antes de poner la actualización es necesario hacer una copia de seguridad de la Web. Tenéis la nota de lanzamiento en el siguiente enlace:

Logo JCM

Joomla Magazine (Noviembre 2013)

Ya se encuentra disponible el número de Noviembre de Joomla Magazine en las ediciones española e inglesa. En la versión española podremos ver las novedades que incluirá el próximo lanzamiento de Joomla 3.2 cuyo  lanzamiento está previsto para esta semana. También profundiza en dos artículos relacionados con la nueva versión como son la opción de multi-idioma y las mejoras en JLayout.
En la parte de entrevista analizan los Hangouts relacionados con Joomla. Por último en los artículos de la comunidad podemos destacar un artículo que explica el funcionamiento de Joomla para personas sin conocimiento técnico entre muchos otros artículos. Cada edición tiene artículos diferentes relacionados con Joomla. Como es natural hay temas que coinciden pero también hay temas propios. Esta semana se celebrará el Joomla World Congress en Boston. La versión inglesa del Magazine incluye el programa así como información de utilidad. También encontraremos artículos originales que no están traducidos en la versión española.

Recordar que el magazine es gratuito y se pueden consultar todos los números que se han publicado en las dos ediciones. Para leer el número de Noviembre podéis acceder a la página principal de cada edición o usar el índice que hay en el texto completo de este artículo.

Edición española

Edición inglesa