Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 14709|Răspunde: 2

[Web] nginx este protejat împotriva DDOS, conform http_user_agent

[Copiază linkul]
Postat pe 20.12.2016 10:37:01 | | |

Proxy invers frontend squid către nginx
nginx este protejat împotriva DDOS, conform http_user_agent
Mai întâi, revizuiți jurnalele de acces pentru a identifica caracteristicile vizitelor suspecte găsite http_user_agent, apoi filtrați-le
"Mozilla/4.0 (compatibil; MSIE 5.01; Windows NT 5.0; MyIE 3.01)Control-cache: fără magazin, trebuie revalidat"
if ($http_user_agent ~ must-revalidate) {
return 503;
}
#这样就返回503错误
locație = / {
include proxy .conf;
if ( $http_user_agent ~* "MSIE 5.01" ) {
proxy_pass http://www.qq.com;
#access_log /usr/local/nginx/logs/k.log main;
      }
proxy_pass http://windows.abc.com;
}
#判断一下user-agent, dacă e MSIE 5.01, aruncă-l în altă parte, de exemplu arătând spre www.qq.com ca să vezi dacă rezistă, haha
proxy_hide_header Controlul Cache-ului;
În final, întoarce-te la Cache-Control și vizitează pagina
Acum legătura este stocată în cache către squid-ul front-end, iar serverul de aplicații nu se va bloca
#########################################################
Descriere detaliată a parametrilor modulului de localizare în nginx
Locația Nginx poate avea următoarele potriviri:
1. = Potrivește strict această interogare. Dacă sunt găsite, opriți căutarea.
2. ^~ Potrivește prefixul traseului, dacă este găsit, oprește căutarea.
3. ~ este o potrivire regulată sensibilă la majuscule și majuscule   
4. ~* este o potrivire insensibilă la majuscule și majuscule
5. !~ și !~* sunt nepotriviri sensibile la majuscule și insensibile la majuscule, respectiv

Potrivirea fișierelor și directorului
* -f și !-f sunt folosite pentru a determina dacă există un fișier
* -d și !-d sunt folosite pentru a determina dacă există un director
* -e și !-e sunt folosite pentru a determina dacă există un fișier sau un director
* -x și !-x sunt folosite pentru a determina dacă un fișier este executabil sau nu

Unele dintre variabilele globale disponibile
$args
$content_lungime
$content_tip
$document_rădăcină
$document_uri
$host
$http_agent_utilizator
$http_cookie
$limit_rată
$request_fișier_corp
$request_metodă
$remote_addr
$remote_port
$remote_user
$request_nume fișier
$request_uri
$query_string
$scheme
$server_protocol
$server_addr
$server_nume
$server_port
$uri

Flag-ul după rescriere poate fi:
Ultima
Pauză
redirecționare
permanent

proxy_pass http://localhost:80;
proxy_set_header Gazdă $host;
Poți schimba automat informațiile despre numele domeniului după redirecționare




Precedent:Soluție C# pentru imposibilitatea accesării obiectelor eliberate
Următor:PowerShell transformă mai multe spații într-un singur spațiu pentru a elimina spațiile în exces
 Proprietarul| Postat pe 20.12.2016 10:37:25 |

Serverul este afectat de cc (atacatorul folosește serverul proxy pentru a genera cereri legitime către gazda victimă, a implementa DDOS și a masca acest lucru se numește: cc (ChallengeCollapsar). ) atacă, nginx poate pur și simplu să se descurce cu asta.

Deoarece useragent-ul unui atacator CC este în general fix, folosim nginx pentru a judeca useragatet pentru a gestiona atacurile CC.
În configurația serverului nginx

(1) useragent este egal cu o anumită caracteristică (insensibil la majuscule)
if ($http_user_agent ~* OliveHC3){
   returnare 403;
}
(2) useragent-ul conține o anumită funcție (nu este diferențială cu majuscule)
if ($http_user_agent ~* (*OliveHC3*)){
   returnare 403;
}
(3) useragent este o funcție goală
if ($http_user_agent ~ ^$){
        returnare 403;
}


Astfel, atacul a revenit la 403.
 Proprietarul| Postat pe 20.12.2016 11:03:41 |

1. $remote_addr și $http_x_forwarded_for sunt folosite pentru a înregistra adresa IP a clientului;
2.$remote_user: Folosit pentru înregistrarea numelui de utilizator al clientului;
3.$time_local: Folosit pentru a înregistra ora și fusul orar de acces;
4.$request: URL și protocol HTTP folosit pentru înregistrarea cererilor;
5.$status : Folosit pentru a înregistra stadiul cererii; Succesul este 200,
6.$body_bytes_s ent: Înregistrează dimensiunea conținutului principal al corpului fișierului trimis clientului;
7.$http_referer: folosit pentru a înregistra vizitele din linkul de pe acea pagină;
8.$http_user_agent: Înregistrează informațiile relevante ale browserului client;
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com