Nginx Veiligheids- en verhardingsgids op die webbediener

Beste praktyke vir Nginx-sekuriteit.


Nginx is die vinnigste groeiende webbediener in die industrie, en beklee tans die grootste posisie in die markaandeel.

Dit is oorspronklik in 2004 vrygestel, en sedertdien het dit ‘n uitstekende reputasie verdien en word dit in die topmiljoen besigste terreine gebruik.

Daar is ‘n rede daarvoor – Nginx is vinnig brand.

In hierdie artikel bespreek ek enkele van die noodsaaklike gidse om die Nginx vir ‘n produksie-omgewing te beveilig. Kom ons begin dit.

SSL / TLS

Implementeer SSL-sertifikaat

Die eerste stap in webveiligheid is om SSL te implementeer, sodat u toegang het tot webtoepassings met https en ‘n laag kodering in kommunikasie kan byvoeg.

  • Gebruik OpenSSL om CSR met 2048 bit en sha-2 te genereer

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

  • Bogenoemde opdrag sal CSR en sleutellêers genereer wat tans direk werk. Moenie vergeet om die .csr- en .key-lêernaam te verander nie.

Kry die CSR onderteken deur ‘n sertifikaatowerheid en sodra u die getekende sertifikaat het, kan u dit implementeer in Nginx soos hieronder.

  • Teken in op die Nginx-bediener
  • Gaan na die conf map waarin u ‘n ssl.conf-lêer het.

Opmerking: By die standaardinstallasie op Linux sal u hierdie lêer onder hê /etc/nginx/conf.d.

  • Bewerk die lêer en voeg die volgende by, wat Nginx in staat stel om op 443-poort te luister

bediener {
luister 443 ssl;
bedienernaam bestflare.com;
ssl aan;
ssl_certificate /opt/cert/bestflare.pem;
ssl_certificate_key /opt/cert/bestflare.key;
}

Let wel: moenie vergeet om die sertifikaat- en sleutellêerpad te verander nie.

  • Stoor die konfigurasie en herbegin die Nginx. ‘N SSL-sertifikaat word suksesvol geïmplementeer.

bestflare-ssl-sert

SSL / TLS-optimalisering

As u SSL het, beteken dit nie dat dit ten volle beveilig is nie en dat u as ‘n websekerheidskundige ‘n opstelling moet toepas om die webbediener te beveilig.

Om mee te begin, beveel ek aan om ‘n SSL-skandering teen die webwerf om die telling en noodsaaklike kwesbaarheid te vind.

ssl-labs-gradering-c

Die huidige SSL Labs-gradering is dus “C” en ‘n doel is om dit “A.” te maak.

Skakel swak SSL / TLS-protokolle uit

SSL 3, TLS 1.0 en TLS 1.1 is kwesbaar, en ons sal slegs ‘n sterk TLS 1.2-protokol toelaat.

  • Wysig die ssl.conf-lêer en voeg dit hieronder in die bedienerblok by

ssl_protocols TLSv1.2;

  • Stoor die ssl.conf-lêer en herbegin die Nginx

Deaktiveer swak chiffer-suites

Swak chiffer suites kan lei tot kwesbaarheid soos ‘n logjam, en daarom moet ons net ‘n sterk kodering toelaat.

  • Voeg die volgende by die bedienerblok in die ssl.conf-lêer

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 + aRSAULL! ! MD5! EXP! PSK! SRP! DSS";

  • Stoor die lêer en herbegin Nginx

Installeer kettingsertifikaat

As u nie ‘n kettingsertifikaat het nie, beïnvloed dit ook die algehele gradering en dit kan ‘n fout toon as u in ‘n moderne blaaier soos Chrome blaai. U moet ‘n kettingsertifikaat van die gesag verkry. U sal dit meestal op hul webwerf of net Google vind.

  • Voeg die inhoud van die kettingsertifikaat by soos in die webwerf-sertifikaat. In my voorbeeld sou dit /opt/cert/bestflare.pem wees

sert-ketting

  • Stoor die lêer en herbegin die Nginx

Veilige Diffie-Hellman vir TLS

Diffie-Hellman is minder veilig as wat geglo is. Een van die beste praktyke wat onlangs in ‘n lys bygevoeg is, is om Diffie-hellman te beveilig. Dit skep unieke DH GROUP en voeg ssl_dhparam in die ssl.conf-lêer toe.

  • Genereer unieke DH-groep deur OpenSSL te gebruik

