2010-11-30 13 views
0

着信要求ごとにカスタム認証ヘルパーを使用して逆プロキシとしてSquidを設定する必要があります。 Squidへのリクエストはすべて基本認証とみなされます。認証に失敗した接続はすべて終了する必要があります。私はイカの初心者です。以下は私が使った設定スクリプトです。このサンプルは、「mindofaprogrammer.blog.com」にアクセスするために私はPHPスクリプトでカスタム認証ヘルパーを書かれているアクセラレータモード(リバースプロキシ)でカスタム認証ヘルパーを使用したsquidの設定

acl all src all 
acl manager proto cache_object 

http_port 80 accel defaultsite=mindofaprogrammer.blog.com 
cache_peer mindofaprogrammer.blog.com parent 80 0 no-query originserver name=myAccel 

acl myblog dstdomain mindofaprogrammer.blog.com 
http_access allow myblog 
cache_peer_access myAccel allow myblog 
cache_peer_access myAccel deny all 


auth_param basic program C:/wamp/bin/php/php5.3.0/php.exe "c:/squid/libexec/authhelper.php" 
auth_param basic children 2 
auth_param basic realm eReader 
auth_param basic credentialsttl 5 hours 

acl AuthUsers proxy_auth REQUIRED 
http_access allow AuthUsers 

access_log c:/squid/var/logs/access.log squid 
coredump_dir c:/squid/var/cache 

です。次のように同じのリストがあり、

<?php 
$f = fopen("php://stdin", "r"); 
while ($line = fgets($f)) { 
     $line = trim($line); 
     $fields = explode(' ', $line); 
     $username = rawurldecode($fields[0]); //1738 
     $password = rawurldecode($fields[1]); //1738 
     if ($username == 'hello' 
      and $password == 'world') { 
       fwrite(STDOUT, "OK\n"); 
     } else if ($username == 'fo' 
      and $password == 'bar') { 
       fwrite(STDOUT, "OK\n"); 
     } else { 
       // failed miserably 
       fwrite(STDOUT, "ERR\n"); 
     } 
} 
?> 

私が直面しています問題はリバースプロキシ設定が認証をない作業している、でも、これを設定した後、あります。私はここで何か間違っていますか?

+0

トピックがありません。スーパーユーザー/管理者の質問。 – leppie

答えて

0

まず、http_access deny allを最後に追加する必要があると思います。

次に、あなたはこのような1つの行(「AND」オペレータなど)に2 http_access'esを組み合わせる必要があります。

http_access allow AuthUsers myblog 

Squidは常にそれが一致した最初の行を使用していることを覚えておいてくださいとの処理を停止します。この場合、http_access allow myblogはすべての要求を受け入れ、認証部分への移動を停止します。

関連する問題