Nginx webszerver biztonsági és edzési útmutató

Nginx biztonsági gyakorlatok.


A Nginx az iparág leggyorsabban növekvő webszervere, jelenleg piaci részesedésében második helyen áll.

Eredetileg 2004-ben adták ki, és azóta kiváló hírnevet szerzett, és a legjobban működő millió helyeknél használták fel.

Ennek oka van – az Nginx gyorsan lángol.

Ebben a cikkben néhány lényeges útmutatót fogok megvitatni, amelyekkel biztosítható az Nginx a termelési környezethez. Tehát kezdjük el.

SSL / TLS

Végrehajtja az SSL tanúsítványt

A webbiztonság első lépése az SSL bevezetése, így elérheti a webalkalmazásokat a https segítségével, és hozzáadhat egy réteg titkosítást a kommunikációhoz.

  • Az OpenSSL használatával generálhat CSR-t 2048 bit és sha-2 formátummal

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

  • A fenti parancs CSR és kulcsfájlokat generál az aktuálisan közvetlenül működő módon. Ne felejtsd el megváltoztatni a .csr és a .key fájlnevet.

Kérje meg a tanúsító hatóság által aláírt CSR-t, és miután megszerezte az aláírt tanúsítványt, végrehajthatja azokat az Nginx-ben az alábbiak szerint.

  • Bejelentkezés az Nginx szerverre
  • Ugrás a conf mappába, ahol van egy ssl.conf fájl.

Megjegyzés: Alapértelmezés szerint Linuxon telepítve ez a fájl a következő alatt található: /etc/nginx/conf.d.

  • Szerkessze a fájlt, és adja hozzá a következőket, amelyek lehetővé teszik az Nginx számára, hogy meghallgassa a 443-as porton

szerver {
hallgass 443 ssl;
server_name bestflare.com;
ssl;
ssl_certificate /opt/cert/bestflare.pem;
ssl_certificate_key /opt/cert/bestflare.key;
}

Megjegyzés: Ne felejtse el megváltoztatni a tanúsítványt és a kulcsfájl elérési útját.

  • Mentse a konfigurációt, és indítsa újra a Nginx-et. Az SSL tanúsítvány sikeresen megvalósult.

bestflare-ssl-cert

SSL / TLS optimalizálás

Ha az SSL rendelkezik, ez nem azt jelenti, hogy teljesen biztonságos, és itt, mint Webbiztonsági szakértőnek konfigurációt kell használnia a webszerver biztonságához..

Először azt javaslom, futtasson egy SSL vizsgálat a weboldal ellen, hogy megtalálják a pontszámot és az alapvető sebezhetőséget.

ssl-labs-rating-c

Tehát a jelenlegi SSL Labs minősítés „C” és a cél az, hogy “A.”

Tiltsa le a gyenge SSL / TLS protokollokat

Az SSL 3, a TLS 1.0 és a TLS 1.1 sebezhető, és csak egy erős TLS 1.2 protokollt engedélyezünk.

  • Szerkessze az ssl.conf fájlt, majd adja hozzá a szerverblokkhoz

ssl_protocols TLSv1.2;

  • Mentse az ssl.conf fájlt, és indítsa újra az Nginx fájlt

Tiltsa le a gyenge rejtjelkészleteket

A gyenge rejtjelkészletek olyan biztonsági rést okozhatnak, mint egy logjam, és ezért csak erős titkosítást kell engedélyeznünk.

  • Adja hozzá az alábbiakat a szerverblokkhoz az ssl.conf fájlban

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

  • Mentse el a fájlt, és indítsa újra az Nginx alkalmazást

Telepítse a Lánc Tanúsítványt

A láncbizonyítvány hiánya befolyásolja az általános minősítést, és ez hibát jeleníthet meg, ha egy olyan modern böngészőben böngészünk, mint a Chrome. Be kell szereznie a láncbizonyítványt a hatóságtól. Leginkább a saját webhelyükön vagy csak a Google-on találják meg.

  • Adja hozzá a lánc tanúsítvány tartalmát a weboldal tanúsítványához, az alábbiak szerint. Példámban az /opt/cert/bestflare.pem lenne

cert-lánc

  • Mentse el a fájlt, és indítsa újra a Nginx-et

Biztonságos Diffie-Hellman a TLS számára

Diffie-Hellman kevésbé biztonságos, mint hitték. A listába az utóbbi időben bekerült egyik legjobb gyakorlat a Diffie-hellman védelme. Az egyedi DH GROUP létrehozása és az ssl_dhparam hozzáadása az ssl.conf fájlhoz ezt megteszi.

  • Generáljon egyedi DH csoportot az OpenSSL használatával

openssl dhparam -out dhparams.pem 4096

  • Néhány percig tart, és a dhparams.pem fájlt generálja az aktuális működő könyvtárban
  • Másolja a dhparams.pem fájlt a mappába
  • Módosítsa az ssl.conf fájlt, és a szerverblokkban adja hozzá a következőt

