- PR -

SquidとActiveDirectoryの連携

1
投稿者投稿内容
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2007-08-03 11:57
 お世話になっております。
環境はCentOS5+squid2.6 と Windows2000ServerSP4でADを運用しております。

 このたび、プロキシの設定にsquidを指定したユーザーがインターネットにアクセスするときに認証画面を出し、2000serverのADを使って認証させ、認証が成功したらそのユーザーのAD上のグループ情報を取得してsquid側のaclルールで

・AD上のグループAはどのurlでも見れる
・AD上のグループBは特定のサイト(例ではmicrosoft)以外見れない

という動作をさせようと、色々実験している次第です。

 はじめはWindows側からの観点で考えておりまして
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=40434&forum=6&6
で議論を始めましたが、

http://www.k5.dion.ne.jp/~kondo/logs/20060329_squid.html
を見つけましたのでこちらで議論させていただこうと思います(こちらのURLを元のスレッドでリンクしておきました)。

 さて、上のサイトのとおり設定して実験を行ってみましたが、ユーザー認証には成功するものの、どうもAD上のグループ情報を取得できていないようですので質問させていただきました。

 実験内容と結果は以下のとおりです。

1.squidはyumでインストールしたので、squid.confは次のようにしました。
================================================================
#LDAP−AUTHの設定
#auth_param basic program <uncomment and complete this line>
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
# tokyo ldap server
auth_param basic program /usr/lib/squid/squid_ldap_auth -v 3 -b
"CN=Users,DC=example,DC=co,DC=jp" -h 192.168.0.11 -D
"CN=squid,CN=Users,DC=example,DC=co,DC=jp" -w squidpassword
-f sAMAccountName=%s


#LDAP-GROUPの設定
external_acl_type ldap_group %LOGIN /usr/lib/squid/squid_ldap_group
-v 3 -b "CN=Users,DC=example,DC=co,DC=jp" -h 192.168.0.11
-D "CN=squid,CN=Users,DC=example,DC=co,DC=jp"
-w squidpassword
-f "(&(sAMAccountName=%u)(memberOf=CN=%g,DC=example,DC=co,DC=jp))"



# aclに登録する
acl password proxy_auth REQUIRED
acl ldapgroup external ldap_group HTTP

#認証無しで microsoftのサイトを許可する。
acl ms_domain dstdomain .microsoft.com .microsoft.co.jp
http_access allow ms_domain


#パスワードが認証され、HTTPグループに所属している人を許可する
http_access deny !password
http_access allow ldapgroup
http_access deny all
================================================================

この設定でクライアントから接続してみると、AD上のHTTPグループに所属したユーザーAとそれ以外のユーザーBともに、プロキシのアクセスdeniedのページが表示されました。
間違ったパスワードだと何度も認証画面が出てくるので、とりあえず認証は通った上で、グループ情報が取得できていないのでは・・・と判断しました。

2.念のため、squid.confの

#パスワードが認証され、HTTPグループに所属している人を許可する
http_access deny !password
http_access allow ldapgroup
http_access deny all



#パスワードが認証され、HTTPグループに所属している人を許可する
http_access deny !password
http_access deny ldapgroup
http_access allow all

とやってみると、ユーザーAもBもgoogleが見れるので、やはり認証はうまくいくもののユーザーのグループ情報の取得がうまくいってません。

 どうすればグループ情報を使って認証できるようになりますでしょうか。
なにとぞご教授賜りたいと思います。
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2007-09-12 19:02
 解決いたしましたので報告させていただきます。
2000Server内にHTTPグループをUsersコンテナ内に作成していたために、グループ情報が取得できていませんでした。ルートに作成するか、squid.confを書き換えるかのどちらでも成功します。
1

スキルアップ/キャリアアップ(JOB@IT)