WordPress y su uso está tan extendido que cada vez más y más desarrolladores se animan a crear las plantillas y los plugins que facilitan el manejo de nuestro sitio web. Pero algunos de ellos pueden contener los virus y dar acceso a nuestra página web a los hackers sin que nosotros lo sepamos.

Este artículo te ayudará a configurar paso a paso la seguridad de WordPress, minimizando el riesgo de que tu sitio sea hackeado y ayudándote a estar preparado para cualquier situación.

el mejor hosting profesionalEl mejor hosting profesional con WordPressVer detalles Ver precio
el mejor hosting ilimitadoEl mejor hosting ilimitadoVer detalles Ver precio
el mejor hosting baratoEl mejor hosting baratoVer detalles Ver precio

Sigue los pasos que te he preparado y mantendrás tu sitio web seguro y protegido ante las intrusiones de los hackers. Te recomiendo instalar los plugins que voy a utilizar durante el artículo: SG Security (seguridad todo en uno) y UpdraftPlus para hacer las copias de seguridad.

¿Por qué motivo estas aquí?

Paso 0 — Elección de un buen hosting con soporte para WordPress

Si estás leyendo este artículo — es porque probablemente ya tendrás tu hosting. Y recomendarte algo es demasiado tarde :)

¡Un consejo para el futuro! El hosting no se elige por el precio como muchos lo hacen. Si es económico no quiere decir que sea bueno y en futuro te puede generar bastantes problemas.

¿Qué proveedor de hosting me recomiendas para un sitio con WordPress?

Sin embargo, te voy a recomendar un hosting web profesional que personalmente utilizo y de momento no me ha dado problemas.

He elegido el alojamiento con SiteGround por su seguridad, soporte y calidad. Debido a que el propósito de este tema es hablar sobre la seguridad de WordPress, sin enrollarme mucho más te recomiendo leer este artículo que te he preparado para que conozcas la información más detallada sobre este proveedor de hosting.

Paso 1 — Borra las plantillas, plugins y archivos que no utilizas

Los hackers con frecuencia utilizan los plugins desactivados (incluso los oficiales de WordPress) y las plantillas obsoletas para acceder a tu panel de control o subir contenido malicioso a tu servidor. Eliminando los plugins y las plantillas que ya no utilizas, reduces los riesgos y así haces que tu sitio de WordPress sea más seguro.

Localización de archivos en la carpeta raíz de instalación y plugins junto a plantillas en el panel de control de WordPress

Un buen ejemplo puede ser que has instalado los plugins para testear y elegir el deseado. Después de la elección no te olvides de eliminar los que no vayas a usar.

¿Dónde y cómo borro los plugins, plantillas y archivos innecesarios?

  • Elimina los plugins que no utilizas.
  • Elimina las plantillas no utilizadas. Tendrás que tener como máximo 3 plantillas: la primera que utilizas en el sitio web, su plantilla hija y por ejemplo Twenty One actualizada —la que viene por defecto— por si te falla la plantilla principal. En este caso podrás cambiar a Twenty One y resolver el problema.
  • Los archivos como readme.html, license.txt y wp-config-sample.php se encuentran en la carpeta raíz de cualquier instalación WordPress. Estos son solo los archivos de texto y ejemplo de configuración que no afectan de ninguna manera al funcionamiento de WordPress, por ello recomiendo borrarlos inmediatamente después de la instalación. Estos archivos no tienen ninguna utilidad, pero ayudan a los hackers a averiguar la versión actual de tu WordPress y muchas otras cosas útiles para hackear la web.

Por último, si eres desarrollador y tenías WP en modo depuración, entonces después de desactivar esta opción borra todos los archivos de logs generados.

Paso 2 — Actualización automática de los plugins, plantillas y WordPress

Debes saber que información sobre las vulnerabilidades de las versiones anteriores del software son públicas y accesibles para cualquier persona, por lo que la última versión de cualquier software es la más segura.

A partir de la versión 5.5 WordPress incorpora la funcionalidad que te permite actualizar automáticamente las plantillas y los plugins. ¿No es genial?

Si has hecho cambios en los archivos de la plantilla, entonces es mejor crear una plantilla hija, transferir los cambios allí y por último activar las actualizaciones automáticas.

