web-dev-qa-db-ja.com

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

仕事用のプロキシサーバーでは、Microsoft ADドメインのユーザー資格情報による認証が必要です。 Windowsワークステーションにログインすると、「Internet Explorer」ブラウザベースのインターネットアクセス要求は、ドメインログイン資格情報を使用して自動的に認証(および識別)されます。

私はFirefoxがこれらのプロキシサーバーに対しても認証できることを発見し、長い間「特別な何かをする」と想定していました。最近、同僚がLinux MintをVM=にインストールしました。驚いたことに、彼はインターネットからの更新の取得で忙しかったです。どのように機能するか尋ねたところ、肩をすくめて「うまくいった」と言いました。

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

VirtualBox VMで実行されているWindowsゲストのコピーがまだあります。これは主に印刷と内部/企業Webサイト(どちらもMSドメイン資格情報による認証と識別が必要です)へのアクセス、およびドメインパスワードの変更を行うためです。 。

したがって、プロキシサーバー経由でLinuxアプリケーションの[一部/ほとんど/すべて]を動作させることができれば非常に役立ちます。私の最も緊急のニーズは、AkregatorとMuonが動作できるようにすることです。メリットがあると思われる他のアプリケーションは、自動更新(例:Virtual Box Extentions)またはブラウザにラップするいくつかのアプリケーションです(Get More Themes/Wall Papers/etcが頭に浮かび、時々wgetを使用します)。

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

これを構成する正しい方法(ツールまたは手順、あるいはその両方)は何ですか。理想的には1つの場所でパスワードを複数の場所で維持する必要があるため、アカウントからロックアウトされるためのレシピです:-/

ああ、それから、Firefoxの「クイックプロキシ」プロキシ無効化/有効化ユーティリティに相当する機能を実現できるとしたら、夢が叶うでしょう。たとえば、ログアウトして再度ログインすることなく、ワンクリックでプロキシの使用を有効または無効にできます。使用しているネットワークによって異なります。実際に考えてみると、ユーティリティは、IPアドレスを調べて、いつプロキシを使用する必要があるかを知るようにトレーニングできる必要があります。しかし、私は余談です。

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

8
Johan

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

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

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

このアイデアの便乗は、WindowsでSSHDデーモンを実行することですVMこれにより、他のボックスからVMを介してSSH SOCKSトンネルなどを実行できます。

ssh -D 1080 windows-user@windows-vm

問題がある可能性があるアプリや、アプリを再構成したくない場合は、sshtunnelを使用して、トラフィックをルーティングする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/

2
Wing Tang Wong

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、curl、およびwget

注:一部のアプリケーションは小文字の名前のみを使用し、他のアプリケーションは大文字の名前のみを使用します。最初に一方を試行し、次にもう一方を試行するアプリケーションもあります。

s3cmd(Amazon S3クライアント)、curlおよびwgetは、必要に応じて、独自の構成ファイルを介してさらに構成できます。これは、呼び出しのたびに独自の構成ファイルを読み取るので便利です。これらのプログラムは一般的に有効期間が短いため(ダウンロードの完了後に単一の呼び出しが存在するため)、非常に便利です。

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

proxy_Host = localhost
proxy_port = 3128

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

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

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

proxy = localhost:3128

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

また、それぞれの.desktopファイルを使用してアプリケーションごとに環境設定を変更することは可能ですが、まだ(成功して)試していません。

VirtualBox

VirtualBoxは、GUIまたは次のコマンドを使用して、プロキシを使用するように(たとえば、ソフトウェアの更新を確認してダウンロードするように)構成できます。

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

完全を期すために、それを無効にするには、

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

Firefox

Firefoxの場合、QuickProxyアドオンを使用します。ローカルマシンでプロキシサーバーを使用するように手動で設定されている場合、Firefox自体。QuickProxyは設定を有効または無効にするだけです。

APT

APT(synaptic、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またはその他のオンラインホームに移動される予定です。

8
Johan

Ntlmによるプロキシ認証については、以下のリンクで詳しく説明しています。

しかし、ntlmの問題は、cntlm構成ファイルを1日に何度も更新する必要があることです。さまざまなユーザーが共通のマシンを共有し、システムにログインするたびにcntlm構成ファイルのADパスワードを更新する必要がある状況を考えてみます。おそらく、ユーザーがログインするたびにcntlm構成ファイルを自動的に更新するために使用できる方法があるでしょう。

0
user173141