Диапазон разрешенных IP-адресов Apache с помощью SetEnvIfExpr - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть эта задача для управления: на моем сервере Apache (выступать в качестве прокси-сервера) мне нужно разрешить доступ только к некоторой подсети.Поскольку он находится за WAF (Incapsula), я пытаюсь извлечь IP-адрес для доступа из X-Forwarded-For и сопоставить с этим

SetEnvIfExpr "req('X-Forwarded-For') =~ /(^.*,\s*|^)(.*)$/ && $2 -ipmatch '54.93.255.128/27'" AllowIP

Вместо этого работает что-то вроде этого

SetEnvIF X-Forwarded-For "54.93.255.139" AllowIP

но в этом случае количество IP-адресов слишком велико для управления

У вас есть какие-либо предложения?

1 Ответ

0 голосов
/ 28 февраля 2019

Я решаю с помощью этого: я добавил эту директиву, чтобы получить второй ($ 2) IP, собранный X-Forwarded-For, а затем я сопоставил ipmatch с маской подсети, которую мне нужно проверить:

    SetEnvIf X-Forwarded-For "^(.*,\s*)(.*)(,\s*.*)$" ip_to_catch=$2
  SetEnvIFExpr "env('ip_to_catch') -ipmatch '66.91.255.128/27'" AllowIP

И в конце я добавил это, чтобы проверить значение AllowIP перед предоставлением доступа к моим ресурсам:

<RequireAll>
      Require env AllowIP
  </RequireAll>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...