web-dev-qa-db-ja.com

このIP以外のhttpリクエストを認証する

ここのサーバー(CentOS 5.3 w/Apache 2.2.3-22.el5.centos)でNagiosを実行して、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はここにあり、彼はその認証をスキップできます」と言いたいのですが。 Apache Satisfy ディレクティブは機能するように見えるので、これを試しました。

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

しかし、それはサイトの振る舞いを変えませんでした。考え? 「私のために働く」?サーバーのアップグレードに取り掛かった場合、この問題を回避できるという適切なアップグレードノートへのポインタ? :)

----回答付きの更新----

私はファイルまたは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>
9
Bill Weiss

「すべてを満たす」は確かにあなたが使用する必要があるものです。 Apache wikiに 良い例 があります。そのソースから直接引用するには:

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