最近、Microsoft Proxyを使うことになったのですが、yumで、プロキシサーバの設定をやっても通りません。
yumだけじゃなくって、operaでも、設定すると、サポートされていない認証方式を要求されたとか何とか言われます。

いつものようにぐぐってみると、どうやらMSProxyの認証方式にNTLM一族が使われていてこいつが特殊らしいです。
で、さらに調べると、cntlmとかntlmapsとかに認証部分を任せるのが良いみたいです。

今回は、cntlmを入れてみました。パッケージの作成は前のエントリのとおり。インストールすると、/etc/cntlm.confという設定ファイルができます。
このファイルに平文でパスワードを書くこともできますが、それは推奨されません。
上のプロジェクトのページに推奨のやり方が書いてありますので、それにしたがって設定しましょう。Configuration hintsのセクションです。

大体以下のようなステップでできます。

a.  /etc/cntlm.confの埋めれる部分を埋める
 Username ユーザ名 
 Domain ドメイン名 
 Workstation これは設定しなくても自動できまるっぽいですが、失敗したら適当に名前を入れておきます
 Proxy  ここに、プロキシサーバのIPとポートを書きます。192.168.10.254:8080 みたいなかんじで。
 Listen これが知らないとわかりにくいですが、このポートでcntlmdが動作して中継してくれます。最初に入っている
      3128のままで良いと思います。

b. 認証方式と暗号化されたパスワードを算出する
 上の設定を使って、cntlmがプロキシサーバとやり取りしてそのあたりを決めてくれます。
 以下のように実行したら、返事が返ってきます。/etc/cntlm.confのアクセス権が600なので
 ルートユーザで実行します。
 -Iオプションをつけてあるので、実行したら、下の例のようにパスワード入力が求められますので、
 そこでプロキシサーバのパスワードを入れましょう。

# cntlm -I -M http://test.com -c /etc/cntlm.conf
Password: 
Config profile  1/11... OK (HTTP code: 200)
----------------------------[ Profile  0 ]------
Auth            NTLMv2
PassNTLMv2      4SRR224D78SJYHO98997B6
------------------------------------------------

上の、AuthとPassNTLMv2の行を、そのまま、/etc/cntlm.confにコピーします。

あとは、必要なときに、/etc/init.d/cntlm startで動作させればおっけーです。
で、アプリケーション側のプロキシサーバの設定には、localhost:3128を書いておけばおっけー。

たとえば、yumなら、環境変数http_proxyに、セットしておきます。
export http_proxy=http://localhost:3128
とか。