¿Cómo activo las actualizaciones automáticas de las plantillas y los plugins?

  • Para habilitar las actualizaciones de las plantillas, ves a Apariencia -> Temas, presiona sobre detalles del tema de la plantilla determinada y te aparecerá la opción de activar las actualizaciones automáticas.

  • Para habilitar las actualizaciones de los plugins, ves a Plugins -> Plugins instalados y en la información de cada plugin instalado verás también la opción de activar las actualizaciones automáticas.

Como es lógico puedes elegir entre plantillas y plugins que quieres que se actualicen automáticamente y en los otros dejar la opción desactivada aunque no es recomendable.

Paso 3 — Utilización de los nombres de usuarios no comunes, mensajes de error e intentos de inicio de sesión

No utilices nombres de los usuarios del administrador estándares como «admin» o «root». Si es tu caso, se recomienda cambiar el nombre de usuario del administrador por otro que no es estándar, por ejemplo, «pepito_99».

¿Cómo cambio el nombre de usuario administrador en WordPress?

Para cambiar el nombre de usuario del administrador tienes que primero añadir a un nuevo usuario con el permiso de administrador, conectarte con él y eliminar al antiguo usuario:

  1. Accede a panel de control de WordPress.
  2. Busca la sección Usuarios y haga clic en Añadir nuevo.
  3. Rellena los datos y dale permisos de administrador a la cuenta, recuerda en el usuario poner algo que no sea estándar y la contraseña debe ser fuerte, la escala de WordPress te dirá como de fuerte es tu contraseña.
  4. Conéctate al panel de control con el nuevo usuario creado.
  5. Vuelve a la sección de Usuarios y elimina la cuenta antigua.

Es importante de tener una contraseña bien fuerte porque juega un rol fundamental en la seguridad de WordPress. Una contraseña compuesta por números, letras mayúsculas y minúsculas y caracteres especiales es mucho más difícil de descifrar.

Otro consejo que te daría es que revises los permisos de los usuarios, ya que los usuarios administradores, por ejemplo, pueden instalar algún plugin propio con el código malicioso y comprometer la seguridad. Debes confiar mucho en la persona para darle los permisos de administrador.

¿Cómo cambiar la URL de acceso a WordPress, quitar mensajes de error y limitar el número de intentos de acceso?

Además, te recomendaría eliminar el mensaje de error cuando se introducen los credenciales —en la página de inicio de sesión— de que el nombre de usuario y la contraseña son incorrectos. Personalmente, yo utilizo plugin SG Security para ocultar dicha información. ¡Recuerda, cualquier información para un hacker es valiosa!

Por último, con el mismo plugin te recomendaría también realizar los siguientes pasos:

  • Personalizar URL de accesso, por ejemplo, en vez del estandar /wp-admin utilizar /mrrobot o el nombre de tu mascota :)
  • Limitar el número de intentos de acceso: yo siempre lo dejo en 5.

[ACTUALIZAR IMAGEN] Configuración de seguridad de inicio de sesión

Paso 4 — Haz la copia de seguridad con la mayor frecuencia posible

Las grandes compañías gastan mucho dinero en servicios de seguridad, sin embargo, acaban siendo hackeados. Es un ejemplo bien claro de por qué debes de realizar copias de seguridad y con frecuencia.

¿Cómo hacer copia de seguridad en WordPress?

Existen varios métodos para realizar las copias de seguridad, recomiendo utilizar ambos:

  • Mediante proveedor de hosting: normalmente cualquier servicio de alojamiento ofrece copias de seguridad automáticas diarias o semanales.

    Copias de seguridad diarias con SiteGround

  • Mediante un plugin de WordPress: existen numerosos plugins que ofrecen esta función, mi preferido es UpdraftPlus, es gratis y cumple de sobra con su función.

    Copias de seguridad con UpdraftPlus

Ahora me podrías preguntar, ¿para qué necesito hacer copia de seguridad con algún plugin si es que el hosting lo hace por mi todo? Piensa de qué si alguien accede a tu Panel de Control de hosting y te borra todo y resulta que no tienes guardado en tu ordenador una copia de seguridad… pues bien vamos, ¿no? Por ello no seas vago y de vez en cuando realízala y descárgala después a tu ordenador, créeme esto salva vidas ;)

Paso 5 — Haz el caso a la herramienta de WordPress: Salud del sitio

Esta herramienta de auditoría está disponible a partir de la versión 5.2 de WordPress y permite mejorar nuestra web, incluyendo la seguridad, mediante los mensajes de estado de los elementos diferentes —que bien pueden ser solo recomendaciones o algo más critico.

La herramienta proporciona también instrucciones acerca de como añadir la mejora en el sitio o resolver el problema determinado.

