Guia de seguretat i enduriment de Nginx Web Server

Les millors pràctiques de seguretat de Nginx.


Nginx és el servidor web de més ràpid creixement de la indústria i actualment ocupa la posició número dos en la quota de mercat.

Va ser llançat inicialment el 2004, i des de llavors ha guanyat una excel·lent reputació i es va utilitzar en els milions de llocs més concorreguts.

Hi ha una raó per això: Nginx ho és ardent ràpid.

En aquest article, parlaré d’algunes de les guies essencials per protegir Nginx per a un entorn de producció. Així, comencem-ho.

SSL / TLS

Implanta el certificat SSL

El primer pas en la seguretat web és implementar SSL per poder accedir a aplicacions web amb https i afegir una capa de xifrat en la comunicació.

  • Utilitzeu OpenSSL per generar RSC amb 2048 bits i sha-2

openssl req -nodes -new -sha256 -newkey rsa: 2048 -keyout bestflare.key -out bestflare.csr

  • L’ordre anterior generarà CSR i fitxers clau en funcionament actual directament. No oblideu canviar el nom de fitxer .csr i .key.

Obteniu la CSR signada per una autoritat de certificat i, un cop tingueu el certificat signat, els podeu implementar a Nginx com es mostra a continuació.

  • Inicieu la sessió al servidor Nginx
  • Vés a la carpeta Conf on teniu un fitxer ssl.conf.

Nota: En instal·lació predeterminada a Linux, tindreu aquest fitxer a sota /etc/nginx/conf.d.

  • Editeu el fitxer i afegiu el següent, que permetrà escoltar Nginx al port 443

servidor {
escolta 443 ssl;
nom_servei bestflare.com;
ssl en;
ssl_certified /opt/cert/bestflare.pem;
ssl_certificat_key /opt/cert/bestflare.key;
}

Nota: no oblideu canviar el certificat i la ruta del fitxer de la clau.

  • Deseu la configuració i reinicieu Nginx. S’ha implementat correctament un certificat SSL.

bestflare-ssl-cert

Optimització SSL / TLS

Tenir SSL no vol dir que sigui completament segur i, per tant, com a expert en Seguretat Web, cal aplicar una configuració per protegir el servidor web.

Per començar, us recomanaria que utilitzeu una Exploració SSL contra el lloc web per trobar la puntuació i la vulnerabilitat essencial.

ssl-labs-rating-c

Així doncs, la qualificació actual de SSL Labs és “C” i un objectiu és que sigui “A.”

Desactiva protocols febles SSL / TLS

SSL 3, TLS 1.0 i TLS 1.1 són vulnerables, i només permetrem un protocol TLS 1.2 fort.

  • Editeu el fitxer ssl.conf i afegiu-lo a sota al bloc del servidor

ssl_protocols TLSv1.2;

  • Deseu el fitxer ssl.conf i reinicieu Nginx

Desactiva les suites de xifrat febles

Les suites de xifrat febles poden causar vulnerabilitat com un logjam i, per això, només hem de permetre un xifrat fort.

  • Afegiu el següent al bloc del servidor al fitxer ssl.conf

ssl_ciphers "EECDH + ECDSA + AESGCM EECDH + aRSA + AESGCM EECDH + ECDSA + SHA384 EECDH + ECDSA + SHA256 EECDH + aRSA + SHA384 EECDH + aRSA + SHA256 EECDH + aRSA + RC4 EECDH EDH + aRSA ALTA! ! MD5! EXP! PSK! SRP! DSS";

  • Desa el fitxer i reinicia Nginx

Instal·leu el certificat de cadena

El fet de no tenir un certificat de cadena també afecta la qualificació general i això pot mostrar un error en navegar en un navegador modern com Chrome. Heu d’obtenir un certificat de cadena de l’autoritat. Principalment la trobareu al seu lloc web o simplement a Google.

  • Afegiu el contingut de la cadena al certificat del lloc web com ara a continuació. En el meu exemple, seria /opt/cert/bestflare.pem

cadena cert

  • Deseu el fitxer i reinicieu Nginx

Diffie-Hellman segur per TLS

Diffie-Hellman és menys segur del que es creia. Una de les millors pràctiques que s’hi han afegit darrerament en una llista és assegurar a Diffie-hellman. Si es crea un grup DH exclusiu i es suma ssl_dhparam al fitxer ssl.conf.

  • Genereu Grup DH exclusiu mitjançant OpenSSL

openssl dhparam -out dhparams.pem 4096

  • Tarden uns minuts i es generarà un fitxer dhparams.pem en un directori de treball actual
  • Copieu dhparams.pem a la carpeta cert
  • Modifiqueu ssl.conf i afegiu el següent al bloc del servidor

