Maison  >  Article  >  Opération et maintenance  >  Comment utiliser Nginx pour empêcher les attaques par injection de drapeau Apache

Comment utiliser Nginx pour empêcher les attaques par injection de drapeau Apache

WBOY
WBOYoriginal
2023-06-10 15:17:38906parcourir

Dans le domaine de la sécurité des réseaux, l'attaque par injection de drapeau Apache est une méthode d'attaque relativement courante. Les attaquants utilisent certaines vulnérabilités ou paramètres de requête HTTP spécifiques pour forger des en-têtes de requête afin de tromper le serveur pour qu'il effectue des opérations inattendues ou exécute du code malveillant. Pour empêcher cette attaque, nous pouvons utiliser Nginx comme serveur proxy inverse pour gérer les requêtes. Ce qui suit décrit comment utiliser Nginx pour empêcher les attaques par injection de drapeau Apache.

  1. Configurer le proxy inverse Nginx

Lorsque Nginx traite une requête, il peut transmettre la requête au serveur principal et filtrer certains en-têtes de requête pour éviter les requêtes falsifiées, améliorant ainsi la sécurité du système. Lors de la configuration du proxy inverse Nginx, vous devez utiliser Apache comme serveur backend et filtrer les données spécifiques dans l'en-tête de la requête.

La configuration est la suivante :

server {
  listen 80;
  server_name example.com;
  location / {
    proxy_pass http://apache_server;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Nginx-Proxy true;
    proxy_set_header Connection "";
    if ( $http_user_agent ~* (libwww-perl|wget) ) {
    return 403;
    }
    if ( $http_host ~* "^[0-9]+.[0-9]+.[0-9]+.[0-9]+$" ) {
    return 403;
    }
    if ( $http_referer ~* "(babes|forsale|girl|jewelry|
      love|nudit|organic|poker|porn|sex|teen)" ) {
    return 403;
    }
  }
}

Dans cette configuration, nous utilisons la directive proxy_set_header, qui peut ajouter dynamiquement les données dans l'en-tête de requête à chaque requête de proxy inverse. Par exemple, nous pouvons ajouter X-Real-IP au serveur Apache. Cette directive peut également filtrer certaines requêtes dangereuses, telles que les requêtes qui indiquent des attaques automatisées telles que libwww-perl ou wget dans l'agent utilisateur, ou les requêtes dans lesquelles le champ référent de la requête contient des mots sensibles tels que porno.

  1. Configurer le pare-feu

Afin d'assurer davantage la sécurité du système, nous devons également configurer le pare-feu sur le serveur. Les règles sont les suivantes :

iptables -I INPUT -p tcp --dport 80 -m string --algo bm --string "apache" -j DROP

Cette configuration peut ajouter une règle de filtrage dans iptables. supprimer toutes les chaînes contenant "apache". Les requêtes sont filtrées. Cette règle peut filtrer efficacement certaines requêtes malveillantes, améliorant ainsi la stabilité et la sécurité du système.

  1. Installer mod_security

Afin d'améliorer encore la sécurité du serveur, nous pouvons également installer le module mod_security. Ce module peut effectuer des contrôles de sécurité approfondis sur les requêtes sur le serveur Apache, par exemple, vérifier si la requête. contient des attaques par injection SQL, etc. Une série d'attaques avancées, grâce à la conception de règles flexibles, peut prévenir efficacement les attaques malveillantes et les abus, garantissant ainsi la sécurité et la fiabilité du serveur.

  1. Configurer SSL

Si vous devez gérer des informations sensibles ou un site Web similaire au commerce électronique, nous devons également utiliser un certificat SSL pour assurer le cryptage et la transmission sécurisée des données. En utilisant un certificat SSL, vous pouvez empêcher le vol ou la falsification des données pendant la transmission, garantissant ainsi la confidentialité et la sécurité des utilisateurs.

Résumé

En utilisant Nginx comme serveur proxy inverse, certains risques de sécurité et requêtes malveillantes peuvent être filtrés, améliorant ainsi la sécurité et la fiabilité du serveur. La sécurité du serveur est encore renforcée par des mesures telles que le pare-feu et l'installation de mod_security. Dans des applications telles que le traitement d'informations sensibles et le commerce électronique, nous recommandons d'utiliser des certificats SSL pour garantir la transmission sécurisée des données et améliorer considérablement la sécurité et la stabilité du serveur.

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