Desactivar XMLRPC de WordPress

Desactivar XMLRPC de WordPress

Última actualización:

En este post analizamos de forma precisa el «cuándo» y el «por qué» deshabilitar XMLRPC y cómo hacerlo de manera eficiente.

El acceso remoto a WordPress mediante XMLRPC se ha utilizado durante muchos años para enviar comandos a WordPress y administrar su contenido sin iniciar sesión en el escritorio.

Sin embargo, XMLRPC tiene sus desventajas. A veces presenta vulnerabilidades de seguridad y ahora ha sido reemplazado por la API de WordPress.

Tabla de contenidos

¿Qué es XML-RPC?

En el directorio raíz de cada sitio de WordPress, hay un archivo llamado xmlrpc.php. Fue creado para permitir que los sitios gestionados con WordPress se comunicasen entre sí y para que otras aplicaciones pudieran consultar y realizar operaciones sobre el contenido.

XML es el mecanismo de codificación utilizado para el intercambio de datos y RPC es el mecanismo de comunicación. RPC significa Llamada a procedimiento remoto.

El relevo de XMLRPC de WordPress

Si bien el acceso remoto XMLRPC de WordPress ha existido durante muchos años, la API de WordPress ha evolucionado desde hace mucho tiempo hasta convertirse en una solución más robusta y segura.

Con la nueva API de WordPress, el uso de XML-RPC ha quedado completamente desactualizado. Si no necesitas XMLRPC para ninguna de las funciones que se explican a continuación, es mejor desactivar XMLRPC por completo. Te podemos asegurar que evitarás los numerosos problemas de seguridad que conlleva el acceso a este archivo.

La nueva API no es perfecta, pero proporciona una solución más segura y sólida para el control remoto de contenidos de WordPress.

Actualmente, la comunidad de desarrolladores está abandonando el uso de xmlrpc.php

¿Es seguro deshabilitar el acceso XMLRPC de mi WordPress?

El acceso XMLRPC todavía se usa en algunos casos como el de la administración remota desde WordPress.com cuando se usa el complemento Jetpack o en servicios como Zapier o IFTTT, que realizan tareas de automatización remota.

Jetpack todavía arrastra la gestión remota utilizando el acceso a xmlrpc.php

Además, la funcionalidad de Pingbacks o algunas de las aplicaciones, como la aplicación móvil oficial de WordPress, usan xmlrpc.php para interactuar con WordPress.

Pero… ¿Quién gestiona hoy las publicaciones de WordPress desde el móvil? Pues si eres de los que les encanta el mundo móvil, es mejor que utilices el navegador de tu dispositivo para acceder al administrador de tu WordPress. Después de todo, es más seguro y su interfaz «responsive» funciona perfectamente.

¿Por qué deshabilitar xmlrpc.php?

El acceso a WordPress XMLRPC, al ofrecer funciones de gestión avanzadas, se vuelve atractivo para un atacante. Es por ello que deshabilitar XMLRPC nos ayudará a reducir significativamente el ángulo del llamado Vector de Ataque.

Los tipos de ataque a los que suele estar expuesto xmlrpc.php son:

Ataque de fuerza bruta contra XML-RPC

En general, el ataque de fuerza bruta se utiliza para obtener la combinación de usuario y contraseña a través de solicitudes masivas, por eso se le llama «fuerza bruta».

Como XMLRPC está protegido por nombre de usuario y contraseña en operaciones que modifican datos, las solicitudes a xmlrpc.php son un destino ideal para intentar encontrar credenciales.

Para realizar un ataque de fuerza bruta basta con realizar llamadas consecutivas al xmlrpc.php probando como parámetros diferentes usuarios y contraseñas.

Ataque amplificado

El ataque amplificado es una variante aún más peligrosa del ataque de fuerza bruta. En un ataque de fuerza bruta, cada intento de probar un nombre de usuario y una contraseña da como resultado una solicitud. En cambio, en el ataque amplificado se pueden intentar decenas de miles de combinaciones en una misma petición. Sin embargo, esta vulnerabilidad está actualmente corregida.

Ataques DDoS usando XMLRPC

Los ataques DDoS, «Distributed Denial of Service», son extremadamente difíciles de evitar, nadie puede decir que está libre de ellos. Sin embargo, es importante no poner las cosas fáciles. La base de un ataque DDoS es saturar su servidor realizando muchas solicitudes simultáneas.

Si tenemos en cuenta que:

  • xmlrpc.php es capaz de interactuar con WordPress, haciendo un uso intensivo de la base de datos.
  • Difícilmente se puede almacenar en caché para evitar que use demasiados recursos del servidor.
  • Tiene funcionalidades como Pingback que facilitan la distribución del envío de solicitudes.

La suma de estos factores hace que xmlrpc.php sea la herramienta perfecta para el atacante.