ssl_dhparam /opt/cert/dhparams.pem;

  • Deseu el fitxer i reinicieu Nginx

Això hauria de ser suficient per a l’optimització SSL / TLS i tornem a provar l’URL per veure la qualificació.

ssllabs-a-rating

Vaja! Ara pots veure-ho “A” valoració per SSLLabs. Ben fet!

Aquí teniu ssl.conf complet

# Configuració del servidor HTTPS
servidor {
escolta 443 ssl;
nom_servei bestflare.com;
ssl en;
ssl_certified /opt/cert/bestflare.pem;
ssl_certificat_key /opt/cert/bestflare.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers activat;
ssl_ciphers "EECDH + ECDSA + AESGCM EECDH + aRSA + AESGCM EECDH + ECDSA + SHA384 EECDH + ECDSA + SHA256 EECDH + aRSA + SHA384 EECDH + aRSA + SHA256 EECDH + aRSA + RC4 EECDH EDH + aRSA ALTA! ! MD5! EXP! PSK! SRP! DSS";
ssl_dhparam /opt/cert/dhparams.pem;
}

Fuga d’informació

De manera predeterminada, la instal·lació de Nginx tindrà una informació molt sensible que pot ajudar els hackers a preparar-se per a un atac.

Si esteu treballant en un entorn de compliment de PCI, es considera com a vulnerabilitat de fuites d’informació i heu d’arreglar l’element.

Heu d’utilitzar server_tokens desactivat per desactivar la fuga d’informació. Ho he explicat en el meu article anterior. Elimineu la versió del Banner de capçaleres del servidor a Nginx

Seguretat d’aplicacions web

La configuració predeterminada de Nginx no és perfecta i pot tenir moltes vulnerabilitats, és per això que les endurecem per assegurar-la.

Desactiveu els mètodes HTTP no desitjats

La majoria de les vegades, només necessita GET, HEAD & Sol·licitud POST HTTP a la vostra aplicació web. Permetre TRACE o Eliminar és arriscat, ja que pot permetre un atac de seguiment entre llocs i permetre que un pirata informàtic robi la informació de la galeta..

  • Modifiqueu nginx.conf i afegiu el següent al bloc del servidor

if ($ request_method! ~ ^ (GET | HEAD | POST) $)
{
retorn 405;
}

Deseu el fitxer i reinicieu Nginx. Ara es mostrarà 405 No permès si algú està intentant utilitzar TRACE, DELETE, PUT, OPTIONS.

Chandans-iMac: ~ chandan $ telnet bestflare.com 80
Intentant el 128.199.100.162…
Connectat a bestflare.com.
El personatge de escape és ‘^]’.
TRACE / HTTP / 1.1
Amfitrió: prova
HTTP / 1.1 405 no permès
Servidor: nginx
Data: dissabte, 11 de juliol de 2015 06:04:34 GMT
Contingut: text / html
Durada del contingut: 166
Connexió: tancada

Atac del clic

Podeu injectar X-FRAME-OPTIONS a la capçalera HTTP per evitar un atac de clic.

Això s’aconsegueix afegint el fitxer nginx.conf a continuació

add_header X-Frame-Options "SAMEORIGIN";

A l’encapçalament superior s’instruirà un navegador que carregui NOMÉS els recursos des del mateix origen.

Protecció X-XSS

Injecteu la capçalera HTTP amb protecció X-XSS per mitigar l’atac de scripts de llocs creuats.

  • Modifiqueu el fitxer nginx.conf per afegir el següent

add_header X-XSS-Protection "1; mode = bloc";

  • Deseu el fitxer de configuració i reinicieu Nginx. Podeu utilitzar el botó Test de capçaleres eina per verificar després de la implementació.

També us pot interessar implementar capçaleres segures recomanades d’OWASP que s’expliquen aquí.

Implementa el WAF de Mod Mod Security

Afegiu una capa addicional de seguretat implementant ModSecurity Firewall per a aplicacions web amb el conjunt de regles core OWASP.

Alternativament, si podeu considerar la utilització de seguretat basada en núvol, com ara SUCURI davant del servidor Nginx.

Mantingueu al dia Nginx actualitzada

Finalment, però no per això menys important, heu de mantenir actualitzada la vostra Nginx, ja que hi ha moltes millores de rendiment, s’afegeixen solucions de seguretat i noves funcions..

Espero que això us ajudi a mantenir la vostra Nginx segura.

A continuació, potser us interessarà aprendre construir Nginx per obtenir un alt rendiment des de zero.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map