Web

10 Reglas De Nginx Para Mejorar La Seguridad En WordPress

WordPress es, hasta la fecha, el CMS más popular con más del 30% de cuota de mercado de la web. Con tal cantidad de cuota de mercado, WordPress a menudo se convierte en blanco de amenazas de seguridad. Entonces, para el propietario de un sitio en WordPress, es mejor tomar algunas medidas para reforzar la seguridad en este popular CMS.

Como miles de sitios web se ejecutan en Nginx, he reunido algunos consejos básicos o reglas de Nginx para mejorar la seguridad de su sitio en WordPress.

Limitar el acceso XMLRPC

XMLRPC en WordPress se usa para permitir que una aplicación externa interactúe con los datos de WordPress. Por ejemplo, puede permitir agregar, crear o eliminar una publicación. Sin embargo, XMLRPC también es un vector de ataque común en el que el atacante puede realizar esas operaciones sin autorización. Es mejor permitir la solicitud a XMLRPC desde una IP autorizada en la que confía, de esta manera:

location ~* /xmlrpc.php$ {
allow 172.0.1.1;
deny all;
}

Una vez que se agrega lo anterior, debería ver la respuesta del código de error 403 al cargar xmlrpc.php en el navegador.

Limitar tipos de peticiones

La mayoría de las veces su sitio web solo puede realizar dos tipos de solicitudes, es decir, GET para recuperar datos de su sitio y POST para cargar datos en su sitio. Limitar el tipo de solicitud que nuestro sitio puede manejar solo a estos dos suena como una buena idea aquí.

if ($request_method !~ ^(GET|POST)$ ) {
    return 444;
}

Acceso directo a archivos PHP

Si de alguna manera, un pirata informático ingresa con éxito un archivo PHP en su sitio, podrá ejecutar este archivo cargando el archivo que efectivamente se convierte en una puerta trasera para infiltrarse en su sitio. Deberíamos deshabilitar el acceso directo a cualquier archivo PHP agregando las siguientes reglas:

location ~* /(?:uploads|files|wp-content|wp-includes|akismet)/.*.php$ {
    deny all;
    access_log off;
    log_not_found off;
}

Dotfiles

Similar al archivo PHP, un archivo de puntos como .htaccess, .user.ini y .git puede contener información confidencial. Para estar más seguro, es mejor deshabilitar el acceso directo a estos archivos.

location ~ /\.(svn|git)/* {
deny all;
access_log off;
log_not_found off;
}
location ~ /\.ht {
deny all;
access_log off;
log_not_found off;
}
location ~ /\.user.ini {
deny all;
access_log off;
log_not_found off;
}

Ocultar versiones de Nginx y PHP

Es mejor que cierta información no se exponga, como la versión de Nginx y la versión de PHP. Esto no evitará el ataque en sí. Sin embargo, suponiendo que resulte una versión particular de Ningx o PHP que tenga una vulnerabilidad expuesta, el atacante no podrá conocerlo fácilmente desde su sitio. Para ocultar la versión de Nginx:

#Hide the nginx version.
server_tokens off;

#Hide the PHP version.
fastcgi_hide_header X-Powered-By;
proxy_hide_header X-Powered-By;

Encabezados de seguridad

Los encabezados de seguridad proporcionan una capa adicional de seguridad al dictar el comportamiento del navegador. Las opciones de X-Frame, por ejemplo, evitarán que su sitio se cargue desde un iframe, a menos que sea de su propio sitio. Strict-Transport-Security exigirá que el navegador cargue su sitio desde HTTPS.

add_header X-Frame-Options SAMEORIGIN;
add_header Strict-Transport-Security "max-age=31536000";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";

Bloquear acceso a subdirectorio

Si su sitio se ejecuta en un subdirectorio como /blog, es mejor permitir el acceso a este subdirectorio. Significa que cualquier acceso oscuro a otros directorios que un atacante siempre busca, por ejemplo, /82jdkj/?.php están bloqueados.

location ~ ^/(?!(blog)/?) {
deny all;
access_log off;
log_not_found off;
}

Reducir el spam

Los comentarios de spam en wordpress, no podrán romper su sitio, inundará su base de datos con contenido basura o contenido malicioso que podría aprovecharse como un vector. Para reducir las entradas de spam, puede agregar las siguientes reglas a su configuración de Nginx junto con un complemento de protección contra spam como Akismet.

set $comment_flagged 0;
set $comment_request_method 0;
set $comment_request_uri 0;
set $comment_referrer 1;

if ($request_method ~ "POST"){
set $comment_request_method 1;
}

if ($request_uri ~ "/wp-comments-post\.php$"){
set $comment_request_method 1;
}

if ($http_referer !~ "^https?://(([^/]+\.)?site\.com|jetpack\.wordpress\.com/jetpack-comment)(/|$)"){
set $comment_referrer 0;
}

set $comment_flagged "${comment_request_method}${comment_request_uri}${comment_referrer}";
if ($comment_flagged = "111") {
return 403;
}

Limite de solicitudes

La página de inicio de sesión de WordPress, wp-login.php, es un punto final común para un ataque de fuerza bruta. El atacante intentará abrirse paso en su sitio enviando múltiples combinaciones de nombre de usuario y contraseña, y esto generalmente se hace varias veces en un segundo.

Para esto, podemos aplicar una regla que limitará la cantidad de solicitudes que la página puede manejar por segundo. Aquí establecemos el límite en 2 solicitudes por segundo; de lo contrario, la solicitud se bloqueará.

limit_req_zone $binary_remote_addr zone=WPRATELIMIT:10m rate=2r/s;
location ~ \wp-login.php$ {
    limit_req zone=WPRATELIMIT;
}

Deshabilitar listado de directorio

Por último, pero no menos importante, debe deshabilitar la lista del directorio para que el atacante no sepa qué hay en el directorio. Hay muy pocas razones por las que sé dónde es útil el listado de directorios en un sitio de WordPress.

autoindex off;
WP Dev JaGonzalez

Hijo, esposo y padre de un hermoso niño. Amante de los animales, la tecnología, informática y programación. Si tienes alguna duda, inquietud, comentario o deseas comunicarte directamente conmigo, puedes enviarme un correo electrónico a admin@jagonzalez.org

Ver comentarios

Compartir
Publicado por
WP Dev JaGonzalez

Entradas recientes

iPhone Hackeado: Qué Hacer para Proteger tu Dispositivo y Asegurar tu Seguridad

¿Has notado aplicaciones desconocidas o un drenaje inesperado de la batería? Estos podrían ser indicios…

2 semanas hace

Cómo Restablecer un iPhone a su Estado de Fábrica

Saber cómo Restablecer un iPhone a su Estado de Fábrica es clave para solucionar problemas…

2 semanas hace

Motorola planea lanzar al menos dos nuevos teléfonos Moto G en septiembre

Motorola ha confirmado el lanzamiento de Moto G84 5G y Moto G54 5G en India,…

1 año hace

El equipo de WizardLM afirma que un modelo de IA de terceros les robó el trabajo

Recuerde WizardCoder, ¿el codificador de IA que cubrimos recientemente aquí en Windows Report? Nos jactamos…

1 año hace

Las fallas del complemento Jupiter X Core amenazaron a 172.000 sitios web con apropiaciones de cuentas

Los investigadores han descubierto numerosos fallos de seguridad en el complemento WordPress Jupiter X Core…

1 año hace

Consola portátil Xbox: aquí tienes todo lo que necesitas saber al respecto

Para solucionar problemas del sistema de PC con Windows, necesitará una herramienta dedicada Fortect es…

1 año hace