5 formas de mejorar la seguridad en NGINX

NGINX sigue ganando popularidad. Según las estadísticas de Netcraft de octubre de 2017, casi ha alcanzado a Apache, lo que significa que cada vez más personas están utilizando este servidor web ligero y extremadamente rápido. Sin embargo, esto también significa que se necesitan implementar más medidas de seguridad en los despliegues de NGINX. Para ello, existen muchas posibilidades.

Índice de Contenido
  1. 1. Prevenir revelación de información sensible
  2. 2. Ocultar ajustes de PHP
  3. 3. Redirigir errores del servidor
  4. 4. Proteger directorios sensibles
  5. 5. Limitar la frecuencia de las solicitudes
  6. NGINX ahora es un poco más seguro

1. Prevenir revelación de información sensible

Abre una ventana de terminal y ejecuta el siguiente comando:

curl -I http://DIRECCION_DEL_SERVIDOR

Es muy probable que veas algo similar a lo que se muestra en la Figura A.

Figura A

Esa información podría invitar a ataques. ¿Cómo? Porque los atacantes pueden utilizar esa información para idear un hackeo de tu sistema. Para evitarlo, vamos a configurar NGINX para que no muestre la versión de NGINX ni la plataforma de hosting. Abre el archivo de configuración con el siguiente comando: sudo nano /etc/nginx/nginx.conf. Desplázate hacia abajo hasta que encuentres la línea:

# server_tokens off;

Elimina el carácter # de esa línea, de la siguiente manera:

Cómo firmar digitalmente un archivo en Linux usando gnupg
server_tokens off;

Guarda y cierra el archivo. Una vez que hayas recargado NGINX con el comando sudo systemctl reload nginx, el comando curl -I ya no mostrará la versión de NGINX ni la plataforma de hosting (Figura B).

Figura B

2. Ocultar ajustes de PHP

Si utilizas NGINX con PHP, no puedes ocultar la información de PHP en el archivo de configuración de NGINX. En su lugar, debes editar el archivo php.ini. Ejecuta el siguiente comando sudo nano /etc/php/7.0/fpm/php.ini y asegúrate de que expose_php está configurado en off. La opción de configuración se encuentra alrededor de la línea 359. Después de cambiar esa configuración, guarda y cierra el archivo. Recarga NGINX y la información de PHP estará oculta para ojos curiosos.

3. Redirigir errores del servidor

A continuación, debemos configurar las páginas de error en la configuración predeterminada de sites-enabled, de manera que los errores 401 (No autorizado) y 403 (Prohibido) se redirijan automáticamente a la página de error 404 (No encontrado). Muchos creen que mostrar los errores 401 y 403 equivale a exponer información confidencial, por lo que redirigirlos a la página de error 404 ofrece un poco de seguridad mediante la oscuridad, de manera similar a ocultar información del servidor.

Para hacer esto, ejecuta el siguiente comando sudo nano /etc/nginx/sites-enabled/default. En el archivo de configuración resultante, desplázate hacia abajo hasta la sección server { y añade la siguiente línea:

error_page 401 403 404 /404.html;

Guarda y cierra el archivo. Recarga NGINX con el comando sudo systemctl reload nginx y tu servidor redirigirá automáticamente los errores 401 y 403 a errores 404.

Cómo deshabilitar el soporte USB en servidores Linux para mejorar la seguridad

4. Proteger directorios sensibles

Supongamos que quieres bloquear ciertos directorios y permitir únicamente el acceso desde direcciones específicas. Digamos que tienes un sitio de WordPress y quieres bloquear el acceso a la carpeta wp-admin para todos, excepto para las direcciones IP de tu red local. Supongamos también que tu red local tiene el esquema de direcciones IP 192.168.1.0/24. Para lograr esto, ejecuta el siguiente comando sudo nano /etc/nginx/sites-enabled/default. Desplázate hasta la sección location / dentro de la sección server { y añade lo siguiente:

location /wp-admin {
allow 192.168.1.0/24;
deny all;
}

Una vez que hayas recargado NGINX, si alguien intenta acceder a la carpeta wp-admin, será redirigido a la página de error 403, a menos que hayas configurado NGINX para redirigir a la página de error 404, en cuyo caso se redirigirá a la página de error 404.

5. Limitar la frecuencia de las solicitudes

Es posible limitar la cantidad de solicitudes entrantes que NGINX aceptará. Por ejemplo, digamos que quieres limitar la aceptación de solicitudes entrantes a la sección /wp-admin. Para lograr esto, vamos a utilizar la directiva limit_req_zone y configurar una zona de memoria compartida llamada "one" (que almacenará las solicitudes para una clave especificada) y limitarla a 30 solicitudes por minuto. Utilizaremos la dirección IP del cliente como clave, para ello ejecuta el siguiente comando sudo nano /etc/nginx/sites-enabled/default. Antes de la sección server {, añade la siguiente línea:

limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m;

Desplázate hasta la directiva location, donde añadimos la sección wp-admin. Dentro de esa directiva, añade la siguiente línea:

limit_req zone=one;

Entonces nuestra sección wp-admin podría verse como sigue:

location /wp-admin {
allow 10.10.1.0/24;
deny all;
limit_req zone=one;
}

Guarda y cierra el archivo default. Recarga NGINX con el comando sudo systemctl reload nginx. Tu sección wp-admin ahora solo permitirá 30 solicitudes por minuto. Después de la trigésima solicitud, el usuario verá el siguiente error (Figura B).

Cómo solucionar el problema de seguridad entre Docker y UFW en Linux
Figura B

5 formas de mejorar la seguridad en NGINX - Seguridad | Imagen 1 Newsmatic

Puedes establecer ese límite en cualquier directorio que necesite ser protegido por este mecanismo.

NGINX ahora es un poco más seguro

Felicitaciones, tu instalación de NGINX ahora es un poco más segura. Sí, hay muchas más formas en las que puedes lograr una seguridad aún mayor, pero comenzar aquí será un excelente punto de partida.

Cómo proteger tu negocio de los ciberataques: el número de incidentes casi se duplicó en 2017

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Seguridad, allí encontraras muchos artículos similares a 5 formas de mejorar la seguridad en NGINX , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.