Cómo crear un blog de forma segura con WordPress

El Centro Criptológico Nacional (CCN) ha hecho pública su Guía CCN-STIC 640 Seguridad en WordPress, con el fin de ofrecer unas recomendaciones de seguridad mínimas a la hora de utilizar WordPress que, por deficiencias de configuración, en muchas ocasiones ha sido utilizado para materializar numerosos ataques.

La Guía comienza con un histórico de las distintas versiones que han ido apareciendo de WordPress (creado a partir del desaparecido b2/cafelog) y que debe su éxito, entre otros, a su licencia, su facilidad de uso y sus características como gestor de contenidos.

Instalación y actualización, seguridad en la base de datos, procedimiento para la instalación de plugins, bastionado de la cuenta de Administrador, el registro de actividad del sistema o las restricciones de acceso a directorios son algunos de los 22 capítulos que cuenta la Guía.

Además, recoge distintas secciones sobre la prevención de spam, las actualizaciones automáticas, la configuración de permisos, las copias de seguridad o la recuperación ante un compromiso de seguridad.

Por último, el documento realiza una mención especial a la seguridad personal como el uso de gestores de contraseñas, los antivirus, phishing , cortafuegos o seguridad Wi-Fi.

La guía está disponible en este enlace.

Protección para la vulnerabilidad XML-RPC de WordPress en nginx

En una entrada anterior expliqué cómo proteger el blog de un ataque a la vulnerabilidad XML-RPC en WordPress en un servidor Apache.

En esta entrada indico los campos que hay que añadir en cada configuración de los hosts de nginx para evitar este ataque. Simplemente hay que añadir

server {
#…..
location = /xmlrpc.php {
            deny all;
            access_log off; #Evitamos saturar el archivo de log
        }
#…..
}

Recuerda volver a cargar la configuración del servidor, ejecutando

sudo service nginx restart

WordPress 4.0 ‘Benny’, a examen

Dejo el hangout que tuve el martes 9 de septiembre para analizar la nueva versión de WordPress, 4.0 ‘Benny’, junto con Fernando Tellado, Ángeles Portillo y Pedro Santos.

WordPress 4.0. Los principales cambios

Acaba de publicarse WordPress 4.0, con varios cambios y mejoras. A continuación resumo los principales.

1) Instalación

Lo primero que encuentras al iniciar una instalación nueva es el selector de idioma, que descarga e instala el paquete de idioma y te permite continuar el resto de la instalación en el idioma seleccionado.

WordPress › Setup Configuration File

Curioso que probé la instalación en español (es_ES), en español de Chile (es_CL), en español de Perú (es_PE), gallego (gl_ES), catalán (ca) y euskera (eu) y el único instalador que no descargó los archivos (al directorio /wp-content/languages/) e inició la instalación correcta fue el español (es_ES). Supongo que será un bug.

Continue reading “WordPress 4.0. Los principales cambios”

Protección para la vulnerabilidad XML-RPC de WordPress

Llevo unos días con el servidor en el que se aloja este blog y otros (todos desarrollados en WordPress) caído por intervalos, con un consumo tan alto de CPU que a veces no podía ni conectarme a la máquina para poder administrarla.

Cuando conseguí conectarme y ejecutar un htop (un top mejorado) había una gran cantidad de procesos de Apache, que por separado consumían pocos recursos pero todos juntos estaban tirando la máquina.

Al detener el servicio de Apache pude ver que la máquina se estabilizaba; es decir, algo estaba sobrecargando el servicio de Apache.

Tras analizar la últimas entradas del log había una gran cantidad de peticiones por segundo desde diferentes IP que ejecutaban

“POST /xmlrpc.php HTTP/1.1”

Este ataque es conocido desde hace tiempo y se aprovecha de una funcionalidad de WordPress que implementa XML-RPC.

La solución es sencilla, y simplemente hay que desabilitar la llamada al PHP xmlrpc.php mediante una configuración de Apache en el .htaccess en cada uno de los sitios creados con WordPress:

# protect xmlrpc
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>

Si quieres habitar alguna IP para poder usar las funcionalidades del xmlrpc.php simplemente hay que permitir el acceso a esas IP:

