認証プロキシサーバーを構成する方法

認証プロキシサーバーを構成する方法

私の会社のプロキシサーバーには、Microsoft ADドメインのユーザー資格情報を使用した認証が必要です。仕組みは誰でも知っています。 Windowsワークステーションにログインすると、Internet Explorerブラウザに基づくインターネットアクセス要求は、ドメインログイン資格情報を使用して自動的に認証(および認識)されます。

私はFirefoxがこれらのプロキシサーバーに対しても認証できることを発見し、長い間彼らは「何か特別なことをした」と思いました。最近、同僚は仮想マシンにLinux Mintをインストールしました。私が彼にどのように成功したか尋ねたとき、彼は肩をすくめて、「ただ効果がある」と言いました。

これにより、プロキシ設定に再度アクセスするように求められます。私はKubuntuを実行します(G *とK *アプリを混在させましたが、GTKアプリがK *よりはるかに優れていると確信している場合にのみGTKアプリを使用します)。

私はまだVirtualBox VMでWindowsゲストコピーを実行していますが、主に内部/会社のWebサイトを印刷してアクセスするために使用しています(両方ともMSドメインの資格情報による認証と識別が必要です)、数日ごとにドメインパスワードを変更します。

したがって、私のLinuxアプリケーションの[一部/ほとんど/すべて]がプロキシサーバーを介して動作できるようにすることができれば非常に役立ちます。私にとって最も緊急に必要なのは、AkregatorとMuonが動作することです。役に立つかもしれない他のアプリは自動的に更新されるか(Virtual Box Extensionsなど)、ブラウザで自分自身をラップするアプリです(より多くのテーマ/背景画面などをインポートし、時々wgetを使用することを検討してください)。

SSH / SCPクライアントは認証なしでファイアウォールを介して動作します。

この機能を設定する正しい方法(ツールおよび/またはプログラム)は何ですか?複数の場所でパスワードを保持する必要がある場合は、アカウントがロックされる可能性があるため、1つの場所でお勧めします。 :-/

ああ、Firefox「クイックプロキシ」プロキシの無効化/有効化ユーティリティと同等の機能を持つことができれば、夢は実現します。たとえば、ログアウトして再度ログインすることなく、ワンクリックでプロキシの使用を有効または無効にできます。ネットワークです。実際に考えてみてください。ユーティリティはあなたのIPアドレスを見て、いつプロキシを使うべきかを知るために訓練可能でなければなりません!しかし、私は外れた。

動的に認証を追加し、必要に応じてアップストリームプロキシサーバーに転送できるローカルプロキシサーバーを実行することが唯一の実際のソリューションであると思います。

答え1

cntlmソリューションといくつかの構成が提供されます。

従うべき基本的なステップは次のとおりです。

  1. cntlmをインストールします。
  2. /etc/cntlm.confで設定ファイルを編集します。これには、十分に簡単に作成できる説明が含まれています。
  3. プロキシサーバー(または2つ)を追加します。
  4. 適切な場所にユーザー名とNTドメイン名を指定し、パスワードエントリを削除します。
  5. たとえば、次のように cntlm サービスを開始します。

    $ sudo /etc/init.d/cntlm start
    
  6. cntlmは、プロキシをテストし、パスワードに基づいてハッシュを生成する方法を提供します(たとえば、rootとして)。

    $ cntlm -I -M http://www.test.com
    
  7. cntlm は、ドメインパスワードの入力を求めるメッセージを表示します。次に、構成されたプロキシサーバーに対してさまざまな認証メカニズムをテストします。作業方法が見つかったら、構成ファイルに作成する必要がある2行を印刷します。

  8. cntlmサーバーを停止し、上記のステップ6で取得した行を/etc/cntlm.conf
  9. cntlmの再起動

これcntlmで実行して使用する準備が整いました。さまざまなプログラムを構成して使用できる場所はたくさんあります。 cntlmこれにより、NTドメイン認証トークンが発信パケットに透過的に追加され、構成されたプロキシサーバーに転送されます。

