Desactivar XMLRPC de WordPress

Desactivar XMLRPC de WordPress

En aquest post analitzem de manera precisa el “quan” i el “per què” deshabilitar XMLRPC i com fer-ho de manera eficient.

L’accés remot a WordPress mitjançant XMLRPC s’ha utilitzat durant molts anys per enviar ordres a WordPress i administrar-ne el contingut sense iniciar sessió a l’escriptori.

No obstant això, XMLRPC té els seus desavantatges. De vegades presenta vulnerabilitats de seguretat i ara ha estat reemplaçat per l’API de WordPress.

Table of Contents

Què és XML-RPC?

Al directori arrel de cada lloc de WordPress, hi ha un fitxer anomenat xmlrpc.php. Va ser creat per permetre que els llocs gestionats amb WordPress es comuniquessin entre si i perquè altres aplicacions poguessin consultar i fer operacions sobre el contingut.

XML és el mecanisme de codificació utilitzat per a lintercanvi de dades i RPC és el mecanisme de comunicació. RPC significa Trucada a procediment remot.

El relleu de l’XMLRPC de WordPress

Tot i que l’accés remot XMLRPC de WordPress ha existit durant molts anys, l’API de WordPress ha evolucionat des de fa molt de temps fins a convertir-se en una solució més robusta i segura.

Amb la nova API de WordPress, l’ús de XML-RPC ha quedat completament desactualitzat. Si no necessiteu XMLRPC per a cap de les funcions que s’expliquen a continuació, és millor desactivar XMLRPC del tot. Et podem assegurar que evitaràs els nombrosos problemes de seguretat que comporta l’accés a aquest fitxer.

La nova API no és perfecta, però proporciona una solució més segura i sòlida per al control remot de continguts de WordPress.

Actualment, la comunitat de desenvolupadors està abandonant l’ús de xmlrpc.php

És segur deshabilitar l’accés XMLRPC del meu WordPress?

L’accés XMLRPC encara es fa servir en alguns casos com el de l’administració remota des de WordPress.com quan s’usa el complement Jetpack o en serveis com Zapier o IFTTT, que fan tasques d’automatització remota.

Jetpack encara arrossega la gestió remota utilitzant l’accés a xmlrpc.php

A més, la funcionalitat de Pingbacks o algunes de les aplicacions, com ara l’aplicació mòbil oficial de WordPress, usen xmlrpc.php per interactuar amb WordPress.

Però… Qui gestiona avui les publicacions de WordPress des del mòbil? Doncs si ets dels qui els encanta el món mòbil, és millor que utilitzis el navegador del dispositiu per accedir a l’administrador del teu WordPress. Al cap i a la fi, és més segur i la seva interfície “responsive” funciona perfectament.

Per què deshabilitar xmlrpc.php?

L’accés a WordPress XMLRPC, en oferir funcions de gestió avançades, esdevé atractiu per a un atacant. És per això que deshabilitar XMLRPC ens ajudarà a reduir significativament l’angle de l’anomenat Vector d’Atac.

Els tipus d’atac a què sol estar exposat xmlrpc.phpsón:

Atac de força bruta contra XML-RPC

En general, l’atac de força bruta s’utilitza per obtenir la combinació d’usuari i contrasenya a través de sol·licituds massives, per això se’n diu “força bruta”.

Com que XMLRPC està protegit per nom d’usuari i contrasenya en operacions que modifiquen dades, les sol·licituds a xmlrpc.php són una destinació ideal per intentar trobar credencials.

Per realitzar un atac de força bruta només cal fer trucades consecutives al xmlrpc.php provant com a paràmetres diferents usuaris i contrasenyes.

Atac amplificat

L’atac amplificat és una variant encara més perillosa de l’atac de força bruta. En un atac de força bruta, cada intent de provar un nom dusuari i una contrasenya dóna com a resultat una sol·licitud. En canvi, a l’atac amplificat es poden intentar desenes de milers de combinacions en una mateixa petició. Tot i això, aquesta vulnerabilitat està actualment corregida.

Atacs DDoS usant XMLRPC

Els atacs DDoS, “Distributed Denial of Service”, són extremadament difícils d’evitar, ningú no pot dir que n’està lliure. Tot i això, és important no posar les coses fàcils. La base d’un atac DDoS és saturar el servidor fent moltes sol·licituds simultànies.

Si tenim en compte que:

  • xmlrpc.php és capaç dinteractuar amb WordPress, fent un ús intensiu de la base de dades.
  • Difícilment es pot emmagatzemar a la memòria cau per evitar que utilitzi massa recursos del servidor.
  • Té funcionalitats com Pingback que faciliten la distribució de l’enviament de sol·licituds.

La suma d aquests factors fa que xmlrpc.php sigui l eina perfecta per al atacant.

