Consejos de seguridad en Nginx

1. Mantener Nginx actualizado

Nginx como toda paquetería open source, podemos instalarlo bien desde los repositorios o bien descargando el código fuente y compilándolo en nuestra máquina.

Esta última opción tiene como ventajas sobre la primera el poder activar módulos adicionales que por defecto no se instalarían, o desactivar otros módulos que no nos vayan a ser de utilidad; además de poder obtener la última versión liberada por los desarrolladores que no siempre es la existente en los repositorios

Instalación desde consola

Descarga del código fuente

Visitaremos este enlace y seleccionaremos el paquete a descargar. Ésto lo haremos mediante wget, por ejemplo:

Descomprimimos el paquete y ejecutamos los siguientes comandos:

2. Eliminar módulos innecesarios

Como hemos podido ver en el primer punto, el compilar nuestra propia instalación de Nginx, nos permitirá activar o desactivar los módulos que necesitemos de más o de menos, personalizando así nuestra instalación y optimizándola en función de lo que necesitemos en cada caso.

3. Desactivar server_tokens

Los token de servidor se encargan de mostrar la versión de la instalación de Nginx en caso de error. Hoy día esta información puede sugerir nuevas vías de ataque a nuestro servidor, por lo que será recomendable desactivarlo para evitar situaciones indeseadas.

Esto lo haremos especificando la siguiente directiva dentro del bloque de servidor en el archivo de configuración.

4. Desactivar métodos HTTP no deseados

La mayoría de webs y aplicaciones web no suelen usar más allá de los métodos GET, POST y HEAD, por lo que en nuestro servidor web, deberíamos desactivar todos los otros métodos HTTP evitando así solicitudes no deseadas y optimizando el tráfico de datos.

Para hacer esto añadiremos las siguientes líneas a nuestro bloque del servidor en el archivo de configuración.

Una respuesta a HTTP 444 significa una respuesta vacía a la petición de un servicio distinto de los especificados. Para comprobar si funciona de forma correcta haremos una petición usando curl enviando un método DELETE y otra enviando uno de los admitidos.

5. Establecer Límites para Buffer

Para evitar ataques mediante de desbordamiento de Buffer (buffer overflow), deberemos establecer las siguientes directrices en un nuevo fichero que colocaremos en la siguiente ruta con el nombre ‘buffer.conf’.

 Una vez creado el fichero, deberemos incluirlo en el archivo de configuración añadiendo esta línea:

6. Limitar el número de conexiones por IP

Una medida de seguridad más que recomendada si apreciamos los recursos y ancho de banda de los que disponemos. Aunque algo importante a recordar es que no todas las conexiones que se realizan a nuestro sitio web serán tenidas en cuenta, sólo aquellas cuyas solicitudes procese el servidor y cuya cabecera haya sido leída.

Para esto, haremos uso de la línea con el parámetro ‘limit_conn_zone’ (fuera del bloque de servidor del archivo de configuración) o la que contiene ‘limit_conn’ (dentro del bloque servidor en el archivo de configuración).

En este caso hemos establecido que no se podrá hacer más de una conexión por IP, cosa exagerada por supuesto que nos sirve para este ejemplo.

7. Redireccionar HTTP a HTTPS

Añadiremos al inicio del bloque servidor del archivo de configuración la siguiente línea:

Permitir sólo TLS (Desactivar SSL).

La siguiente configuración podrá aplicarse dentro del bloque ‘server’ del archivo de configuración o bien crear un fichero aparte (suelen llamarlo ‘ssl.conf’) en el que incluir el parámetro.

Con esta línea evitaremos el uso de SSL y aplicaremos que únicamente se haga uso de las versiones TLS que queramos emplear.

8. Configurar Logs

Establecer una vía para monitorizar los eventos sucedidos en nuestro servidor es fundamental en caso de error o posible ataque, para diagnosticar problemas, ip’s de origen, etc…

En Nginx, añadiremos una línea dentro del bloque ‘server’ del archivo de configuración donde especificaremos la ruta a la que mandaremos los registros.

Con estas directivas aplicadas obtendremos un servidor web protegido ante ataques HTTP, evita desbordamientos de buffer, encontrar vulnerabilidades por versión etc…

Fuente: openwebinars.net

facebook Consejos de seguridad en Nginxtwitter Consejos de seguridad en Nginxgoogle Consejos de seguridad en Nginxdiggit Consejos de seguridad en Nginxpinterest Consejos de seguridad en Nginxlinkedin Consejos de seguridad en Nginxprint Consejos de seguridad en Nginxemail Consejos de seguridad en NginxSi te gusto, comparte el articulo.

Artículos Relacionados

Agregar comentario


*

Recibe nuestro newsletter

Suscribete a nuestro newsletter y mantente informado con nuestros últimos artículos, noticias y más. Todo completamente gratis.