LoginSignup
20
25

More than 5 years have passed since last update.

Cntlmを使ってNTLMv2認証Proxy環境をやっつける

Last updated at Posted at 2018-05-13

概要

  • NTLMv2認証ProxyはLinuxやクロスプラットフォームなアプリと相性が悪い
  • 間にCntlmを噛ませて認証を代行してもらうことで解決する

Cntlmとは

認証Proxyへの認証を代行してくれるものです。対象サーバーへの認証情報を記憶させておくと、CntlmをProxyとして指定することで通信を中継&勝手に認証をしてくれるもよう。
http://cntlm.sourceforge.net/

Linux以外にもWindows版もあり、そちらはWindowsサービスとして動作するようです。

導入方法

インストール

  • Windowsでは上記Urlからインストーラexeをダウンロードして導入する
  • Linux(Ubuntu)では以下のコマンドで取得、または上記urlから取得
sudo apt install cntlm

設定ファイルの編集

  • Windowsではインストールフォルダ内にあるcntlm.iniを編集する
  • Linuxでは/etc/cntlm.conf
Username        <ユーザー名>
Domain          <ドメイン名>
Password        <パスワード>

Proxy       <プロキシサーバー名 or IPアドレス>:<ポート>
Listen      <自分の待ち受けポート(デフォルト:3128)>

テスト実行

  • Windowsではcntlmインストールフォルダでコマンドプロンプトを起動
  • Linuxではコンソールより以下
cntlm -I -M http://www.google.co.jp
  • Passwordを聞かれるので、設定にも記載したproxy認証パスワードを入力する
  • 成功すると以下の文字列が応答される
----------------------------[ Profile 0 ]------
Auth NTLMv2
PassNTLMv2 <認証ハッシュ>
------------------------------------------------
  • ここの2行の文字列をコピーして、さきほどの設定ファイルの末尾に追記する

起動

  • Windowsの場合はCntlm Authentication Proxyサービスを起動する
  • Linuxの場合はCntlmサービスを再起動する
sudo service cntlm restart

設定

あとは各アプリでのProxyに以下の内容を設定するだけ(設定ファイルのListenを3128に設定している場合)

http://localhost:3128

これでaptもnpmもcurlも、Windows上でのeclipseも問題なく接続できるように。

余談

localhostじゃなくて社内ネットワーク上にこっそりcntlmを導入した環境を構築しておいて、みんなProxyでそちらを指定すれば幸せになるのでは……と思ったけどユーザー認証の意味がなくなるから管理側に怒られますね。

参考

Cntlmを使いNTLM proxy環境下でもnpmを使いたい
[Windows]Forefront TMGのNTLM認証プロキシをCntlmでなんとかする
CNTLMでプロキシ設定する
Ubuntuのproxy設定まとめ

20
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
25