Skip to main content
Hosting

Guía práctica para asegurar tu servidor y WordPress (2025 Edition)

Por 24 octubre, 2025octubre 28th, 2025Sin comentarios
Proteger WordPress 2025

La seguridad web no es una opción, es una obligación.
En 2025 los ataques a WordPress y servidores web se han vuelto más sofisticados: bots automatizados, vulnerabilidades en plugins, fuerza bruta y malware que se esconde en archivos legítimos.

La buena noticia es que asegurar tu servidor y WordPress está en tus manos.
En esta guía práctica te explico cómo proteger tu web paso a paso, desde el servidor hasta la aplicación, con ejemplos y configuraciones reales.

⚙️ Paso 1. Asegura tu servidor desde la base

Antes de tocar WordPress, el primer escudo está en el servidor.
No importa si usas un VPS, un hosting compartido o un servidor dedicado: estos puntos son básicos.

🔹 Mantén el sistema y los servicios actualizados

A veces lo más simple es lo más olvidado:

sudo apt update && sudo apt upgrade -y

O si usas CentOS / AlmaLinux:

sudo dnf update -y

✅ Repite esto cada semana. Los exploits más comunes atacan versiones antiguas de Apache, PHP o MySQL.

🔹 Desactiva funciones PHP peligrosas

Edita tu archivo php.ini y busca esta línea:

disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

💡 Esto evita que un atacante pueda ejecutar comandos del sistema a través de vulnerabilidades en tu web.

🔹 Protege /etc/ y otras rutas sensibles

Si administras el servidor, revisa los permisos de estas carpetas:

chmod 700 /root
chmod 600 /etc/passwd /etc/shadow

Y nunca ejecutes tu web como root.

🔹 Configura firewall y fail2ban

UFW (Ubuntu):

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 443/tcp
sudo ufw allow 80/tcp
sudo ufw enable

Fail2ban (bloquea ataques de fuerza bruta):

sudo apt install fail2ban

Y activa la cárcel básica para SSH en /etc/fail2ban/jail.local.

🧱 Paso 2. Refuerza tu servidor web (Apache o Nginx)

🔹 Oculta la versión del servidor

En Apache edita:

ServerSignature Off
ServerTokens Prod

En Nginx añade:

server_tokens off;

Así evitas mostrar tu versión exacta de software (una pista valiosa para hackers).

🔹 Redirige todo a HTTPS

Usa Let’s Encrypt con Certbot:

sudo apt install certbot python3-certbot-apache
sudo certbot --apache

Y añade en Apache:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

👉 HTTPS no solo protege los datos, también mejora tu SEO.

🔹 Configura headers de seguridad

Agrega en tu archivo .htaccess o en la configuración del servidor:

# Evita carga en iframes externos
Header always set X-Frame-Options "SAMEORIGIN"

# Evita detección MIME errónea
Header set X-Content-Type-Options "nosniff"

# Evita ejecución de scripts en directorios no esperados
Header set X-XSS-Protection "1; mode=block"

# Política CSP básica
Header set Content-Security-Policy "default-src 'self' https: data: 'unsafe-inline'"

🧩 Paso 3. Protege tu instalación de WordPress

Ahora sí: pasamos a WordPress. Aquí es donde más fallos se concentran, especialmente en plugins, temas y configuraciones débiles.

🔹 Mueve wp-config.php fuera del public_html

WordPress permite ubicar el wp-config.php un nivel superior al directorio público:

/home/usuario/wp-config.php
/home/usuario/public_html/

El core lo encontrará igual, pero será inaccesible desde la web.

🔹 Establece permisos seguros

Usa estos permisos como referencia:

find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
chmod 600 wp-config.php

Nunca uses 777.
Y el propietario debe ser el usuario de Apache o Nginx (por ejemplo, www-data):

chown -R www-data:www-data /var/www/html

🔹 Cambia el prefijo de tabla en la base de datos

Evita dejar el clásico wp_. Si ya tienes una instalación activa, puedes cambiarlo en wp-config.php:

$table_prefix = 'wprx_';

Y renombra las tablas desde WP-CLI:

wp db query "RENAME TABLE wp_users TO wprx_users;"

🔹 Limita intentos de login

Instala un plugin ligero como Limit Login Attempts Reloaded o WP Cerber. Ambos permiten bloquear IPs después de varios intentos fallidos.

También puedes añadir protección en .htaccess:

<Files wp-login.php>
order deny,allow
Deny from all
Allow from 123.123.123.123
</Files>

Esto restringe el acceso al login solo a tu IP.

🔹 Oculta la versión de WordPress

En tu functions.php:

remove_action('wp_head', 'wp_generator');

Así evitas mostrar la versión exacta de WordPress en el código fuente.

🔹 Desactiva la edición de archivos desde el panel

En tu archivo wp-config.php:

define('DISALLOW_FILE_EDIT', true);

Esto impide que un atacante modifique archivos desde el panel si accede con un usuario comprometido.

🔹 Instala un firewall de aplicación (WAF)

Opciones recomendadas para 2025:

  • 🔰 Wordfence Security (versión free o premium)
  • 🛡️ All-In-One WP Security
  • ☁️ Cloudflare WAF (gratuito)

Cloudflare además ofrece protección DDoS y mejora el rendimiento.

🔒 Paso 4. Copias de seguridad y monitorización

De nada sirve asegurar si no puedes restaurar. Usa un sistema de backups automáticos diarios, tanto en el hosting como en la nube.

Ejemplo con WP-CLI:

wp db export backups/$(date +%F).sql

Y para subirlo automáticamente a Google Drive o S3, usa rclone.

Para monitorizar cambios en archivos:

sudo apt install inotify-tools
inotifywait -m /var/www/html -e modify,create,delete

Así sabrás si alguien cambia algo sin permiso.

🧠 Paso 5. Revisión periódica y automatización

Haz una checklist mensual:

  • 🔄 Actualiza core, plugins y temas
  • 🧱 Revisa permisos y archivos sospechosos
  • 🔍 Escanea con VirusTotal o Sucuri SiteCheck
  • ⚙️ Verifica logs del servidor
  • 🧑‍💻 Cambia contraseñas y tokens antiguos

Y si administras varios sitios, considera WP-CLI + cronjobs para automatizar tareas.

💡 Bonus: snippet para enviar alertas por email

Puedes crear un pequeño script PHP que te avise si el sitio está caído:

<?php
$url = 'https://tuweb.com';
if (@fopen($url, 'r') === false) {
    mail('admin@tuweb.com', '⚠️ Sitio caído', "No se puede acceder a $url");
}
?>

Y programarlo con cron cada 10 minutos. Simple y efectivo.

🎯 Conclusión

La seguridad total no existe, pero puedes hacer que atacarte no valga la pena. Cada pequeño ajuste suma: desde los permisos hasta los encabezados o el firewall.

Recuerda: un WordPress seguro empieza en el servidor. Y un servidor seguro se mantiene con disciplina.

👉 Consejo final: Configura alertas automáticas, mantén tus plugins bajo control y nunca instales nada de fuentes dudosas. Y si quieres ir un paso más allá, en el próximo artículo veremos cómo automatizar auditorías de seguridad con WP-CLI y cronjobs.

Jairo Calero

Desarrollador web frontend y backend, especialista en webs app desarrolladas en PHP y Javascript. Experto en HTML, CSS3, PHP y Javascript con frameworks y librerías como jQuery, Angular y Bootstrap. Gestor de herramientas SEO como Google Analytics, Search Console, SEMrush o Hotjar. Email marketing y Big data.

Deja tu respuesta