In Nginx et le Sécurité Dernière mise à jourated:
Partager sur:
Logiciel Jira est l'outil de gestion de projet n°1 utilisé par les équipes agiles pour planifier, suivre, publier et prendre en charge d'excellents logiciels.

Meilleures pratiques de sécurité Nginx.

Nginx est le plus rapide growserveur Web le plus performant du secteur et occupe actuellement la deuxième position en termes de part de marché.

C'était au débutally sorti en 2004, et depuis lors, il a acquis une excellente réputation et est utilisé sur les millions de sites les plus fréquentés.

nginx-part de marché-1

Il y a une raison à cela - Nginx est brûlant vite.

Dans cet article, je parlerai de certains des guides essentiels pour sécuriser le Nginx pour un environnement de production. Alors commençons.

SSL / TLS

Implémenter le certificat SSLate

La première étape de la sécurité Web consiste à implémenter SSL afin que vous puissiez accéder aux applications Web avec https et ajouter une couche de sécurité Web.cryption en communication.

  • Utilisez OpenSSL générerate La RSE avec 2048 bit et sha-2
openssl req -nodes -new -sha256 -newkey rsa:2048 -keyout bestflare.key -out bestflare.csr
  • La commande ci-dessus généreraate RSE et dossiers clés en cours de travail en direct. N'oubliez pas de modifier le nom des fichiers .csr et .key.

Faire signer le CSR par un certificatate autorité et une fois que vous avez le certificat signéate, vous pouvez les implémenter dans Nginx comme ci-dessous.

  • Connectez-vous au serveur Nginx
  • Accédez au dossier conf où vous avez un fichier ssl.conf.

Remarque: dans l'installation par défaut sous Linux, vous aurez ce fichier sous /etc/nginx/conf.d.

  • Modifiez le fichier et ajoutez ce qui suit, ce qui permettra à Nginx d'écouter sur le port 443
server {
listen       443 ssl;
   server_name bestflare.com;
   ssl                 on;
   ssl_certificate     /opt/cert/bestflare.pem;
   ssl_certificate_key /opt/cert/bestflare.key;
   }

Attention : n'oubliez pas de changer l'attestationate et le chemin du fichier clé.

  • Enregistrez la configuration et redémarrez le Nginx. Un certificat SSL est implémenté avec succès.

bestflare-ssl-cert

Optimisation SSL / TLS

Avoir SSL ne signifie pas qu'il est entièrement sécurisé et c'est là qu'en tant qu'expert en sécurité Web, vous devez appliquer une configuration pour sécuriser le serveur Web.

Pour commencer, je recommanderais d'exécuter un Analyse SSL contre le site Web pour trouver le score et la vulnérabilité essentielle.

ssl-labs-rating-c

La classification actuelle de SSL Labs est donc "C" et un objectif est de le rendre "A."

Disable protocoles SSL/TLS faibles

SSL 3, TLS 1.0 et TLS 1.1 est vulnérable et nous n'autoriserons qu'un protocole TLS 1.2 fort.

  • Modifiez le fichier ssl.conf et ajoutez ci-dessous dans le bloc serveur
ssl_protocols       TLSv1.2;
  • Enregistrez le fichier ssl.conf et redémarrez le Nginx

Disable suites de chiffrement faibles

Des suites de chiffrement faibles peuvent conduire à une vulnérabilité comme un blocage, et c'est pourquoi nous devons autoriser uniquement le chiffrement fort.

  • Ajoutez ce qui suit au bloc serveur dans le fichier 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 HIGH !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
  • Enregistrez le fichier et redémarrez Nginx

Installer le certificat de chaîneate

Ne pas avoir de certificat de chaîneate affecte également la note globale et cela peut montrer une erreur lorsque browsing dans un b modernerowseuh comme Chrome. Vous devez obtenir un certificat de chaîneate de l’autorité. La plupart du temps, vous le trouverez sur leur site Web ou simplement sur Google.

  • Ajouter le contenu du certificat de chaîne dans le certificat du site Webate comme ci-dessous. Dans mon exemple, ce serait /opt/cert/bestflare.pem

chaîne de certification

  • Enregistrez le fichier et redémarrez le Nginx

Sécuriser Diffie-Hellman pour TLS

Diffie-Hellman est moins sûr qu’on ne le pensait. Une des meilleures pratiques lately ajouté dans une liste est de sécuriser Diffie-Hellman. La génération d'un GROUPE DH unique et l'ajout de ssl_dhparam dans le fichier ssl.conf font cela.

  • Générerate Groupe DH unique utilisant OpenSSL
openssl dhparam -out dhparams.pem 4096
  • Cela prendra quelques minutes et généreraate un fichier dhparams.pem sur un répertoire de travail courant
  • Copiez dhparams.pem dans le dossier cert
  • Modifiez ssl.conf et ajoutez les éléments suivants dans le bloc serveur
ssl_dhparam    /opt/cert/dhparams.pem;
  • Enregistrez le fichier et redémarrez le Nginx

