Я слежу за cloudflare dns и пытаюсь заблокировать IP-адреса определенных клиентов, которые рассылают спам на мой сайт, я понял, что могу добиться этого с помощью добавление SetEnvIf
правило внутри моей конфигурации виртуального хоста, которое отклоняет запросы, когда IP-адрес из черного списка находится в X-переадресовано-для
заголовок, поэтому я попытался сделать это.
Конфиг virtuaHost теперь выглядит так
<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>
Я также попытался нацелиться на CF-Connecting-IP
заголовок вместо X-переадресовано-для
поскольку cloduflare установил этот заголовок, чтобы указать IP-адрес клиента
в обоих случаях всякий раз, когда я запускаю apache2 с частью конфигурации внутри <Location>
пометить запросы от всех клиентов заблокированными с помощью 403
статус и внутри журнал ошибок
apache печатается следующее
[Вс, 20 февраля, 13:17:28.494348 2022] [access_compat: ошибка] [pid 65797] [клиент 162.158.103.169:48030] AH01797: клиент отклонен конфигурацией сервера: прокси: http://localhost:5004/token/
Итак, как я могу успешно блокировать только запросы, поступающие с ip 185.237.14.42
а не каждый запрос?