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

Простой способ заставить Apache запрашивать пароль, если только с указанного IP

Есть ли простой способ установить директивы Apache, которые:

  1. Разрешить доступ без пароля с указанного IP
  2. Запросить пароль с любого другого IP

Я ищу способ добиться этого путем редактирования директив, а не с помощью расширенной конфигурации, такой как настройка новых обработчиков.

Я пробовал конфигурацию, предложенную Документация Apache и другое сообщение на форуме но похоже, что он разрешает любой доступ независимо от IP. Конфигурация, которую я пробовал, такова:

AuthType Basic
AuthName "Restricted"
AuthUserFile /etc/apache2/restricted_htpasswd
Require valid-user
Allow from [IP]
Satisfy Any

Это должно работать? (где [IP], конечно, фактический IP)

Я делал это раньше, и мне потребовалась целая вечность, чтобы понять. Вот как я это сделал:

# Requires a valid user unless 
# logged in from a specific IP address
Order deny,allow
Deny from all
AuthName "Keep out"
AuthUserFile "/path/to/your/passwd/file"
AuthType Basic
Require valid-user
Allow from 192.0.32.10 
Satisfy Any

Это позволит разрешить доступ, если пользователь выполняет аутентификацию ИЛИ с указанного IP-адреса. Ключ - «удовлетворить любое», что означает, что он должен удовлетворять любому из этих условий, а не всем из них. Вы также можете указать диапазон IP-адресов, например, Allow from 192.0.0.0/16.

Обновление: попробуйте ...

AuthType Basic
AuthName "Restricted"
AuthUserFile /etc/apache2/restricted_htpasswd
Require valid-user

Order deny,allow
Deny from all
Allow from [IP]

Satisfy any

(Вычеркните предыдущие комментарии, неправильно прочитали вопрос)