# protect xmlrpc
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
Allow from 11.22.33.44
Allow from 55.66.77.88
</Files>

Creando un tema para WordPress desde cero. Mi charla en el II WordPress Meetup Marbella 2014

El próximo viernes 30 estaré en el II WordPress Meetup Marbella 2014 con una charla sobre cómo crear un tema para WordPress desde cero.

El evento tendrá varias charlas bastante interesantes y, bajo mi punto de vista, de temas bastante actuales y necesarios:

  • ¿Cómo instalar una tienda online en WordPress con WooCommerce? por Andy García.
  • Integración de WordPress con plataformas de rentabilización por José Antonio Ruiz.
  • Crear un negocio de formación online con WordPress por Ángeles Portillo.
  • WordPress Multilingüe (enfocado al comercio electrónico) por Amit Kvint.
  • Aspectos legales de WordPress por Camino García.
  • Diseñando una mejor experiencia ecommerce en responsive por Ricardo Prieto, con el que vuelvo a coincidir tras una semana del WP Euskadi, tratando un tema a mejorar en muchos comercios electrónicos, no solo en WordPress.
  • WordPress: un viaje en el tiempo por Rafael Poveda.
  • ¿El SEO ha Muerto? ¡Viva el Local SEO! por Francis Ortiz.

Mi charla

En mi charla trataré de explicar a una persona con conocimientos de HTML, CSS, PHP y WordPress cómo puede crear un tema desde cero. En 10 pasos detallados lograremos crear un tema para WordPress, partiendo desde una plantilla HTML/CSS y llegando a un tema completo, con cabecera, barra lateral, pie de página, menú personalizable y varias zonas de widgets. Serán 20 minutos en los que tendré que darlo todo para que los asistentes sean capaces de llevarse una idea de por dónde atacar sin problemas la creación de un tema WordPress.

La documentación está disponible en fontelearn.com. WordPress. Desarrollo de temas.

Temas hijo en WordPress. Mi charla en el WordPress Euskadi

El próximo sábado 24 estaré en el WordPress Euskadi 2014 con una charla/taller sobre temas hijo en WordPress, que será una continuación y mejora de la que impartí en tan solo 20 minutos en el WordPress Day en Madrid

Todo comenzó en el WordPress Day en Madrid cuando Dani Reguera me propuso participar en esta jornada. Dani es una de esas personas que desprenden energía por todos lados, que ves que ponen pasión en lo que hace, y a mi ese tipo de gente me encanta, por lo que tras aclarar algún pequeño punto no me quedó más que aceptar la invitación.

Volveré a compartir escenario con Ricardo Prieto, con una presentación que tiene muy buena pinta, “Diseño responsive y accesibilidad con WordPress: usuario vs pixel” y con Antonio Villegas, que llevará a cabo un taller bastante interesante “Introducción a la Optimización de Conversiones – Test A/B en WordPress”.

Mi taller.WordPress. Temas hijo

Mi taller hablará de temas hijo en WordPress. Estará dividido en 2 partes:

  • Una introductoria,  el que explicaré por qué trabajar con temas hijo, cuándo debemos de usarlos, cómo elegir un tema padre y mostraré las diferencias técnicas entre un tema normal y un tema hijo.
  • Otra práctica, en la que mostraré paso a paso como construí el tema Error 500.

La documentación está disponible en fontelearn.com. WordPress. Temas hijo.

Cuota de mercado de los principales CMS: WordPress, Drupal, Joomla, Blogger y Magento

A raíz de la inversión de 160 millones de dólares que ha conseguido Automattic, la empresa desarrolladora de WordPress, llego a w3techs.com, donde muestran la evolución temporal de la cuota de mercado de varios CMS, en el que WordPress domina claramente:

Este dominio de WordPress puede ser visto como una ventaja para la gente que trabajamos con él, ya que por ahora existe un negocio interesante a su alrededor, pero, a la vez, como un problema debido al interés por parte de los crackers para comprometer cada vez más sistemas WordPress.

Podéis consultar un resumen de la cuota de mercado de los distintos CMS en este enlace.