ssl_dhparam /opt/cert/dhparams.pem;

  • Mentse el a fájlt, és indítsa újra a Nginx-et

Ennek elegendőnek kell lennie az SSL / TLS optimalizáláshoz, és próbáljuk újra tesztelni az URL-t a minősítés megtekintéséhez.

ssllabs-a-minősítés

Woo ho! Tehát most már láthatod „A” értékelés az SSLLabs által. Szép munka!

Itt van a teljes ssl.conf

# HTTPS szerver konfiguráció
szerver {
hallgass 443 ssl;
server_name bestflare.com;
ssl;
ssl_certificate /opt/cert/bestflare.pem;
ssl_certificate_key /opt/cert/bestflare.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
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! ! MD5! EXP! PSK! SRP! DSS";
ssl_dhparam /opt/cert/dhparams.pem;
}

Információszivárgás

Az Nginx alapértelmezett telepítésekor sok érzékeny információ tárul fel, amely segíthet a hackereknek a támadás felkészülésében.

Ha PCI-megfelelőségi környezetben dolgozik, akkor ezt az információszivárgás veszélyének tekintik, és ennek meg kell javítania az elemet.

Az kiszolgáló_tokeneket ki kell kapcsolnia az információszivárgás letiltásához. Ezt elmagyaráztam az előző cikkben. Távolítsa el a verziót az Nginx kiszolgálófejléc-szalaghirdetéséből

Webes alkalmazások biztonsága

Az alapértelmezett Nginx konfiguráció nem tökéletes, és számos biztonsági rést tartalmazhat, ezért megkeményítjük őket, hogy biztonságossá tegyük.

Tiltsa le a nem kívánt HTTP módszereket

Leggyakrabban csak GET, HEAD-re van szükséged & POST HTTP kérés a webes alkalmazásban. A TRACE vagy a DELETE engedélyezése kockázatos, mivel megengedheti a Site-Tracking támadást és potenciálisan lehetővé teszi a hackerek számára a cookie-k ellopását..

  • Módosítsa az nginx.conf fájlt, és a szerverblokk alatt adja hozzá a következőt

if ($ request_method! ~ ^ (GET | FEJ | POST) $)
{
visszatér 405;
}

Mentse el a fájlt, és indítsa újra a Nginx-et. Ez most azt mutatja, hogy a 405 nem engedélyezett, ha valaki megkísérli használni a TRACE, DELETE, PUT, OPTIONS lehetőséget.

Chandans-iMac: ~ chandan $ telnet bestflare.com 80
Kipróbálás a 128.199.100.162 verzióval…
Csatlakoztatva a bestflare.com webhelyhez.
A menekülési karakter ‘^]’.
TRACE / HTTP / 1.1
Gazda: tesztelés
HTTP / 1.1 405 nem engedélyezett
Szerver: nginx
Dátum: 2015. július 11., szombat, 06:04:34 GMT
Tartalom típusa: szöveg / html
Tartalom hossza: 166
Csatlakozás: bezárás

Clickjacking Attack

X-FRAME-OPTIONS-t fecskendezhet a HTTP fejlécbe a kattintásos támadás megakadályozása érdekében.

Ezt úgy érjük el, ha az alábbiakkal felvesszük az nginx.conf fájlt

add_header X-Frame-Options "SAMEORIGIN";

A fejléc felett utasítja a böngészőt, hogy CSAK az azonos forrásból töltse be az erőforrásokat.

X-XSS védelem

Injektálja a HTTP-fejlécet X-XSS védelemmel a webhelyek közötti parancsfájlok támadásának enyhítésére.

  • Módosítsa az nginx.conf fájlt az alábbiak hozzáadásához

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

  • Mentse el a konfigurációs fájlt, és indítsa újra az Nginx alkalmazást. Használhatja a Fejlécek teszt eszköz a végrehajtás utáni ellenőrzéshez.

Ön is érdekelhet az OWASP által ajánlott biztonságos fejlécek végrehajtásában, amelyeket itt ismertetünk.

Végrehajtja a Mod Security WAF-ot

Adjon hozzá további biztonsági réteget a webalkalmazás tűzfal ModSecurity alkalmazásának az OWASP központi szabálykészlettel történő megvalósításával.

Alternatív megoldásként, ha mérlegelheti a felhő alapú biztonság, mint például a SUCURI az Nginx szerver előtt.

Tartsa naprakészen Nginx-et

Végül, de nem utolsósorban, naprakészen kell tartania az Nginx készüléket, mivel számos teljesítményjavításra, biztonsági javításra és új funkcióra kerül sor.

Remélem, ez segít megóvni az Nginx-et.

Ezután érdekli a tanulás épít a Nginx-et a nagy teljesítmény érdekében a semmiből.

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