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

Невозможно ограничить страницу состояния сервера Apache до localhost

Я использую Apache 2.4.18 в Ubuntu.

Я хочу разрешить чтение статуса сервера только с localhost.

В /etc/apache2/mods-enabled/status.conf У меня есть:

<Location /server-status>
          SetHandler server-status
          Require ip 127.0.0.1
</Location>

я прочитал https://httpd.apache.org/docs/2.4/howto/access.html и я считаю, что вышеуказанная конфигурация должна работать. Я перезапустил Apache, чтобы убедиться, что новая конфигурация активна. Однако страница статуса по-прежнему открыта для чтения из любого места.

В /etc/apache2/sites-enabled/mysite.conf У меня есть:

 DocumentRoot /var/www
 <Location />
        Require all granted
 </Location>

Что не так с моей конфигурацией?

Насколько я могу судить, конфигурационный файл виртуального хоста имеет приоритет над mod_status файл конфигурации.

На самом деле вы все отдаете / в пределах mysite.conf :

<Location />
        Require all granted
</Location>

В результате каждый может получить доступ /server-status.

Вам нужно будет управлять разрешениями на /server-status в самом файле конфигурации виртуального хоста /etc/apache2/mods-enabled/status.conf :

DocumentRoot /var/www
 <Location />
        Require all granted
 </Location>
 <Location /server-status>
        Require local
 </Location>

Оттуда, какие бы разрешения вы ни установили /etc/apache2/mods-enabled/status.conf они будут проигнорированы как /etc/apache2/mods-enabled/status.conf имеет приоритет.

Используйте указанную ниже директиву location в status.conf

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from localhost
</Location>

После этого установите lynx на свой компьютер из интерфейса командной строки. Lynx - это полнофункциональный клиент World Wide Web (WWW) для пользователей, доступ к которому можно получить через терминалы Linux.

Для Ubuntu установите lynx, используя

 apt-get install lynx

Выполните приведенную ниже команду, чтобы проверить статус сервера Apache.

 lynx http://localhost/server-status