[linux]CNTLMでForefront TMGのプロキシを通過する設定

2019/06/04
古い記事ですが、何かの役に立つかもということで掲載します。なお、Windowsの場合はこちらの記事を参照ください。


Linuxをセットアップしてみたのだけれど、プロキシサーバーがForefront TMG(旧ISA)で、NTLM認証を使っているので普通のProxy認証向け設定では外に出られない。

それでは困るので、CNTLMを使って対応する。

CNTLMはNTML認証proxyを通過するための、ローカルプロキシ。
ローカルからの接続を全てcntlm経由似設定することで、NTML認証proxyとの接続をうまいことやってくれるというもの。

CNTLM自体はNTML認証以外でもOKなようなので、とりあえずセットアップしておくといろいろなネットワークに接続する際に不便がなくて良いかもしれない。

CNTLMのセットアップ手順
(今回はlinux mintでセットアップしたので、debパッケージをdpkgでインストールした)

  1. http://sourceforge.net/projects/cntlm/?source=typ_redirect から*.debパッケージをダウンロードして適当なフォルダに格納する。(今回はcntlm_0.92.3_amd64.debをダウンロードした)
  2. dpkgでインストールする。
    sudo -E dpkg -i cntlm_0.92.3_amd64.deb
  3. /etc/cntlm.confを編集する。
    http://blog.livedoor.jp/centosnotes/archives/3859816.html を参照して作業した。
    一箇所、sudo がないところがあるが、必要なので注意。
  4. sudo init.d/cntlm restart で再起動。
  5. Firefoxで接続テストしてみる。
    1. proxy を手動/localhost/3128に設定して
    2. WebページにアクセスできればOK。

システムデフォルトのproxyをCNTLMに設定する
/etc/environmentで設定してもいいのだけれど、ここはproxy.shで設定する。
この辺は http://lambdalisue.hatenablog.com/entry/2013/06/25/140630 を参照した。

  1. proxy.shを作成する。
    sudo vi /etc/profile.d/proxy.sh
    # proxy settings
    HOST="localhost"
    PORT="3128"
    
    
    PROXY="$HOST:$PORT"
    
    #set to environment variables(lower and upper case)
    export http_proxy="http://$PROXY"
    export https_proxy="https://$PROXY"
    export ftp_proxy="ftp://$PROXY"
    
    export HTTP_PROXY="http://$PROXY"
    export HTTPS_PROXY="https://$PROXY"
    export FTP_PROXY="ftp://$PROXY"
    
    #set no_proxy(necessary setting)
    export no_proxy="127.0.0.1,localhost"
    export NO_PROXY="127.0.0.1,localhost"
    
  2. 次回のセッションからはproxy.shが自動実行されるが、カレントのターミナルでは(当然)実行されていないので、とりあえず実行しておく。
    . proxy.sh
  3. wgetでテストしてみる。
    書き込み権限のあるフォルダに移動してから
    wget https://www.google.com
    index.htmlが取得できていればOK。

sudoにproxy関係の環境変数が引き継がれるように設定
sudoすると環境変数はクリアされる。proxy設定を環境変数で行ったので、sudoするとproxy設定がされていない状態になる。sudo -Eで実行すれば環境変数を引き継ぐので、それで問題ないのだが、面倒なのでsudoした際にproxy関係の環境変数が引き継がれるようにする。

  1. sudo visudo
    ※エディタは sudo update-alternatives –config editor で変更可能
  2. 下記を追記する。
    Defaults env_reset
    Defaults env_keep="no_proxy NO_PROXY"
    Defaults env_keep+="http_proxy https_proxy ftp_proxy"
    Defaults env_keep+="HTTP_PROXY HTTPS_PROXY FTP_PROXY"
    
  3. テスト
    sudo printenv
    を実行して、proxy関係の設定がリストアップされていればOK。

コメントを残す