openssl dhparam -out dhparams.pem 4096

  • Dit duur ‘n paar minute en genereer ‘n lêer dhparams.pem op ‘n huidige werkgids
  • Kopieer dhparams.pem na die sertifikaatvouer
  • Verander ssl.conf en voeg die volgende in die bedienerblok by

ssl_dhparam /opt/cert/dhparams.pem;

  • Stoor die lêer en herbegin die Nginx

Dit behoort voldoende te wees vir SSL / TLS-optimalisering en laat ons die URL weer toets om die gradering te sien.

ssllabs-'n-gradering

Woo ho! So nou kan jy sien dit is “A” gradering deur SSLLabs. Wel gedaan!

Hier is ‘n volledige ssl.conf

# HTTPS-bedieneropstelling
bediener {
luister 443 ssl;
bedienernaam bestflare.com;
ssl aan;
ssl_certificate /opt/cert/bestflare.pem;
ssl_certificate_key /opt/cert/bestflare.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers aan;
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 + aRSAULL! ! MD5! EXP! PSK! SRP! DSS";
ssl_dhparam /opt/cert/dhparams.pem;
}

Inligtinglek

In die standaard Nginx-installasie sal baie sensitiewe inligting aan u bekend gemaak word, wat hackers kan help om voor te berei op ‘n aanval.

As u aan ‘n PCI-voldoeningsomgewing werk, word dit as ‘n kwesbaarheid van inligtinglek beskou en moet dit die item regstel.

U moet server_tokens gebruik om die lekkasie van inligting te deaktiveer. Ek het dit in my vorige artikel verduidelik. Verwyder weergawe van die bedienerkopbanner in Nginx

Webtoepassingsekuriteit

Die standaard Nginx-opstelling is nie perfek nie en kan baie kwesbaarhede hê, daarom verhard ons dit om dit veilig te maak.

Deaktiveer ongewenste HTTP-metodes

U benodig meestal net GET, HEAD & POST HTTP-versoek in u webtoepassing. Dit is riskant om TRACE of DELETE toe te laat, want dit kan aanvalle op verskillende plekke opspoor en moontlik maak dat ‘n hacker die inligting oor die koekie steel.

  • Verander nginx.conf en voeg die volgende onder die bedienerblok by

if ($ request_method! ~ ^ (KRY | HOOF | POS) $)
{
terugkeer 405;
}

Stoor die lêer en herbegin die Nginx. Dit wys nou 405 Nie toegelaat as iemand probeer om TRACE, DELETE, PUT, OPTIONS te gebruik nie.

Chandans-iMac: ~ chandan $ telnet bestflare.com 80
Probeer 128.199.100.162…
Gekoppel aan bestflare.com.
Ontsnapkarakter is ‘^]’.
Spoor / HTTP / 1.1
Gasheer: toets
HTTP / 1.1 405 nie toegelaat nie
Bediener: nginx
Datum: Sat, 11 Jul 2015 06:04:34 GMT
Inhoudstipe: teks / html
Inhoud-lengte: 166
Verbinding: naby

Clickjacking Attack

U kan X-FRAME-OPTIONS in HTTP Header inspuit om te voorkom dat ‘n klikaanval voorkom.

Dit word bereik deur hieronder ‘n nginx.conf-lêer by te voeg

add_header X-raam-opsies "SAMEORIGIN";

Bo die kop sal ‘n blaaier opdrag gee om slegs die bronne van dieselfde oorsprong te laai.

X-XSS-beskerming

Spuit HTTP-kop met X-XSS-beskerming aan om die aanval op die skripsie op die perseel te versag.

  • Verander nginx.conf-lêer om die volgende by te voeg

add_header X-XSS-beskerming "1; modus = blok";

  • Stoor die konfigurasielêer en herbegin Nginx. U kan die Opskrif toets instrument om na implementering te verifieer.

U sal dalk ook belangstel om die beveiligde opskrifte van OWASP aan te voer, wat hier uiteengesit word.

Implementeer Mod Security WAF

Voeg ‘n ekstra laag sekuriteit toe deur Web Application Firewall ModSecurity met OWASP Core Rule Set te implementeer.

Alternatiewelik, as u dit dalk oorweeg om wolkgebaseerde sekuriteit te gebruik, soos SUCURI voor die Nginx-bediener.

Hou Nginx op datum

Laastens, maar nie die minste nie, moet u u Nginx op datum hou, want daar is baie prestasieverbetering, sekuriteitsoplossings en nuwe funksies word bygevoeg.

Ek hoop dit help u om u Nginx veilig te hou.

Volgende kan u belangstel om te leer bou Nginx vir hoë werkverrigting van nuuts af.

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