Sunt în spatele cloudflare dns și încerc să blochez IP-urile unui anumit client care îmi trimite spam site-ul, am înțeles că pot realiza acest lucru prin adaugand a SetEnvIf
regulă din configurația mea virtualhost care respinge solicitările atunci când ip-ul pe lista neagră este în X-Redirecţionat-Pentru
antet, așa că am încercat să fac asta.
Configurația virtuaHost arată acum așa
<VirtualHost *:80>
ServerName xxx
ServerAlias xxx
ServerAdmin xxx
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLProxyEngine on
SetEnv proxy-initial-not-pooled 1
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:5004/
ProxyPassReverse / http://localhost:5004
LogFormat '"%h" "%l" "%u" "%t" "%r" "%>s" "%b" "%{X-Forwarded-For}i" "%{CF-Connecting-IP}i" ' forwardedFor
CustomLog /var/log/apache2/forwardedFor.log forwardedFor
# part that should block the spam from the ip 185.237.14.42
<Location />
Order Allow,Deny
SetEnvIf X-Forwarded-For ^185\.237\.14\.42 DenyAccess
Allow from all
Deny from env=DenyAccess
</Location>
</VirtualHost>
Am încercat și țintind CF-Conectare-IP
antet în loc de X-Redirecţionat-Pentru
deoarece cloduflare a setat acel antet pentru a indica ip-ul clientului
în ambele cazuri, ori de câte ori rulez apache2 cu partea de configurare în interiorul <Location>
etichetați cererile de la toți clienții cu care sunt blocați 403
statut și în interiorul eroare.log
de apache este tipărit următorul
[Dum. 20 februarie 13:17:28.494348 2022] [access_compat:error] [pid 65797] [client 162.158.103.169:48030] AH01797: client refuzat de configurația serverului: proxy:http://4local/token:5000
Deci, cum pot bloca cu succes numai cererile care vin de la ip 185.237.14.42
si nu toate cererile?