- PR -

squidでのNTML認証について

1
投稿者投稿内容
ぱぱち
会議室デビュー日: 2006/10/05
投稿数: 2
投稿日時: 2006-10-05 11:12
お世話になります。

現在、squidにてAD連携を実施し、ntml認証を実施しています。
使用している各ツールは、以下の通りです。

OS: RHEL4 UP3
squid: 2.5.STABLE13
ソースよりコンパイル
./configure --enable-auth="ntlm,basic"
samba: 3.0.10-1.4E.6

以下サイトを参考に、NTML認証を実施しています。
http://squid.robata.org/build_ntlm-auth.html

認証は正常に行われ、access.logにもユーザ名が記述されるようになりました。
しかし、Javaアプレットを呼び出すサイトが読めない、WindowsUPdateが出来ない
などの事象が発生しています。

squid.confの中のacl/http_accessの組み合わせで、NTML認証前に直接サイトを閲覧
するようにしているため、現状は閲覧可能ですが、本来の認証/access.logへのユー
ザ名記述という要件がクリアできていません。

aclで回避できていることから、NTML認証との問題なのではということは想像できる
のですが、具体的な対策がわからず困っています。
ご存知の方おりましたら、アドバイス等いただけませんでしょうか。
お願い致します。

以下に、各設定の抜粋を記載します。

====squid.conf===============================
・・・・
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 100
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 2 minutes
auth_param ntlm use_ntlm_negotiate off
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
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
・・・・

acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 554 # RTPS add 2006/04/18
acl CONNECT method CONNECT

acl GoodHost src 10.0.0.0/255.0.0.0
acl AuthorizedUsers proxy_auth REQUIRED

acl special_url01 url_regex -i www.hoge.or.jp
acl SSL method CONNECT
acl POST method POST PUT
never_direct allow POST
never_direct allow SSL
acl microsoft url_regex -i microsoft.com
acl updatecom url_regex -i download.windowsupdate.com

http_access allow special_url01 GoodHost
no_cache deny updatecom
http_access allow microsoft
http_access allow updatecom
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow GoodHost AuthorizedUsers
http_access allow to_localhost
http_access deny all
・・・・

====squid.conf===============================
====smb.conf=================================
[global]
workgroup = HOGEDOMAIN
netbios name = HOGE001
server string = Samba Server
printcap name = /etc/printcap
load printers = yes
cups options = raw
log file = /var/log/samba/%m.log
max log size = 50
security = DOMAIN
password server = 10.1.0.1
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = no
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
winbind use default domain = yes
====smb.conf=================================

加納正和
ぬし
会議室デビュー日: 2004/01/28
投稿数: 332
お住まい・勤務地: 首都圏
投稿日時: 2006-10-05 23:04
引用:

ぱぱちさんの書き込み (2006-10-05 11:12) より:

しかし、Javaアプレットを呼び出すサイトが読めない、WindowsUPdateが出来ない
などの事象が発生しています。

aclで回避できていることから、NTML認証との問題なのではということは想像できる
のですが、具体的な対策がわからず困っています。




http://www.monyo.com/technical/samba/translation/ntlm.html

の通り、HTTP通信で2往復ぐらいします。

でJava AppletとかWindows Updateは、自分自身がWebクライアントみたいなもの
ですからProxyが2往復するという状態を、Java Appletそのものがサポートして
いないのでは(想像)

パケットキャプチャーすれば、はっきりはしますが、面倒なだけですね。。。

ここらへんがオープンソースの面倒なところ。
誰もサポートしてくれないし。

ここらへんってオープンソースサポート業者はいくらでやってくれるんですかね。

ぱぱち
会議室デビュー日: 2006/10/05
投稿数: 2
投稿日時: 2006-10-06 09:57
引用:

加納正和さんの書き込み (2006-10-05 23:04) より:

http://www.monyo.com/technical/samba/translation/ntlm.html

の通り、HTTP通信で2往復ぐらいします。

でJava AppletとかWindows Updateは、自分自身がWebクライアントみたいなもの
ですからProxyが2往復するという状態を、Java Appletそのものがサポートして
いないのでは(想像)



なるほど。
設定レベルの話ではないのかも知れませんね。
ご提示いただきましたURLを熟読し、何か活路を見出せるようにがんばってみます。

NTML認証ってあまり使われないのでしょうか?
同じようなことで、悩んでおられた方は、どのようにして解決されたのでしょうか。。。
非武装エリア
大ベテラン
会議室デビュー日: 2004/03/03
投稿数: 202
お住まい・勤務地: 日本・たこ部屋
投稿日時: 2006-10-07 09:35
この現象はWindowsUpdateの実装方法に問題があるようなのでProxy側で
の対応方法は無いと思われます。
(この現象はIASサーバにおいても発生するようです。)

問題はWindowsUpdateを呼び出した際に、[高速]/[カスタム]の選択画面までは
NTLM認証に適応したパケットを発生させているにも係わらず、その後、これら
のボタンを押して先へ進もうとすると、認証をせずに通過しようとするパケッ
トを発生させる事が原因で発生します。
Basic認証ではそのような事が起きないことから、NTLM認証においてIEの
モジュールがID/Passwordを省略できるようにしている事に起因する問題
のようにも考えられますが詳しいことは判りません。

squidのメーリングリストで調べたみましたが、対策としてはすでに行わ
れているようにMSのUpdateサイトへは「認証をせず接続」する方法が現
実解となります。

それ以外の方法としては、IEのProxy利用方法を自動認識かスクリプトに
よる方法を取って、UpdateサイトへのProxyを経由せずにアクセスさせる
方法が考えられます。(「proxy.pac」「WPAD」で検索してみてください)
ただし、自動認識の方法ではアクセスがクライアントからソースサーバへ
スルーとなってしまうので、最初のProxy側でUpdateの際に認証せずに
接続する方がアクセスコントロール(セキュリティ)という面からは
望ましいと思われます。

もう一つの方法として、WindowsUpdateでは無く社内にWSUSサーバを構築
して、各クライアントが勝手にUpdateしないようにする方法もあります。
この場合には社内のクライアントがActiveDirectoryを利用するように
なっている事が望ましい状況になります。(というかAD必須かな)
個人的はこの方法が尤も望ましいと思います。(Update漏れの可能性が
低くなりますね)


JAVAの件に関してはもう少し詳しい情報が無いと判りませんが、NTLM
認証によってJAVAに影響を与えるという事は無いと思うので、こちらは
設定上の問題のような感じがします。
ただし、もしアプレット中において別のセッションを張るような処理が
ある場合、そのアプレット自体がProxy認証を設定する仕組みが無ければ
同じ問題が発生する可能性はあります。
(FireFoxなどの他のブラウザでは問題は起きないか確認してみてください)



[ メッセージ編集済み 編集者: 非武装エリア 編集日時 2006-10-07 09:46 ]
1

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