Deshabilitar WordPress XMLRPC

Para deshabilitar por completo XMLRPC, nuestro consejo sin duda es hacerlo a nivel de servidor y evitar el uso de extensiones.

Bloquear su acceso a nivel de servidor web es lo más eficiente, ya que evitamos que se ejecuten peticiones en WordPress.

Tenga en cuenta que cualquier solicitud que llegue a WordPress representa la ejecución dinámica del código php y las consultas a la base de datos.

Si está alojando su sitio con Wetopi, puede hacerlo con un solo clic.

Deshabilitar xmlrpc.php en Wetopi

En Wetopi, puedes habilitar y deshabilitar el acceso a xmlrpc.php de tu WordPress con un solo clic.

Encontrarás esta opción en el menú del servidor de WordPress, dentro de la sección de opciones avanzadas. De manera predeterminada, en Wetopi encontrará el acceso XmlRPC deshabilitado como se muestra en esta imagen:

Desactivar el acceso a xmlrpc
El acceso XmlRPC está deshabilitado cuando la opción «Xmlrpc enabled» está en OFF

Si tienes la opción «Xmlrpc habilitado» en «OFF», al intentar acceder a xmlrpc.php, el navegador te responderá con un error HTTP 403 Forbidden:

error 403 Forbidden al acceder a xmlrpc.php

Si necesitas un WordPress con acceso a XmlRPC, simplemente haz clic en » Xmlrpc enabled » para poner en «ON» y activar el acceso a esta página.

Prueba cómo bloquear las solicitudes XMLRPC de WordPress sin romper su sitio web de producción.

Si no tienes un servidor WordPress de desarrollo, regístrate en wetopi, es GRATIS

Al probar nuevas configuraciones de servidor, se recomienda encarecidamente trabajar en un servidor «localhost» o «Staging».

¿Cómo funciona en realidad esta opción?

Cuando deshabilitas XmlRPC en tu servidor WordPress de Wetopi, lo que ocurre es que se deposita el archivo /var/www/conf/nginx-disable-xmlrpc.conf, así nginx lo incluye al cargar la configuración.

A continuación mostramos todos los detalles pos si quieres reproducir el proceso de forma totalmente manual en servidores Nginx o Apache.

Deshabilita manualmente xmlrpc.php en Nginx

Si utilizas Nginx como servidor de página web, deberás ubicar los archivos de configuración de Nginx. El lugar común del sistema de archivos en Linux es /etc/nginx.conf

En Wetopi, como hosting especializado en WordPress, también usamos Nginx. En nuestros servidores, puedes encontrar el archivo de configuración en /var/www/conf/nginx.conf

Al editar el archivo de configuración, añade estas líneas en la sección del servidor junto con tus otras Nginx «location»:

# denaying access to WordPress xmlrpc:

location = /xmlrpc.php {
    deny all;
    access_log off;
    log_not_found off;
    return 403;
}

IMPORTANTE: con Wetopi, no necesitas modificar manualmente los archivos de configuración de Nginx. XmlRPC se puede desactivar y activar desde tu panel de control con un solo clic.

Cargar la nueva configuración de Nginx

Después de cualquier modificación de configuración en Nginx, siempre es necesario recargar la configuración.

Desde la línea de comandos de tu server Nginx, ejecuta el comando de test (si siempre es bueno verificar antes por si hay errores) y después, recarga de configuración:

# Test config before reload:
nginx -t

# Reload nginx:
nginx -s reload

Deshabilita manualmente xmlrpc.php en Apache

El primer paso es ubicar el archivo .htaccess en la raíz de tu sitio WordPress. Este es el único archivo que necesitaremos editar para deshabilitar el acceso XMLRPC.

Una forma de acceder y editar estos archivos es conectarse de forma segura al servidor a través de SFTP.

Una vez tengas en edición el archivo .htaccess, añade estas líneas al final de todo y guarda los cambios.

<Files xmlrpc.php>
order deny, allow
deny from all
</Files>

Conclusión

Xmlrpc.php en WordPress fue desarrollado para proporcionar funcionalidad de administración remota. Debido a las capacidades de acceso y control remoto, se ha convertido en el punto de destino de numerosos ataques de intrusión y DDoS.

Hoy, la nueva API de WordPress proporciona estas funciones sin sacrificar la seguridad. Nuestra recomendación, si no dependes de la gestión remota de Jetpack, Zapier o IFTTT, desactívala cuanto antes.

¿No tienes una cuenta en wetopi?

Incluye servidores desarrollo Gratis.
Sin tarjeta de crédito.

Compara wetopi con tu hosting actual

Date de alta, pide una migración y compara.

Hacemos una copia de tu web gratis y sin esfuerzo por tu parte.

Sin letra pequeña.
Sin compromisos.
Sin tarjeta de crédito.