Puncte:1

Cum să rezolvi numele de gazdă la distanță prin DNS atunci când folosești Nginx și ModSecurity?

drapel br

Intrebarea mod_security cu OWASP CRS: regulă personalizată pentru înscrierea pe lista albă a googlebot furnizează următoarea regulă ca răspuns pentru a verifica numele de gazdă al clientului:

SecRule REMOTE_HOST â@rx google(bot|)\.com$â âid:50000,nolog,allowâ

Această regulă a fost menită să fie utilizată pe ModSecurity cu Apache și necesita directiva Căutare nume de gazdă activată configurat pe Apache. The MANUAL DE SECURITATE MOD spune:

GAZDA LA DISTANTA
Dacă directiva Apache HostnameLookups este setată la On, atunci această variabilă va păstra numele de gazdă la distanță rezolvat prin DNS. Dacă directiva este setată la Off, această variabilă va deține IP-ul de la distanță adresa (la fel ca REMOTE_ADDR). Utilizările posibile pentru această variabilă includ negarea gazdelor client proaste cunoscute sau a blocurilor de rețea sau, dimpotrivă, permițând gazdelor autorizate să intre.

Când utilizați Nginx ca proxy invers fără Apache, există o modalitate de a face GAZDA LA DISTANTA returnează numele de gazdă rezolvat prin DNS?

Puncte:0
drapel cz

Adresa IP la distanță este deja în variabila nginx $adr.la distanță și variabila ModSecurity REMOTE_ADDR. Manualul de referință spune:

REMOTE_ADDR

Această variabilă deține adresa IP a clientului de la distanță.

SecRule REMOTE_ADDR „@ipMatch 192.168.1.101” „id:35”

Ar trebui să folosești REMOTE_ADDR aici (și probabil și utilizatorii Apache ar trebui).

Ronaldo avatar
drapel br
Mulțumesc, Michael Hampton. Dar am nevoie de DNS, nu de adresa IP. Primesc deja adresa IP din cauza lipsei opțiunii `HostnameLookups` pe Nginx.
Michael Hampton avatar
drapel cz
@Ronaldo Presupun că prin „DNS” te referi de fapt la _hostname_? Se pare că am ratat cumva ultima parte din postarea ta. Cred că acest lucru se poate face prin spargerea unor Lua pentru a face căutarea DNS și executând-o selectiv (nu puteți face căutări de nume de gazdă la fiecare cerere, deoarece vă va distruge absolut performanța). O sa vad daca pot scrie ceva mai tarziu.
Ronaldo avatar
drapel br
Apreciez asta. Dar înainte de a face efortul de a scrie ceva, îmi puteți spune dacă există o opțiune mai bună de a adăuga roboții Google la lista albă? Sunt un începător când vine vorba de Nginx și ModSecurity și s-ar putea să-mi lipsească o configurație de bază. Am întrebat despre obținerea numelui de gazdă deoarece a fost singura metodă pe care am putut-o găsi pe internet și se pare că nu se mai aplică (cum ați spus, căutarea numelui de gazdă este un ucigaș de performanță).
Michael Hampton avatar
drapel cz
@Ronaldo Nu chiar. Nici măcar Google nu are soluții mai bune în documentația sa despre [verificarea Googlebot](https://developers.google.com/search/docs/advanced/crawling/verifying-googlebot). Căutarea durează, dar nu este nevoie să o faceți pentru cererile care nu au Googlebot în șirul User-Agent. Și nu prea îmi pasă să fac un bot să aștepte.
Ronaldo avatar
drapel br
Văd. Deci ideea este să verificați dacă există Googlebot în șirul User-Agent și abia apoi să verificați numele de gazdă.
Ronaldo avatar
drapel br
Bună, Michael Hampton. Am învățat cum să omit o regulă dacă nu corespunde unui criteriu (dacă User-Agent nu este google), acum trebuie să știu cum să obțin numele de gazdă de la IP-ul solicitării. Ați putea să-mi dați un indiciu despre acel script Lua pe care l-ați menționat?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.