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

Защитить обработчик статуса сервера apache2 паролем

На моем сервере apache2 я получаю доступ /server-status чтобы проверить мой текущий статус веб-сервера. Я обнаружил, что mods-available / status.conf содержит фрагменты, отвечающие за отображение статуса.

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

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

в <Location /server-status> строфы, включите как Allow from localhost и директивы аутентификации. Ключ в том, чтобы использовать Satisfy Any чтобы указать, что запросы от localhost могут обходить аутентификацию.

Редактировать: Явный пример, как запрошено (он просто объединяет все, что все сказали до сих пор):

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Satisfy Any

    Allow from localhost ip6-localhost

    AuthType basic
    AuthName "Apache status"
    AuthUserFile /etc/apache2/passwd-server-status
    Require valid-user
</Location>

Чтобы разрешить другие хосты, вы можете просто обновить строку:

Allow from localhost ip6-localhost

читать:

Allow from localhost ip6-localhost 1.2.3.4 1.2.3

Для части аутентификации вы добавляете такой блок, как:

AuthType Basic
AuthName "Restricted Files"
# (Following line optional)
AuthBasicProvider file
AuthUserFile /usr/local/apache/passwd/passwords
Require user rbowen 

В passwords файл должен быть создан с использованием htpasswd утилита. Посмотри на эта страница Больше подробностей.

Вы можете использовать что-то подобное:

<Location /server-status>
    SetHandler server-status
    AuthType basic
    AuthName "Apache status"
    AuthUserFile /etc/apache2/passwd-server-status
    Require valid-user
</Location>

Кроме того, не забудьте создать файл паролей и учетную запись для себя с помощью следующей команды (замените имя пользователя с любым именем пользователя, которое вы предпочитаете):

htpasswd -c /etc/apache2/passwd-server-status username

каков риск того, что apache настроит обработчики состояния сервера. Я вижу этот файл на моем веб-сервере SetHandler server-status AuthType basic AuthName "Apache status" AuthUserFile / etc / apache2 / passwd-server-status Требовать действительного пользователя