Windows認証(NTLMv2)Proxy環境でLinuxを使う

Windows環境でプロキシを使う際に色々とやらないと超えれない。

けど、cntlmという大変便利なツールがあることを知ったので実験しました。

 

cntlmはcentosyumリポジトリにも入っているみたいですが、以下から入手しました。

(そもそもこの段階でyumがproxyを超えれないので)

sourceforge.net

で早速インストール

# rpm -ivh ./cntlm-0.92.3-1.x86_64.rpm

# # rpm -ql cntlm
/etc/cntlm.conf  --> このconfを編集
/etc/sysconfig/cntlmd
/run/cntlm
/usr/lib/systemd/system/cntlm.service
/usr/lib/tmpfiles.d/cntlm.conf
/usr/sbin/cntlm
/usr/share/doc/cntlm-0.92.3
/usr/share/doc/cntlm-0.92.3/COPYRIGHT
/usr/share/doc/cntlm-0.92.3/README
/usr/share/licenses/cntlm-0.92.3
/usr/share/licenses/cntlm-0.92.3/LICENSE
/usr/share/man/man1/cntlm.1.gz

# vi /etc/cntlm.conf

...

Username xxxxx  #ユーザ名
Domain xxxxx      #ドメイン名 
Password xxxxx   #パスワード

Proxy proxy-ip-address:proxy-port  プロキシIP:ポート

Listen 3128           #cntlmがlistenするポート番号

 

上の設定をした時点で一旦テストしてみる

# cntlm -I -M https://www.google.co.jp

コマンドを実行するとパスワードを聞かれるのでwindowsユーザのパスワードを入れる

(設定ファイルにもパスワードが必要かどうか不明)

で、成功すると下記のような出力が返るので、この2行を/etc/cntlm.confに追記する

 

Auth NTLMv2

PassNTLMv2   xxxxxxxxxxxxxxxxxx

 

yum用にyum.confを編集

# vi /etc/yum.conf

proxy=http://127.0.0.1:3128

 

その他用に環境変数をセット

# export http_proxy=http://127.0.0.1:3128  #プロキシIP:ポートを設定

 

cntlmを起動。

# systemctl enable cntlm
Created symlink from /etc/systemd/system/multi-user.target.wants/cntlm.service to /usr/lib/systemd/system/cntlm.service.

# systemctl start cntlm.service

これでOK

 

余談

cntlmを使う以前はは.bashrcに下記の要領で書いてたらうまく行ったような気がしたのですが・・・いつのまにかうまくいかなくなってました。

export http_proxy=http://ドメイン名\\ユーザ名:パスワード@プロキシサーバのIP:プロキシサーバのポート

export https_proxy=http://ドメイン名\\ユーザ名:パスワード@プロキシサーバのIP:プロキシサーバのポート