Deshabilitar WordPress XMLRPC

Per deshabilitar completament XMLRPC, el nostre consell sens dubte és fer-ho a nivell de servidor i evitar l’ús d’extensions.

Bloquejar l’accés a nivell de servidor web és el més eficient, ja que evitem que s’executin peticions a WordPress.

Tingueu en compte que qualsevol sol·licitud que arribi a WordPress representa l’execució dinàmica del codi php i les consultes a la base de dades.

Si estas allotjant el teu lloc amb Wetopi, potd fer-ho amb un sol clic.

Deshabilitar xmlrpc.php a Wetopi

A Wetopi, pots habilitar i deshabilitar l’accés a xmlrpc.php del teu WordPress amb un sol clic.

Trobaras aquesta opció al menú del servidor de WordPress, dins de la secció d’opcions avançades.

Per defecte, a Wetopi trobaras l’accés XmlRPC deshabilitat com es mostra en aquesta imatge:

Desactivar l'accés a xmlrpc
L’accés XmlRPC està deshabilitat quan l’opció “Xmlrpc enabled” és a OFF

Si tens l’opció “Xmlrpc enabled” a “OFF”, en intentar accedir a xmlrpc.php, el navegador et respondrà amb un error HTTP 403 Forbidden:

error 403 Forbidden en accedir a xmlrpc.php

Si necessites un WordPress amb accés a XmlRPC, simplement fes clic a ” Xmlrpc enabled ” per deixar-lo en “ON” i activar l’accés a aquesta pàgina.

Prova com bloquejar les sol·licituds XMLRPC de WordPress sense trencar el teu lloc web de producció.

Si no tens un servidor WordPress de desenvolupament, registra’t a wetopi, és GRATIS

En provar noves configuracions de servidor, es recomana encaridament treballar en un servidor “localhost” o “Staging”.

Com funciona en realitat aquesta opció?

Quan deshabilites XmlRPC al teu servidor WordPress de Wetopi, el que passa és que es diposita el fitxer /var/www/conf/nginx-disable-xmlrpc.conf, així nginx ho inclou en carregar la configuració.

A continuació mostrem tots els detalls per si vols reproduir el procés de forma totalment manual amb servidors Nginx o Apache.

Deshabilita manualment xmlrpc.php a Nginx

Si utilitzes Nginx com a servidor de pàgina web, el primer es ubicar els fitxers de configuració de Nginx. El lloc comú del fitxers de configuració d’Nginx a Linux és /etc/nginx.conf

A Wetopi, com a hosting especialitzat en WordPress, també fem servir Nginx. Als nostres servidors, pots trobar el fitxer de configuració a /var/www/conf/nginx.conf

En editar el fitxer de configuració, afegeix aquestes línies a la secció del servidor juntament amb les teves altres Nginx “location”:

# denaying access to WordPress xmlrpc:

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

IMPORTANT: amb Wetopi, no necessites modificar manualment els fitxers de configuració de Nginx. XmlRPC es pot desactivar i activar des del teu panell de control amb un sol clic.

Carregar la nova configuració de Nginx

Després de qualsevol modificació de configuració a Nginx, sempre cal recarregar la configuració.

Des de la línia d’ordres del teu server Nginx, executa l’ordre de test (si sempre és bo verificar abans per si hi ha errors) i després, recàrrega de configuració:

# Test config before reload:
nginx -t

# Reload nginx:
nginx -s reload

Deshabilita manualment xmlrpc.php a Apache

El primer pas és ubicar el fitxer .htaccess a l’arrel del vostre lloc WordPress. Aquest és l’únic fitxer que cal editar per desactivar l’accés XMLRPC.

Una manera d’accedir i editar aquests fitxers és connectar-se de forma segura al servidor a través de SFTP.

Un cop tinguis en edició el fitxer .htaccess, afegeix aquestes línies al final de tot i desa els canvis.

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

Conclusió

Xmlrpc.php a WordPress va ser desenvolupat per proporcionar funcionalitat dadministració remota. A causa de les capacitats d’accés i control remot, s’ha convertit en el punt de destinació de nombrosos atacs d’intrusió i DDoS.

Avui dia, la nova API de WordPress proporciona aquestes funcions sense sacrificar la seguretat. La nostra recomanació, si no depens de la gestió remota de Jetpack, Zapier o IFTTT, desactiva-la com més aviat millor.

Resumidament, som uns techies apassionats per WordPress que hem creat Wetopi, un Allotjament WordPress Gestionat, per minimitzar la fricció a la que tot professional s’enfronta en treballar i allotjar projectes WordPress.

No tens un compte a wetopi?

Inclou servidors de desenvolupament Gratis.
No cal tarjeta de crèdit.