У меня есть (возможно, глупый) вопрос относительно веб-сервера apache2 и безопасности - я пытаюсь архивировать это: пользователи, подключающиеся с 192.168.1.24, не должны запрашивать пароль и разрешено. Другие запрашивают имя пользователя и пароль, если они верны, а затем подключаются. Я пытаюсь сделать это для всего каталога / var / www
Независимо от того, помещаю ли я код в файл .htaccess или в httpd.conf, он у меня не работает.
Order deny,allow Deny from all AuthName "PassRequest" AuthType Basic AuthUserFile /var/.htpasswd Require valid-user Allow from 192.168.1.24 Satisfy Any
Если я пытаюсь подключиться к странице, мне разрешено использовать как разрешенный IP-адрес, так и любой другой. Если я удалю строку «Удовлетворять любую», мне будет предложено ввести пароль, если я тоже удалю пароль и попытаюсь подключиться с другого IP-адреса, я НЕ ОТКАЗАНО ... необходимо активировать какой-либо модуль или почему директива IP пропущена?
Его нужно положить в каждую папку или достаточно /var/www/.htaccess? могу я просто поместить его в httpd.conf или нет ??
Я провожу последние 4 часа, пытаясь найти в Google, почему он так себя ведет. Любая помощь будет принята с благодарностью :-))
РЕДАКТИРОВАТЬ 1.11.2012: добавлено разрешение переопределения, применено к каталогу и перемещено в httpd.conf, безуспешно, проверены загруженные модули, проблема все еще сохраняется
Я добавил директиву AllowOverride (хотя в настоящее время не было .htaccess в / var / www) и поместил все в httpd.conf с каталогом root ...
Вот что у меня сейчас в httpd.conf
<Directory />
AllowOverride None
Order deny,allow
Deny from All
Allow from 195.137.181.24
Options Indexes
AuthType Basic
AuthName "You are accessing outside of our network, Enter password!"
AuthUserFile /var/.htpasswd
Require valid-user
Satisfy Any
</Directory>
список загруженных модулей из apache2ctl -M:
Loaded Modules:
core_module (static)
log_config_module (static)
logio_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
alias_module (shared)
auth_basic_module (shared)
authn_file_module (shared)
authz_default_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgi_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
mime_module (shared)
negotiation_module (shared)
perl_module (shared)
php5_module (shared)
python_module (shared)
reqtimeout_module (shared)
setenvif_module (shared)
status_module (shared)
Syntax OK
Модуль Authz_host присутствует, поэтому я не вижу, где еще я мог сделать ошибку. Тем не менее проблема остается той же: когда я получаю доступ с IP 195.137.181.24, мне разрешают и не спрашивают пароль, когда я пытаюсь получить доступ со своего мобильного телефона через 3G с совершенно другим IP-адресом, мне все еще разрешено и НЕ ЗАПРЕЩАЕТСЯ ввести пароль: - (((
Что я делаю не так ? У меня больше нет идей, что попробовать. Будем благодарны за любую дополнительную помощь или советы. Майк
Я добавил директиву AllowOverride (хотя в настоящее время не было .htaccess в / var / www) и поместил все в httpd.conf с каталогом root ...
Вот что у меня сейчас в httpd.conf
<Directory />
AllowOverride None
Order deny,allow
Deny from All
Allow from 195.137.181.24
Options Indexes
AuthType Basic
AuthName "You are accessing outside of our network, Enter password!"
AuthUserFile /var/.htpasswd
Require valid-user
Satisfy Any
</Directory>
список загруженных модулей из apache2ctl -M:
Loaded Modules:
core_module (static)
log_config_module (static)
logio_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
alias_module (shared)
auth_basic_module (shared)
authn_file_module (shared)
authz_default_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgi_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
mime_module (shared)
negotiation_module (shared)
perl_module (shared)
php5_module (shared)
python_module (shared)
reqtimeout_module (shared)
setenvif_module (shared)
status_module (shared)
Syntax OK
Модуль Authz_host присутствует, поэтому я не вижу, где еще я мог сделать ошибку. Тем не менее проблема остается той же: когда я получаю доступ с IP 195.137.181.24, мне разрешают и не спрашивают пароль, когда я пытаюсь получить доступ со своего мобильного телефона через 3G с совершенно другим IP-адресом, мне все еще разрешено и НЕ ЗАПРЕЩАЕТСЯ ввести пароль: - (((
Обновление 5.11.2012
Нашел :-D
В apache2 / sites-enabled был скрытый файл, переопределяющий мои директивы в папке / var / www ... глупо, что я не думал об этом раньше :-)
Во-первых, ваша конфигурация верна и работает должным образом в моей системе.
Проверить AllowOverride в вашем httpd.conf, и если вы загрузили модуль mod_authz_host в apache ...
На другие вопросы: вы можете поместить свою конфигурацию в Каталог директиву точно так же, как и в .htaccess - и даже предпочтительнее.
Настройки для каждого каталога наследуются всем подкаталогам, поэтому для защиты корневого каталога достаточно.