Qt/KDEの使用

Qt / KDEネイティブアプリケーションの場合は、「手動で構成されたプロキシサーバーを使用する」で指定します。KDEシステム設定->ネットワーク設定->プロキシ設定。プロキシは、ポート3128(変更しない限りhttp://localhostデフォルトポート)として指定されます。cntlmこれらのアプリケーションは新しい設定で動的に更新され、設定を更新するために再起動やログアウト/ログインは必要ありません。

DropboxとGoogleクライアント

多くのアプリケーションでシェル環境変数を使用できます。ここで注目すべき点は、DropboxとGoogle Earthクライアントです。これらのアプリケーションでは、次のシェル環境変数を使用します。

no_proxy=localhost,127.0.0.0/8,*.local
NO_PROXY=localhost,127.0.0.0/8,*.local
all_proxy=socks://localhost:3128/
ALL_PROXY=socks://localhost:3128
http_proxy=http://localhost:3128
HTTP_PROXY=http://localhost:3128
ftp_proxy=http://localhost:3128
FTP_PROXY=http://localhost:3128
https_proxy=http://localhost:3128
HTTPS_PROXY=http://localhost:3128

s3cmd、カール、wget

注:一部のアプリは小文字の名前のみを使用し、他のアプリは大文字の名前のみを使用し、一部のアプリは最初に大文字の名前を試してから別のものを試します。

s3cmd(Amazon S3クライアント)必要に応じて、独自の設定ファイルで設定できますcurlwgetこれは、呼び出すたびに独自の設定ファイルを読み取るので便利です。これらのプログラムは通常、寿命が短いために便利です(ダウンロードが完了した後に単一の呼び出しがあります)。

s3cmdinの形式は~/.s3cfg次のとおりです。

proxy_host = localhost
proxy_port = 3128

wgetの形式は次~/.wgetrcのとおりです。

https_proxy = http://localhost:3128
http_proxy = http://localhost:3128
ftp_proxy = http://localhost:3128

curlinの形式は~/.curlrc次のとおりです。

proxy = localhost:3128

一方、シェル構成ファイルやその他の環境構成ファイルを編集するには、通常、再起動、ログアウト、ログバック、または同様の操作が必要です。/etc/environmentなどを見る価値があります~/.pam_environment~/.kde/env/proxy.shこれは、システム内のすべてのユーザーとサービスに影響を与えるシェル環境変数で構成されたプロキシ設定を指定する標準的な場所であるためです。

また、個々のファイルを使用して.desktopアプリケーションごとに環境設定を変更できることを知っていますが、まだ試していません(成功的に)。

仮想ボックス

VirtualBoxは、GUIを使用するか、次のコマンドを使用してプロキシ(ソフトウェアアップデートの確認やダウンロードなど)を使用するように設定できます。

$ VBoxManage setextradata global GUI/ProxySettings \
    "proxyEnabled,localhost,3128,authDisabled,,"

完全性のために無効にするには、次のようにします。

$ VBoxManage setextradata global GUI/ProxySettings \    
    "proxyDisabled,,,authDisabled,,"

Firefoxブラウザ

Firefoxの場合は、QuickProxyプラグインを使用してください。 Firefox自体がローカルコンピュータでプロキシサーバーを使用するように手動で設定されている場合、QuickProxyはその設定を有効/無効にするだけです。

簡単

APTで使用されている設定ファイル(シナプティック、muon、および内部の友達が使用)/etc/apt/apt.conf.d/たとえば、00proxy APTプロキシの有効化は次の行を介して行われます。

Acquire::http::Proxy "http://localhost:3128";
#Acquire::ftp::proxy "ftp://localhost:3128/";
#Acquire::https::proxy "https://localhost:3128/";

注:add-apt-repositoryはルート設定ファイルを使用するか、すべてのhttp * _proxy設定が失敗するようにsudoを設定できます。

すべてを支配するスクリプト

FWIW 私は現在、複数のプログラムに対してプロキシを有効/無効にするモジュール式スクリプトを作成しています。これまで私は次のモジュールを書いています。

$ ls -lF proxymanager/modules/
total 60
-rwxr-xr-x 1 root root  919 Oct  8 17:27 apt*
-rwxr-xr-x 1 root root 1037 Oct  8 13:10 bashrc*
-rwxr-xr-x 1 root root  391 Oct  8 12:18 cntlm*
-rwxr-xr-x 1 root root  684 Oct  8 12:58 curl*
-rwxr-xr-x 1 root root  609 Oct  8 13:02 dropbox*
-rwxr-xr-x 1 root root  672 Oct  8 12:18 gnome*
-rwxr-xr-x 1 root root  691 Oct  8 12:18 kde*
-rwxr-xr-x 1 root root  689 Oct  8 13:03 root_bashrc*
-rwxr-xr-x 1 root root  691 Oct  8 13:03 root_curl*
-rwxr-xr-x 1 root root  827 Oct  8 13:03 s3cmd*
-rwxr-xr-x 1 root root  454 Oct  8 13:03 survive_reboot*
-rwxr-xr-x 1 root root  860 Oct  8 13:06 suse-sysproxy*
-rwxr-xr-x 1 root root  653 Oct  8 12:46 sysenvironment*
-rwxr-xr-x 1 root root  465 Oct  8 13:04 virtualbox*
-rwxr-xr-x 1 root root  573 Oct  8 13:04 wgetrc*

と制御アプリケーション。これはすぐにgithubや他のオンラインホームページに移動することを願っています。

答え2

私のLinuxワークステーションからインターネットにアクセスできる唯一のアプリケーションは、a)Firefox(独自のプロキシ構成とFirefoxに保存されている認証を使用)とWindows VMで実行されているアプリケーション(注 - Windows VMはドメインメンバーであり、ユーザーはログイン時にドメインにに対して認証されます)

