У меня интересная проблема. Моя компания размещает небольшой сервер приложений для клиента, и они хотят ограничить доступ только несколькими IP-адресами. Клиент - это большая компания со многими подразделениями, и каждое подразделение имеет свою собственную сетевую структуру.
Я не буду вдаваться в подробности, но из-за внутренней структуры моей компании для веб-серверов мы не можем использовать обычный синтаксис разрешения, запрета в Apache. У нас есть балансировщики нагрузки, которые пересылают на веб-серверы, а затем пересылают на сам сервер приложений. Вместо этого мы используем что-то вроде следующего в наших конфигурациях Apache:
RewriteCond %{HTTP:X-Forwarded-For} !^213.212.45.54
Мы используем заголовок X-Forwarded-For для соответствия внешним IP-адресам. Проблема в том, что одно из подразделений нашего клиента (назовем это подразделение A) имеет свои настройки Интернета для прохождения через внутренний прокси. Их внутренний прокси-сервер перенаправляет IP-адрес рабочей станции каждого пользователя на наш веб-сервер. Это означает, что заголовок X-Forwarded-For для этих пользователей выглядит примерно так:
10.123.16.23, 213.212.45.54, 172.20.162.2
Адрес 10 - это IP-адрес рабочей станции каждого пользователя в его сети, 213 - это IP-адрес WAN этого подразделения, а 172 - балансировщик нагрузки моей компании.
Моя компания подтвердила, что если мы добавим IP-адрес рабочей станции пользователя в конфигурацию Apache, они смогут без проблем получить доступ к странице. Однако добавлять каждый IP-адрес было бы утомительно.
Есть ли способ заставить Apache обращать внимание только на средний IP (WAN IP), используя регулярные выражения? Или есть лучший способ настроить Apache?