nginx ne bloque pas les agents users

Je l'ai dans mon file .conf pour mon site Web afin de bloquer 2 agents users de sondes constamment sur mon server.

 ## Block http user agent - morpheus fucking scanner ## if ($http_user_agent ~* "morfeus fucking scanner|ZmEu") { return 403; } 

J'ai également essayé ce qui suit, sans aucune chance:

 if ($http_user_agent ~* ("morfeus fucking scanner|ZmEu")) if ($http_user_agent ~* (morfeus fucking scanner|ZmEu)) if ($http_user_agent ~* ("morfeus fucking scanner"|"ZmEu")) if ($http_user_agent ~* "morfeus fucking scanner|ZmEu") if ($http_user_agent ~* morfeus fucking scanner|ZmEu) 

Cela a bien fonctionné lorsque j'avais 1 agent user, mais en essayant d'append une seconde, ces agents users sont capables de sonder le server.

 111.90.172.235 - - [17/Feb/2013:23:05:22 -0700] "GET /phpMyAdmin/scripts/setup.php HTTP/1.1" 404 118 "-" "ZmEu" "-" 111.90.172.235 - - [17/Feb/2013:23:05:22 -0700] "GET /MyAdmin/scripts/setup.php HTTP/1.1" 404 118 "-" "ZmEu" "-" 111.90.172.235 - - [17/Feb/2013:23:05:22 -0700] "GET /pma/scripts/setup.php HTTP/1.1" 404 118 "-" "ZmEu" "-" 111.90.172.235 - - [17/Feb/2013:23:05:22 -0700] "GET /w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1" 403 118 "-" "ZmEu" "-" 111.90.172.235 - - [17/Feb/2013:23:05:22 -0700] "GET /myadmin/scripts/setup.php HTTP/1.1" 404 118 "-" "ZmEu" "-" 111.90.172.235 - - [17/Feb/2013:23:05:22 -0700] "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 404 118 "-" "ZmEu" "-" 

Selon ces deux posts n ° 12: Comment refuser certains agents d'utilisation? , HowTo: Nginx Block User Agent , je pense que je suis configuré correctement, mais ça ne semble pas fonctionner.


MODIFIER

Voici la version nginx et le file Conf confond

 nginx version: nginx/1.2.7 server { listn 80; server_name localhost; #charset koi8-r; access_log /var/log/nginx/XXXXXX/access.log main; error_log /var/log/nginx/XXXXXX/error.log; root /srv/www/XXXXXX; location / { index index.html index.htm index.php; #5/22/2012 - Turn on Server Side Includes ssi on; ## Block http user agent - morpheus fucking scanner ## if ($http_user_agent ~* "morfeus fucking scanner|ZmEu") { return 403; } ## Only allow GET and HEAD request methods. By default Nginx blocks ## all requests type other then GET and HEAD for static content. if ($request_method !~ ^(GET|HEAD)$ ) { return 405; } } location ~ \.php { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; #fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /srv/www/XXXXXX/$fastcgi_script_name; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # Redirect server error pages to the static page error_page 403 404 /error403.html; location = /error403.html { root /usr/share/nginx/html; } 

3 Solutions collect form web for “nginx ne bloque pas les agents users”

nginx applique uniquement un bloc de localization à chaque niveau de la configuration. Tous les files qui sont 404ing sont des files .php qui frappent le bloc d'location \.php et, par conséquent, n'utilisent pas le bloc d'location / qui contient votre bloc d'agent user. Pour corriger cela, déplacez votre agent user en dehors du bloc d'location vers le niveau racine afin qu'il s'applique à toutes les requests.

 if ($http_user_agent ~* "morfeus fucking scanner|ZmEu") { return 403; } location / { ... } location \.php { ... } 

Edit: Vous pouvez tester cela avec quelque chose comme curl qui vous permet de définir des en-têtes arbitraires:

 % curl -I localhost/sf645/blah HTTP/1.1 404 Not Found % curl -I -H 'User-agent: ZmEu' localhost/sf645/blah HTTP/1.1 403 Forbidden % curl -I -H 'User-agent: morfeus fucking scanner' localhost/sf645/blah HTTP/1.1 403 Forbidden 

Essayez simplement d'utiliser le motif (morfeus) . Ce caractère de tuyau est susceptible de vider la correspondance de motif d'expression régulière.

essaye ça

 if ($http_user_agent ~* (morfeus|ZmEu) ) { return 403; } 
  • i's doesnt compresser le contenu uniquement pour les requêtes contenant "/ gecko /" dans user-agent
  • Liste noire de l'agent user recommandée
  • Qu'est-ce qu'un SIP B2BUA, et comment est-il différent d'un UA?
  • Chaîne de l'agent user du browser avec tous les 0s
  • vérifiez plusieurs agents user dans nginx
  • Blocage par string user-agent dans httpd.conf pas efficace
  • L'agent user Java / 1.4.1_04 affronte (404) avec jQuery / Javascript
  • Bloquer les requêtes Web en fonction d'une partie de la string de l'agent user - Ne fonctionne pas
  • Search Engine Bot - Grande quantité de hits
  • Déclaration constitutionnelle dans Apache httpd
  • Identification des strings UserAgent qui ne prennent pas en charge TLSv1.1
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.