Windows認証(NTLMv2)Proxy環境でLinuxを使う
Windows環境でプロキシを使う際に色々とやらないと超えれない。
けど、cntlmという大変便利なツールがあることを知ったので実験しました。
cntlmはcentosのyumリポジトリにも入っているみたいですが、以下から入手しました。
(そもそもこの段階でyumがproxyを超えれないので)
で早速インストール
# 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
# 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:プロキシサーバのポート