En aquest tema, aprendrem les pràctiques bàsiques de seguretat per a NGINX. La seguretat és un aspecte crític en qualsevol servidor web, i NGINX no és una excepció. Implementar mesures de seguretat adequades pot ajudar a protegir el teu servidor contra atacs i vulnerabilitats.
- Actualització Regular de NGINX
Importància de mantenir NGINX actualitzat
- Seguretat: Les actualitzacions sovint inclouen pegats de seguretat per a vulnerabilitats conegudes.
- Rendiment: Les noves versions poden incloure millores de rendiment.
- Funcionalitats: Les actualitzacions poden afegir noves funcionalitats i millores.
Com actualitzar NGINX
# Per a sistemes basats en Debian/Ubuntu sudo apt update sudo apt upgrade nginx # Per a sistemes basats en Red Hat/CentOS sudo yum update nginx
- Configuració de permisos de fitxers
Permisos recomanats
- Directori de configuració (
/etc/nginx
): Només l'usuari root hauria de tenir permisos d'escriptura. - Fitxers de configuració (
/etc/nginx/nginx.conf
): Només l'usuari root hauria de tenir permisos d'escriptura.
Com configurar els permisos
# Assegura't que només l'usuari root tingui permisos d'escriptura sudo chown -R root:root /etc/nginx sudo chmod -R 644 /etc/nginx
- Deshabilitar mòduls innecessaris
Per què deshabilitar mòduls innecessaris?
- Reducció de la superfície d'atac: Menys mòduls actius signifiquen menys possibles vulnerabilitats.
- Millora del rendiment: Menys mòduls actius poden millorar el rendiment del servidor.
Exemple de deshabilitació de mòduls
# Edita el fitxer de configuració de NGINX sudo nano /etc/nginx/nginx.conf # Comenta o elimina les línies dels mòduls innecessaris # load_module modules/ngx_http_xslt_filter_module.so; # load_module modules/ngx_http_image_filter_module.so;
- Configuració de capçaleres de seguretat
Capçaleres recomanades
- Strict-Transport-Security: Assegura que el navegador només es connecti a través de HTTPS.
- X-Content-Type-Options: Evita que el navegador interpreti els fitxers com un altre tipus de contingut.
- X-Frame-Options: Evita que la pàgina sigui carregada en un iframe.
- X-XSS-Protection: Activa la protecció contra atacs XSS en el navegador.
Com configurar les capçaleres
# Edita el fitxer de configuració de NGINX sudo nano /etc/nginx/nginx.conf # Afegeix les capçaleres de seguretat dins del bloc server server { ... add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; add_header X-Content-Type-Options "nosniff" always; add_header X-Frame-Options "DENY" always; add_header X-XSS-Protection "1; mode=block" always; ... }
- Limitació de la mida de les peticions
Per què limitar la mida de les peticions?
- Prevenció d'atacs DoS: Limitar la mida de les peticions pot ajudar a prevenir atacs de denegació de servei.
- Protecció contra vulnerabilitats: Limitar la mida de les peticions pot ajudar a prevenir l'explotació de vulnerabilitats.
Com limitar la mida de les peticions
# Edita el fitxer de configuració de NGINX sudo nano /etc/nginx/nginx.conf # Afegeix la directiva client_max_body_size dins del bloc http http { ... client_max_body_size 1m; ... }
Exercicis pràctics
Exercici 1: Actualització de NGINX
- Verifica la versió actual de NGINX instal·lada al teu sistema.
- Actualitza NGINX a l'última versió disponible.
Exercici 2: Configuració de permisos de fitxers
- Revisa els permisos actuals del directori
/etc/nginx
i els seus fitxers. - Configura els permisos segons les recomanacions donades.
Exercici 3: Configuració de capçaleres de seguretat
- Afegeix les capçaleres de seguretat recomanades al fitxer de configuració de NGINX.
- Verifica que les capçaleres s'estan enviant correctament utilitzant eines com
curl
o les eines de desenvolupador del navegador.
Solucions
Solució a l'Exercici 1
# Verifica la versió actual de NGINX nginx -v # Actualitza NGINX a l'última versió sudo apt update sudo apt upgrade nginx
Solució a l'Exercici 2
# Revisa els permisos actuals ls -l /etc/nginx # Configura els permisos recomanats sudo chown -R root:root /etc/nginx sudo chmod -R 644 /etc/nginx
Solució a l'Exercici 3
# Edita el fitxer de configuració de NGINX sudo nano /etc/nginx/nginx.conf # Afegeix les capçaleres de seguretat dins del bloc server server { ... add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; add_header X-Content-Type-Options "nosniff" always; add_header X-Frame-Options "DENY" always; add_header X-XSS-Protection "1; mode=block" always; ... } # Reinicia NGINX per aplicar els canvis sudo systemctl restart nginx
Conclusió
En aquesta secció, hem après diverses pràctiques bàsiques de seguretat per a NGINX, incloent la importància de mantenir NGINX actualitzat, configurar correctament els permisos de fitxers, deshabilitar mòduls innecessaris, configurar capçaleres de seguretat i limitar la mida de les peticions. Aquestes pràctiques ajudaran a protegir el teu servidor NGINX contra diverses amenaces de seguretat. En el proper tema, explorarem la limitació de velocitat per protegir el teu servidor contra atacs de denegació de servei.
Curs de NGINX
Mòdul 1: Introducció a NGINX
Mòdul 2: NGINX com a servidor web
- Servint contingut estàtic
- Llistats de directoris
- Pàgines d'error personalitzades
- Registre i formats de registre