Encontrarla es supersencillo, no hace falta instalar ningún plugin. Simplemente en el panel de control tienes que acceder a la sección de herramientas y una vez allí encontrarás apartado «Salud del sitio».

La herramienta de WordPress: Salud del sitio

Por último, cabe destacar que aparte del estado, proporciona una información acerca de la configuración de tu web de WordPress. Una herramienta muy útil, ¡bravo para los desarrolladores!

Paso 6 — No utilices plantillas y plugins «nulled» en ningún caso

Productos nulled – son productos de pago pirateados y distribuidos por internet ilegalmente. Bajo ningún concepto instales nada que no sea oficial en el WordPress, ya que esto podrá ocasionar mucho daño.

Ejercicio para el cerebro.
¿Cómo crees cuál es la recompensa de un hacker por echar horas / días para que tú tengas la versión gratuita del producto?

Acabarás pagando más al desarrollador para que te limpie tu sitio web que comprando el producto en sí. ¡Ten siempre el cuidado con esto!

Paso 7 — Escaneo constante del sitio para encontrar las vulnerabilidades y los virus

Este paso es esencial, al igual que escaneamos nuestro ordenador para encontrar los virus y troyanos, tenemos que hacer lo mismo para nuestro sitio web.

¿Cómo puedo escanear mi sitio web de WordPress para ver si hay virus?

Tenemos varias formas para hacerlo:

  • A partir de la herramienta de escaneo del nuestro hosting: muchos de los proveedores de hosting proporcionan una herramienta que es capaz de realizar análisis completo para detectar los virus existentes en nuestra web. Una gran ventaja de esto es que no tenemos que instalar nada adicional en el WordPress. Esta es la opción que yo utilizo.
  • A partir de un plugin de WordPress: cómo puede ser Wordfence Security, el plugin experimentado y con bastantes años en el mercado.
  • Ponerse en la piel de hacker: existen numerosas herramientas empleadas por los hackers para escanear los sitios webs con WordPress. Una de ellas que da buenos resultados es WPScan y es la que utilizo de vez en cuando. Utiliza esta herramienta bajo tu responsabilidad.

Como bien puedes ver existen ciertas formas de alizar tu sitio web, en mi caso yo combino la 1a y la 3a. La razón es porque los plugins tienen un impacto en el rendimiento del sitio web.

Paso 8 — Autenticación de doble factor (2FA) en WordPress

Autenticación de doble factor es uno de los métodos de seguridad más utilizados hoy en día y se basa en la utilización de dos factores: contraseña de inicio de sesión conocida solo por ti y el dispositivo físico (puede ser dispositivo móvil o llave).

Después de que introduzcas la contraseña en el sitio web, se te enviará una solicitud de una nueva contraseña de un solo uso que deberás introducir. Esta nueva contraseña se te enviará a tu número de contacto o correo electrónico. Por lo tanto, si tu contraseña principal ha sido comprometida, el hacker no podrá iniciar la sesión sin tener acceso a tu dispositivo móvil o correo electrónico.

¿Cómo puedo activar autenticación de doble factor (2FA) en WordPress?

De momento solo es posible activar la autenticación de doble factor mediante un plugin, puedes utilizar cualquiera de ellos:

  • SG Security: el que utilizo personalmente, plugin de SiteGround que —entre muchas opciones de seguridad que tiene— también permite activar fácilmente 2FA. Necesitarás instalar la aplicación oficial Google Authenticator de google disponible para todas las plataformas.
  • Keyy Two Factor Authentication: permite utilizar un escaneo de código QR en lugar de recordar la contraseña.
  • Google Authenticator: proporciona autenticación de dos factores mediante la aplicación Google Authenticator.

Si decidiste por la primera opción, los pasos son muy simples:

  1. Activa la opción 2FA en el plugin: SG Security -> Login Security.

    Ejemplo de como activar 2FA en SG Security plugin

  2. Accede a tu perfil y sigue los pasos proporcionados en la sección Security by SiteGround. No muestres estos datos a nadie y guarda en alguna «caja fuerte» códigos de respaldo 2FA (si pierdes el dispositivo móvil te ayudarán a entrar al sistema, para configurar uno nuevo).

    Perfil de usuario y configuración de 2FA

Por último, cabe destacar que si eliminas el plugin, la función de autenticación de doble factor (2FA) dejará de funcionar.

Paso 9 — Ocultar versión de WordPress y proteger las carpetas del sistema

