Вы используете базирующиеся виртуальные хосты имени в своей апачской конфигурации? Как Вы соединяетесь от LAN и через маршрутизатор NAT? Если у Вас есть базирующийся виртуальный хостинг имени, заголовок Хоста в Запросе HTTP определяет, какой виртуальный хост служит запросу. Так, например, если у меня есть что-то как:
ServerName my.internal.hostname
.....
ServerName some.other.hostname
...
И я соединяюсь на внешнем маршрутизаторе с http://my.nat.router/, я мог бы закончить в последнем виртуальном имени хоста, которое я указал. Если тот является установкой на DocumentRoot, который не имеет никаких полномочий, я получаю 403.
Другая возможность могла состоять в том, что Вам указали DocumentRoot и позже директиву Каталога, которая не имеет, "позволяют от всех", но только что-то как "позволяет от 192.168.0.0/24".
<Directory "/usr/lib/nagios/cgi-bin/">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /etc/nagios/passwd
Require valid-user
</Directory>
Вы указали неверный путь для AuthUserFile
: он должен быть /etc/nagios/htpasswd.users
вместо / etc / nagios / htpasswd
.
Убедитесь, что пользователь apache может читать /etc/nagios/htpasswd.users
:
Если ваш пользователь apache www-data
, тогда :
$ sudo chown www-data /etc/nagios/htpasswd.users
$ sudo chmod 600 /etc/nagios/htpasswd.users
В Apache 2.4 директивы «Require» заменяют директивы «Order allow, deny». Тем не менее, по-прежнему существует ошибка, так что Require valid-user не работает, а Require user x y z работает. итак ...
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sgin">
#SSLRequireSSL
Options ExecCGI
AllowOverride None
<RequireAll>
Require user nagiosadmin
AuthName Nagios
AuthType Basic
AuthUserFile "/usr/local/nagios/etc/htpasswd.users"
</RequireAll>
</Directory>
Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share">
#SSLRequiresSSL
Options None
AllowOverride None
<RequireAll>
Require user nagiosadmin
AuthName Nagios
AuthType Basic
AuthUsrFile "/usr/local/nagios/etc/htpasswd.users"
</RequireAll>
</Directory>
Сейчас работает :)
изменение разрешения для файла /usr/local/nagios/etc/htpasswd.users
chmod 755 /usr/local/nagios/etc/htpasswd.users
Я решил эту ошибку, изменив разрешение.