Maison  >  Article  >  Opération et maintenance  >  Configuration de restriction d'accès Nginx pour empêcher les accès malveillants et les attaques de robots

Configuration de restriction d'accès Nginx pour empêcher les accès malveillants et les attaques de robots

PHPz
PHPzoriginal
2023-07-04 10:25:122498parcourir

Configuration de restriction d'accès Nginx pour empêcher les accès malveillants et les attaques de robots

Introduction :
À l'ère d'Internet d'aujourd'hui, les accès malveillants et les attaques de robots sont devenus de grandes menaces de sécurité. En tant que serveur Web haute performance et serveur proxy inverse, Nginx peut restreindre l'accès via certaines configurations pour protéger le site Web de ces attaques. Cet article présentera certaines configurations de restriction d'accès Nginx couramment utilisées, avec des exemples de code.

1. Restrictions de la liste noire et de la liste blanche IP

  1. Restrictions de la liste noire IP
    Si vous souhaitez restreindre l'accès à une certaine adresse IP, vous pouvez utiliser le module ngx_http_access_module fourni avec Nginx.
http {
    # 创建一个blacklist.conf文件来存储黑名单的IP地址
    include blacklist.conf;
    server {
        location / {
            # 在这里设置黑名单的访问规则
            deny 192.168.1.100;
            deny 192.168.1.0/24;
            deny 10.0.0.0/8;
            # 其他配置...
        }
    }
}

La configuration ci-dessus est simple et claire. Vous pouvez utiliser refuser directement dans le bloc d'emplacement pour refuser l'accès à l'adresse IP ou à la plage d'adresses IP spécifiée.

  1. Restrictions de la liste blanche IP
    Contrairement à la liste noire IP, si vous souhaitez autoriser uniquement certaines adresses IP à accéder et refuser d'autres adresses IP, vous pouvez utiliser la commande Allow.
http {
    # 创建一个whitelist.conf文件来存储白名单的IP地址
    include whitelist.conf;
    server {
        location / {
            # 在这里设置白名单的访问规则
            allow 192.168.1.100;
            allow 192.168.1.0/24;
            allow 10.0.0.0/8;
            # 最后拒绝所有其他访问
            deny all;
            # 其他配置...
        }
    }
}

Dans la configuration ci-dessus, utilisez la commande Allow pour autoriser l'accès à l'adresse IP ou à la plage d'adresses IP spécifiée, et refusez tout pour refuser l'accès à toutes les autres adresses IP.

2. Restrictions des agents utilisateurs
Certaines attaques de robots utiliseront de faux agents utilisateurs pour accéder, nous pouvons donc empêcher de telles attaques en restreignant les agents utilisateurs.

http {
    server {
        location / {
            # 在这里设置拒绝某些特定User-Agent的访问
            if ($http_user_agent ~* (curl|wget) ) {
                return 403;
            }
            # 其他配置...
        }
    }
}

Dans la configuration ci-dessus, utilisez la commande if plus une expression régulière pour correspondre à un agent utilisateur spécifique, puis utilisez la commande return pour renvoyer 403 Forbidden.
De cette façon, les demandes tentant d'accéder au site Web à l'aide d'outils comme curl ou wget seront rejetées.

3. Limitation de fréquence
Afin d'éviter les attaques DDoS et le craquage par force brute, vous pouvez définir des limites de fréquence d'accès.

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;
    server {
        location / {
            # 在这里设置访问频率限制
            limit_req zone=one burst=10 nodelay;
            # 其他配置...
        }
    }
}

Dans la configuration ci-dessus, utilisez la commande limit_req_zone pour créer une zone mémoire pour stocker les adresses IP. Le nom est un, la taille est de 10 m et la fréquence d'accès est définie sur 2r/s. Utilisez ensuite la commande limit_req dans le bloc d'emplacement pour limiter la fréquence. Le paramètre burst indique la taille du tampon lorsque l'accès est dépassé, et nodelay indique que la demande doit être traitée immédiatement.

Résumé : 
Grâce aux exemples de configuration ci-dessus de restrictions de listes noires et blanches IP, de restrictions d'agent utilisateur et de restrictions de fréquence, nous pouvons empêcher efficacement les accès malveillants et les attaques de robots. Bien entendu, la configuration spécifique peut être ajustée en fonction des besoins réels. Enfin, j'espère que le contenu ci-dessus pourra être utile pour votre configuration de restriction d'accès Nginx.

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