A menudo los atacantes buscan en la telaraña de internet los sitios web con versiones vulnerables de WordPress, sobre todo las más antiguas. Espero que mantienes la versión de WordPress siempre al día y no es tu caso, ¿verdad?. Ocultando la versión conseguirás estar fuera del objetivo de los hackers.

¿Cómo ocultar la versión de WordPress y proteger las carpetas del sistema?

Por otra parte, tenemos que asegurar que no sea posible ejecutar ningún script no autorizado desde nuestras carpetas del sistema.

Los pasos son muy simples si utilizas el plugin SG Security: accede a SG Security -> Site Security y activa ambas opciones mostradas en mi captura.

Ocultando versión de WordPress y protegiendo las carpetas del sistema con el plugin SG Security

Paso 10 — Cambiar los prefijos de las bases de datos estándar de WordPress para evitar la SQL injection

Inyección de código SQL (SQL injection) – es una de las formas más utilizadas por los hackers para atacar sitios webs y programas que trabajan con las bases de datos mediante personalizadas consultas SQL.

Para evitarlo es muy importante definir un prefijo de las tablas difícilmente averiguable al principio de instalación. Por ejemplo:

Prefijo de tablas en WordPress

¿Cómo puedo cambiar el prefijo de tablas después de la instalación de WordPress?

Si nunca lo hayas hecho antes te recomiendo que contactes con un experto, si ya eres experto lo que necesitas hacer es lo siguiente (imaginemos que queremos cambiar el prefijo por defecto «wp_» por uno nuevo «dqorv_», en la base de datos llamada «mysitedb»):

  1. Realizar la copia de seguridad del sitio entero.
  2. Acceder a archivos de configuración, abrir un archivo llamado wp-config.php y cambiar el valor del prefijo por uno nuevo.
  3. Renombrar los nombres de las tablas con el siguiente código que te he preparado. Recuerda sustituir valores por los tuyos.
Copiar al portapapeles
  1. Renombrar el prefijo en la Tabla usermeta
Copiar al portapapeles
  1. Renombrar el prefijo en la Tabla options
Copiar al portapapeles

Y esto es todo, ahora estaremos más protegidos ante las inyecciones SQL, si no revelamos nuevo prefijo claro.

Paso 11 — Reforzar la seguridad de WordPress utilizando .htaccess

La correcta y segura configuración de .htaccess debe de realizarse por un profesional. Recomiendo no copiar y pegar configuraciones de otros sitios web sin saber lo que haces. Sin la correcta configuración de este archivo, tu web dejará de funcionar correctamente.

Después de la instalación del WordPress, todas las configuraciones son correctas. Por lo que antes de modificar este archivo recomiendo guardar su copia en algún sitio del ordenador.

¿Cómo bloquear el acceso al catálogo/directorio no deseado desde .htaccess?

Para ello lo que necesitas hacer es añadir las siguientes líneas al archivo .htaccess:

# BEGIN bloquear acceso a los directorios no deseados
Options -Indexes
# END

¿Cómo protejo mi fichero wp-config.php desde .htaccess?

Podríamos decir que wp-config.php es el fichero más importante de WordPress debido a que tenemos toda la configuración de conexión a la base de datos MySQL almacenada allí. Por lo que es el objetivo número uno para los atacantes. Para proteger este archivo añade las siguientes reglas al archivo .htaccess:

# BEGIN bloquear acceso al archivo wp-config.php
order allow,deny
deny from all
# END

¿Cómo puedo limitar el acceso al panel de administrador de WordPress desde .htaccess?

Con este paso puedes bloquear el acceso al panel de administrador de WordPress para todas las IP’s excepto las definidas en la regla.

¡OJO!

Si utilizas la dirección IP dinámica, no recomiendo este paso, ya que tendrás que constantemente modificar este fichero para cambiar la IP antigua a una renovada.

Si la IP dinámica no es tu caso, entonces añade esta regla en el archivo .htaccess. Donde pone xx.xx.xx.xxx deberás introducir la IP estática a la que quieres dar el permiso de acceso.

# BEGIN bloquear acceso a todas IP's excepto las definidas en la regla
Order deny,allow
Deny from all
Allow from xx.xx.xx.xxx
Allow from xx.xx.xx.xxx
# END

Para verificar tu IP puedes utilizar este servicio.

Paso 12 — Desactivar opciones vulnerables y protección avanzada contra ataques XSS

