У меня на сервере работает Nagios (CentOS 5.3 с Apache 2.2.3-22.el5.centos), аутентифицируемый на моем сервере LDAP, и все работает хорошо. Однако мне бы хотелось, чтобы какой-нибудь IP-адрес мог видеть страницу статуса Nagios без аутентификации. У Nagios есть возможность назначить пользователя кому-то, кто не авторизован:
authorized_for_read_only=guest
default_user_name=guest
Звучит правильно, но это не касается аутентификации Apache. Моя текущая конфигурация apache выглядит так:
<Directory "/usr/lib64/nagios/cgi">
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /etc/nagios/misc/htpasswd.users
Require valid-user
AuthBasicProvider file ldap
AuthzLDAPAuthoritative off
AuthBasicAuthoritative On
AuthLDAPGroupAttribute LDAPmember
AuthLDAPURL (my server stuff)
Require ldap-group CN=nagios,ou=groups,DC=local
</Directory>
Это работает, но я бы хотел как-нибудь сказать «вот этот IP, он может пропустить эту авторизацию». Апач Удовлетворять Директива выглядит так, как будто она сработает, поэтому я попробовал это:
<Directory "/usr/lib64/nagios/cgi">
AllowOverride None
Order allow,deny
Allow from (IP) <---- changed
Deny from all <---- changed
Satisfy any <---- changed
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /etc/nagios/misc/htpasswd.users
Require valid-user
AuthBasicProvider file ldap
AuthzLDAPAuthoritative off
AuthBasicAuthoritative On
AuthLDAPGroupAttribute LDAPmember
AuthLDAPURL (my server stuff)
Require ldap-group CN=nagios,ou=groups,DC=local
</Directory>
Но это не повлияло на поведение сайта. Мысли? "У меня работает" s? Указатели на соответствующие примечания к обновлению, в которых говорится, что я решу эту проблему, если дойду до обновления своего сервера? :)
---- обновить с ответом ----
Я вынул файл или LDAP, и у меня сработало удовлетворение. Я, наверное, там что-то делал не так, но как бы то ни было, теперь это работает. Вот как выглядит моя окончательная конфигурация:
<Directory "/usr/lib64/nagios/cgi">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from 192.168.42.213
Satisfy any
AuthName "Nagios Access"
AuthType Basic
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthBasicAuthoritative On
AuthLDAPGroupAttribute LDAPmember
AuthLDAPURL (my server stuff)
Require ldap-group CN=nagios,ou=groups,DC=local
</Directory>
"Удовлетворить любое" - это действительно то, что вам нужно использовать. Eсть хороший пример в вики-сайте Apache. Процитируем прямо из этого источника:
<Directory /home/www/site1/private>
AuthUserFile /home/www/site1-passwd
AuthType Basic
AuthName MySite
Require valid-user
Order allow,deny
Allow from 172.17.10
Satisfy any
</Directory>