Autenticar solicitações http EXCETO a partir deste IP

9

Eu tenho o Nagios rodando em um servidor aqui (CentOS 5.3 com Apache 2.2.3-22.el5.centos) autenticando no meu servidor LDAP, e tudo funciona bem. No entanto, eu gostaria de ter algum IP capaz de ver a página de status do Nagios sem autenticação. O Nagios possui esta opção para atribuir um usuário a alguém que não autentica:

authorized_for_read_only=guest
default_user_name=guest

O que parece certo, mas isso não cuida da autenticação do Apache. Minha configuração atual do apache se parece com:

<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>

Está funcionando, mas eu gostaria de alguma maneira de dizer "esse IP por aqui, ele pode pular esse material de autenticação". A diretiva Apache Satisfy parece que funcionaria, então tentei o seguinte:

<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>

Mas isso não mudou o comportamento do site. Pensamentos? "Funciona para mim"? Ponteiros para as notas de atualização apropriadas, informando que eu contornaria esse problema se conseguisse atualizar meu servidor? :)

---- atualização com resposta ----

Tirei as coisas de arquivo ou LDAP e a satisfação funcionou para mim. Eu provavelmente estava fazendo algo errado lá dentro, mas seja como for, agora funciona. Aqui está a aparência da minha configuração final:

<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>
Bill Weiss
fonte

Respostas:

8

"satisfazer qualquer" é realmente o que você precisa usar. Há um bom exemplo no wiki do Apache. Para citar diretamente dessa fonte:

<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>
Deutsch
fonte
Decidi começar a reduzir a minha configuração e funcionou! Obrigado.
Bill Weiss