Para comunicarse con sistemas de terceros WordPress utiliza un protocolo llamado XML-RPC. El problema es que este protocolo ha sido utilizado en numerosos exploits y por ello si no lo utilizas, recomiendo que tengas este protocolo desactivado.

Por otra parte, es también recomendable desactivar RSS y ATOM si no tenemos lectores que utilizan nuestro sitio mediante lectores RSS. Ya que los feeds RSS y ATOM a menudo se usan para realizar diferentes tipos de ataques contra tu web.

Y por último te aconsejo añadir cabeceras adicionales para proteger tu sitio contra los ataques XSS.

¿Cómo desactivo el protocolo XML-RPC en WordPress?

Muy sencillo, para ello en el plugin SG Security accedes a la sección Site Security y marcas la opción Desactivar XML-RPC.

¿Cómo desactivo feeds RSS y ATOM en WordPress?

En la misma sección que de arriba tenemos que marcar la opción Desactivar feeds RSS y ATOM.

¿Cómo proteger nuestro sitio ante ataques Cross-site scripting (XSS) en WordPress?

Para ello, en la sección de Site Security tenemos que activar la opción Protección XSS avanzada y ya tendremos todo listo.

Desactivando protocolo XML-RPC, desactivando feeds de RSS y ATOM y activando la protección ante los ataques Cross-site scripting (XSS)

Conclusión y recomendaciones

Ahora, después de seguir todos estos pasos y aumentar la seguridad en WordPress, seguramente te surgirá la pregunta, ¿es suficiente para evitar que mi sito sea hackeado?. La respuesta es no, porque existe también el factor humano. Es decir, que tú, por ejemplo, conscientemente des los accesos a ciertas personas y estos hacen maldades.

Por otra parte, es posible que los desarrolladores mismos de WordPress metan la pata y generen vulnerabilidades que se puedan aprovechar. Algo que no depende directamente de nosotros.

Así que sigue tranquilamente los pasos descritos, no les des acceso a las personas no deseadas, haz copias de seguridad y disfruta de la vida.

Preguntas frecuentes

Depende si lo quieres con la opción de escaneo de virus o sin, tienes que tener en cuenta que escaneo ralentiza el sitio web y en mayoría de las ocasiones el proveedor de hosting ya lleva incorporada esta opción. Entre muchos plugins existentes podría destacar unos cuantos:

  • Wordfence Security que proporciona muchas opciones de seguridad para el WordPress. Opción de escaneo de virus incluida. Es un poco difícil en configuración y un poco pesado para el servidor.
  • SG Security el plugin todo en uno, que destaca por su facilidad de uso y configuraciones necesarias. No lleva la opción de escaneo de virus, sin embargo, no carga mucho el sistema.

Aquí sin más recomiendo utilizar el UpdraftPlus por su sencillez de uso y porque no me ha dado hasta ahora ningún problema durante su uso.

Si quieres un plugin con la opción de escaneo de virus, entonces Wordfence Security puede venirte a la perfección. Pero debes saber que este tipo de plugins suelen cargar bastante el sistema, por lo que tu web puede ir más lentamente. Si tienes la posibilidad de utilizar el escaneo desde tu proveedor de hosting, mejor.

Sobre este tema se puede debatir años, ya que cada uno va a defender su hosting preferido. Sin embargo, aquí lo que cuenta son las opiniones de la gente. Yo personalmente estoy muy satisfecho con SiteGround.

Incluye una herramienta para la detección de los últimos programas maliciosos y virus. Por otro lado, tiene su propio plugin de seguridad SG Security completo y ofrece una serie de soluciones avanzadas como monitorizacion constante del servidor, sistemas y ayuda anti hackeo, protección contra Spam, etc.

WordPress es un sistema de gestión de contendidos gratuito y probablemente más utilizado del mercado. Por este motivo, los programadores están cada vez más y más interesados en desarrollar distintas plantillas y los plugins para ganar algo de dinero.

En algunos casos son vulnerables, ya sea porque son obsoletos o porque el desarrollador no ha seguido técnicas recomendadas durante el desarrollo. Y allí están los hackers queriendo acceder al sistema mediante estas vulnerabilidades.

Por otra parte, se aprovechan de la gente que es nueva en el mundo de WordPress, ya que suelen cometer errores comunes en la configuración de este sistema, especialmente en la seguridad.

Para nosotros tu opinión es muy importante. Si la compartes en los comentarios, nos ayudas a seguir proporcionando un contenido valioso para ti y los demás lectores.