Cela devrait être suffisant pour l'optimisation SSL / TLS et testons à nouveau l'URL pour voir la note.

ssllabs-a-cote

Woo ho! Alors maintenant tu peux voir que c'est "UNE" note par SSLLabs. Bien joué!

Voici ssl.conf complet

# HTTPS server configuration
server {
   listen       443 ssl;
   server_name bestflare.com;
   ssl                 on;
   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 HIGH !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
   ssl_dhparam     /opt/cert/dhparams.pem;
}

Fuite d'informations

Dans l'installation par défaut de Nginx, vous aurez beaucoup d'informations sensibles revdétecté, ce qui peut aider les pirates à se préparer à une attaque.

Si vous travaillez sur un environnement de conformité PCI, cela est considéré comme une vulnérabilité de fuite d'informations et doit corriger l'élément.

Vous devez utiliser server_tokens off pour disable la fuite d’informations. J'ai expliqué cela dans mon prevarticle intéressant. Supprimer la version de la bannière d'en-tête du serveur dans Nginx

Sécurité des applications Web

La configuration par défaut de Nginx n'est pas parfaite et peut avoir de nombreuses vulnérabilités, c'est pourquoi nous les durcissons pour la sécuriser.

Disable méthodes HTTP indésirables

La plupart du temps, vous n’avez besoin que d’une requête HTTP GET, HEAD & POST dans votre application Web. Autoriser TRACE ou DELETE est risqué car cela peut permettre des attaques de suivi inter-sites et de potentielsally permettre à un pirate informatique de steal les informations des cookies.

  • Modifiez nginx.conf et ajoutez ce qui suit sous le bloc serveur
if ($request_method !~ ^(GET|HEAD|POST)$ ) 
{
return 405; 
}

Enregistrez le fichier et redémarrez le Nginx. Cela montrera maintenant 405 Non autorisé si quelqu'un essaie d'utiliser TRACE, DELETE, PUT, OPTIONS.

Chandans-iMac:~ chandan$ telnet bestflare.com 80
Trying 128.199.100.162...
Connected to bestflare.com.
Escape character is '^]'.
TRACE / HTTP/1.1
Host: testing
HTTP/1.1 405 Not Allowed
Server: nginx
Date: Sat, 11 Jul 2015 06:04:34 GMT
Content-Type: text/html
Content-Length: 166
Connection: close

Attaque de détournement de clic

Vous pouvez injecter X-FRAME-OPTIONS dans l'en-tête HTTP pour preva lancé une attaque de détournement de clic.

Ceci est réalisé en ajoutant ci-dessous dans le fichier nginx.conf

add_header X-Frame-Options "SAMEORIGIN";

L'en-tête ci-dessus indiquera abrowseuh pour charger les ressources UNIQUEMENT à partir de la même origine.

Protection X-XSS

Injecter l'en-tête HTTP avec la protection X-XSS pour atténuerate Attaque de script intersite.

  • Modifiez le fichier nginx.conf pour ajouter ce qui suit
add_header X-XSS-Protection "1; mode=block";
  • Enregistrez le fichier de configuration et redémarrez Nginx. Vous pouvez utiliser le Test des en-têtes outil pour vérifier après la mise en œuvre.

Vous pouvez également être intéressé par l'implémentation des en-têtes sécurisés recommandés par OWASP qui sont expliqués ici.

Implémenter Mod Security WAF

Ajoutez une couche de sécurité supplémentaire en implémentant le pare-feu d'application Web ModSecurity avec Ensemble de règles de base OWASP.

Sinon, si vous envisagez d'utiliser une sécurité basée sur le cloud comme SUCURI devant le serveur Nginx.

Gardez Nginx à jourate

Enfin et surtout, vous devez garder votre Nginx à jourate comme il existe de nombreuses améliorations des performances, des correctifs de sécurité et de nouvelles fonctionnalités sont ajoutés.

J'espère que cela vous aidera à sécuriser votre Nginx.

Ensuite, vous voudrez peut-être apprendre à construire Nginx pour de hautes performances à partir de zéro.

Partager sur:
  • Chandan Kumar
    Auteur
    Chandan Kumar est un passionné de technologie chevronné et un entrepreneur passionné.ate à propos empowerles entreprises et les particuliers du monde entierally. En tant que fondateur de Geekflare, une publication technologique de premier plan, Chandan a dirigé le développement…

Merci à nos commanditaires

Plus de bonnes lectures sur Nginx

Alimentez votre entreprise

Certains des outils et services pour aider votre entreprise grow.
  • L'outil de synthèse vocale qui utilise l'IA pour générerate des voix humaines réalistes.

    Essayez Murf AI
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.

    Essayez Brightdata
  • Monday.com est un système d'exploitation de travail tout-en-un pour vous aider à gérer les projets, les tâches, le travail, les ventes, le CRM, les opérations, workflowset plus encore.

    Essayez Monday
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.

    Essayez Intruder