ソリューションオプション:Windows VMでWebエージェントを実行します。このインスタンスをプロキシとして使用するようにシステムを設定します。

Windows VMはすでに認証されており、トラフィックを許可するため、そのVMインスタンスにSOCKSプロキシを設定すると、認証要求が一元化されます。それがあなたとあなたの箱だけのためであるならば、これは大丈夫で、おそらくかなり簡単です。

ピギーバックの概念は、Windows VMでSSHDデーモンを実行させることです。これにより、VMを介して他のシステムでSSH SOCKSトンネリングなどの操作を実行できます。

ssh -D 1080 windows-user@windows-vm

問題がある場合やアプリケーションを再構成したくないアプリケーションの場合は、次のものを使用できます。SSHトンネル、トラフィックをルーティングするためのiptablesルールを設定します。 Linux および Mac システムで使用できます。

Windows VM自体にプロキシをインストールしたくない場合は、Windows ADに対して自己認証するように構成されたSquidプロキシボックスを設定できます。これを行う方法のガイドラインは次のとおりです。

ソリューションオプション:AD / NTLMで認証されたSquidプロキシ

http://techmiso.com/1934/howto-install-squid-web-proxy-server-with-active-directory-authentication/デッドリンク)

別のNTLMプロキシソリューションは、実際にはWindowsシステムで実行されていると考えられています。

ソリューションオプション: NTLM プロキシ http://cntlm.sourceforge.net/

答え3

以下のリンクはntlmのプロキシ認証について非常によく説明しています。

しかし、ntlmの問題は、cntlm1日に数回構成ファイルを更新する必要があることです。複数のユーザーがパブリックコンピュータを共有してcntlmシステムにログインするたびに、設定ファイルでADパスワードを更新する必要がある状況を考えてみましょう。おそらくcntlm、ユーザーがログインしたときにプロファイルを自動的に更新する方法があります。

関連情報