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

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

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

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

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

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

  • Я пытался добавить AllowOverride All в моей конфигурации хоста, чтобы убедиться, что сам файл / модуль авторизации работал.
  • Я пробовал кучу других утверждений разрешить / запретить
  • Этот оператор в настоящее время находится в файле.htaccess, но я попытался переместить его в конфигурацию хоста, которая также не работает.

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

  • Я использовал немного PHP для вывода своего IP на веб-странице: он успешно распознан как 22.123.123.12.
  • Я использую SSL для веб-страницы, поэтому я обращаюсь к файлу по адресу https://example.com/login.php. Не уверен, что это повлияет на вещи.

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

1 ответ

Благодаря комментарию @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

Другие вопросы по тегам