Назад | Перейти на главную страницу

Невозможно разрешить / запретить доступ к IP-адресам

У меня есть в остальном благополучно работающий сервер на Ubuntu 14.04. Я пытаюсь ограничить доступ к файлу с помощью блока разрешения / запрета:

<Files "login.php">
order deny,allow
deny from all
allow from 22.123.123.12
</Files>

Это успешно запрещает всем пользователям и сообщает им: «Запрещено. У вас нет разрешения на доступ ...». Если я удалю строку «запретить всем», это позволит мне просмотреть экран входа в систему.

Но независимо от того, что я делаю и отлаживаю, я не могу заставить его просматривать этот файл, когда я использую этот IP-адрес. Оператор «разрешить», кажется, никогда не работает.

Некоторая отладка уже пробовала:

Другая, возможно, важная информация:

Я начинаю подозревать, что по какой-то причине сервер не думает, что я нахожусь на этом IP-адресе, но не могу понять, как это могло быть. Любые идеи?

Благодаря комментарию @ ChrisLam я понял, что IP-адрес, отображаемый в журналах доступа, не совпадает с моим текущим IP.

Этот IP, 108.162.225.167, похоже, соответствует серверам CloudFlare.com, которые мы используем для ускорения работы сайта.

Хотя было установлено правило не кэшировать эту страницу, IP-адреса запросов все еще не передавались обратно на сервер. CloudFlare говорят, что:

«Поскольку CloudFlare действует как прокси, вы заметите изменения в способе отображения IP-адресов посетителей вашего веб-сайта как в журналах вашего сервера, так и в веб-приложениях - в частности, что весь доступ, по-видимому, идет с IP-адресов CloudFlare».

Установка CloudFlare's mod_cloudflare модуль для Apache httpd позволяет передавать эти IP-адреса обратно на сервер и отлично решает мою проблему.

Скачать и информацию можно на сайте CloudFlare: https://www.cloudflare.com/resources-downloads#mod_cloudflare