Maison >Opération et maintenance >Nginx >Guide de configuration de la sécurité Nginx pour empêcher les attaques de sites Web et les accès malveillants

Guide de configuration de la sécurité Nginx pour empêcher les attaques de sites Web et les accès malveillants

WBOY
WBOYoriginal
2023-07-04 14:42:325362parcourir

Guide de configuration de la sécurité Nginx pour prévenir les attaques de sites Web et les accès malveillants

Introduction :
Avec le développement rapide d'Internet, les problèmes de sécurité des réseaux ont attiré de plus en plus d'attention. En tant qu'administrateur de site Web, il est crucial de protéger votre site Web contre les attaques et les accès malveillants. En tant que serveur Web et serveur proxy inverse hautes performances, Nginx offre une multitude d'options de configuration de sécurité qui peuvent nous aider à renforcer la sécurité de notre site Web. Cet article présentera certaines configurations de sécurité Nginx couramment utilisées pour aider les administrateurs de sites Web à prévenir les attaques de sites Web et les accès malveillants.

1. Restreindre les méthodes d'accès

  1. Interdire les méthodes HTTP dangereuses
    Par défaut, Nginx prend en charge plusieurs méthodes HTTP, notamment GET, POST, OPTIONS, etc. Cependant, certaines méthodes HTTP peuvent présenter des risques de sécurité, par exemple, la méthode TRACE peut être utilisée pour des attaques de type cross-site scripting (XSS). Nous pouvons utiliser la directive "limit_sauf" de Nginx pour limiter l'accès à certaines méthodes HTTP.
    Exemple de code :

    location / {
     limit_except GET POST {
         deny all;
     }
    }
  2. Fermer la liste des répertoires inutiles
    Si le répertoire Nginx n'a pas de fichier d'index par défaut, il affichera automatiquement la liste des fichiers dans le répertoire, ce qui peut exposer des informations sensibles. Nous pouvons empêcher ce comportement en désactivant la liste automatique des répertoires.
    Exemple de code :

    location / {
     autoindex off;
    }

2. Prévenir les requêtes et les attaques malveillantes

  1. Prévenir les requêtes malveillantes
    Les requêtes malveillantes incluent un grand nombre de requêtes, des téléchargements de fichiers volumineux, des scripts malveillants, etc., qui entraîneront une charge du serveur être trop élevé. Nous pouvons éviter que cela ne se produise en fixant des limites de requêtes.
    Exemple de code :

    http {
     limit_req_zone $binary_remote_addr zone=req_limit:10m rate=1r/s;
     
     server {
         location / {
             limit_req zone=req_limit burst=5 nodelay;
             # 其他配置
         }
     }
    }

    Dans le code ci-dessus, nous utilisons la directive "limit_req_zone" pour définir la zone limite de requête et définir la taille et le débit limite (jusqu'à 1 requête par seconde est autorisée). Ensuite, utilisez la directive "limit_req" dans la configuration "serveur" correspondante pour appliquer la zone limite.

  2. Prévenir les attaques courantes
    Nginx fournit certaines options de configuration pour empêcher les attaques courantes par défaut, telles que :
  3. Prévenir les attaques par débordement de tampon : options de configuration proxy_buffer_size et proxy_buffersproxy_buffer_sizeproxy_buffers 配置选项
  4. 防止HTTP请求头过大攻击:large_client_header_buffers 配置选项
  5. 防止URI长度过大攻击:large_client_header_buffers 配置选项
  6. 防止恶意请求:client_max_body_size 配置选项
  7. 防止DDoS攻击:limit_connlimit_req 配置选项

三、使用HTTPS保证数据传输安全

HTTPS协议可以保证数据传输的机密性和完整性,防止数据被窃取或篡改。使用HTTPS可以防止中间人攻击、数据劫持等安全问题。我们可以使用Nginx提供的SSL模块来配置HTTPS。
示例代码:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;

    location / {
        # 其他配置
    }
}

上述代码中,我们使用listen 443 ssl指令来监听443端口,并使用ssl_certificatessl_certificate_key

Empêcher les attaques avec des en-têtes de requête HTTP trop grands : large_client_header_buffers Options de configuration


Prévenir les attaques avec des longueurs d'URI trop grandes : large_client_header_buffers Options de configuration

🎜Empêcher les requêtes malveillantes : client_max_body_size Options de configuration 🎜🎜Prévenir les attaques DDoS : <code>limit_conn et limit_req Options de configuration 🎜🎜🎜3. Utilisez HTTPS pour garantir la sécurité de la transmission des données 🎜🎜Le protocole HTTPS peut garantir la confidentialité. de la transmission et de l'intégrité des données pour empêcher le vol ou la falsification des données. L'utilisation de HTTPS peut prévenir les problèmes de sécurité tels que les attaques de l'homme du milieu et le détournement de données. Nous pouvons utiliser le module SSL fourni par Nginx pour configurer HTTPS. 🎜Exemple de code : 🎜rrreee🎜Dans le code ci-dessus, nous utilisons la commande listen 443 ssl pour écouter le port 443, et utilisons le ssl_certificate et le ssl_certificate_key code> options de configuration Spécifiez le chemin du certificat SSL. 🎜🎜Conclusion : 🎜Cet article présente certaines options de configuration de sécurité Nginx couramment utilisées, notamment la restriction des méthodes d'accès, la prévention des requêtes et des attaques malveillantes, l'utilisation de HTTPS pour garantir la sécurité de la transmission des données, etc. Bien entendu, il existe de nombreuses autres options pour la configuration de la sécurité de Nginx, qui peuvent être configurées en conséquence pour différentes situations. En tant qu'administrateurs de sites Web, nous devons accorder une attention particulière aux problèmes de sécurité des sites Web et renforcer continuellement les configurations de sécurité pour protéger le site Web contre les attaques et les menaces d'accès malveillantes. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn