プロキシの認証パラメータをアプリケーションに渡す安全な方法はありますか?

プロキシの認証パラメータをアプリケーションに渡す安全な方法はありますか?

私はプロキシサーバーの背後にいて、インターネットにアクセスするために認証パラメータを指定する必要があります。このため、ユーザー名、パスワード、ホスト、および port_no を、人間が読める形式でファイル/home/$USER/.bashrc/etc/apt/apt.confファイルにエクスポートしました。
例:

Acquire::http::proxy "http://<username>:<password>@172.16.0.2:8080";
Acquire::ftp::proxy "ftp://<username>:<password>@172.16.0.2:8080/";
Acquire::https::proxy "https://<username>:<password>@172.16.0.2:8080/";

これにより、これらのファイルへの読み取りアクセス権を持つすべてのユーザーにパスワードが公開されることになります。

人間が読める形式で記述せずに、プロキシ認証パラメータを必要とするアプリケーションにこれらのパラメータを渡す安全な方法はありますか?

注記:永続的な方法を知っておくと良いでしょう。新しいセッションを開くたびにエクスポートすることで、これを一時的に実行できることはわかっています。ただし、新しいセッションを開くたびにこれを行う必要があるため、これを避けたいです。

答え1

長い回答を書いて申し訳ありませんが、apt.confこれはシステムに関する非常にデリケートな問題です。そのため、すべての側面を明らかにする必要があります。

私の知る限り~/.bashrc/etc/apt/apt.confプロキシ設定は人間が読める形式で提供される場合にのみ受け入れます。せいぜい、別のファイルから読み取るように強制することしかできません。私はこれを利用します。プロキシ資格情報は、root/sudoer ユーザー以外にはアクセスできないファイルに保持します。ただし、毎回プロキシ設定を使用する前にapt-get、または使用する前に、プロキシ設定を明らかにする必要があります。software-center

シェル環境にプロキシを提供する安全な方法

カットすべての内容~/.bashrcシェル環境でプロキシ設定を提供するために、に配置し、 というファイルに貼り付けます~/.mybashproxy~/.mybashproxy所有権を root に変更し、グループとその他の読み取り書き込み権限を削除して、sudoers のみがアクセスできるようにします。

sudo chown root:root ~/.mybashproxy
sudo chmod go-rw ~/.mybashproxy

~/.bashrcまたは で次のエイリアスを作成しますが~/.bash_aliases、私は後者を使用することを好みます。

alias begin_proxy='sudo cat .mybashproxy > .tmp; source .tmp; rm .tmp'

使用法

begin_proxyシェル環境でプロキシを有効にするには、ターミナルからパスワードを入力してコマンドを実行する必要がありますsudo。この方法では、プロキシの資格情報は誰にも知られません。ただし、使用後にbegin_proxy同じターミナルへのアクセスを誰かに許可すると、ターミナルのコマンドを使用して資格情報を見ることができる可能性がありますenv | grep proxy。安全のために、 を使用した同じターミナルを誰にも使用させないでくださいbegin_proxy

apt-get にプロキシを提供する安全な方法

apt-getsoftware-centerファイルを使用して/etc/apt.confプロキシ設定を保存します。ファイルを作成し/etc/apt/myproxy.txt内容を入れるターミナルから開く/etc/apt/apt.confと、

sudo gedit /etc/apt/myproxy.txt

次に、必要なコンテンツをコピーしてファイルを保存します。/etc/apt/myproxy.txtを使用して、上記のようにグループとその他の読み取り書き込み権限を削除しますchmod

tmproxy.txtsay atという名前の一時ファイルを作成し/etc/apt/、次のように全員に読み取り/書き込み権限を与えます。

sudo touch /etc/apt/tmproxy.txt
sudo chmod go+rw /etc/apt/tmproxy.txt

apt-get必要に応じて、プロキシ設定をとの間でやり取りします。からプロキシ設定を読み取るには、 にsoftware-center次の行を追加します。/etc/apt/apt.conf/etc/apt/tmproxy.txt

#inclued /etc/apt/tmproxy.txt;

ただし、上記の行には/etc/apt/apt.conf何も含まれません。次に、次のエイリアスを作成します。~/.bash_aliases

alias able_apt='sudo cat /etc/apt/myproxy.txt > /etc/apt/tmproxy.txt'
alias disable_apt='echo "0;" > /etc/apt/tmproxy.txt'

使用法

apt-getおよび/またはを使用する前に、パスワードを入力するsoftware-centerコマンドを使用する必要があります。その後、すべてのプロキシ認証情報が および に保存され、および/またはを使用できるようになります。 を閉じた後、または を使用してからプロキシ認証情報を消去した後、コマンド を使用します。このプロセスでも、の使用を忘れて に残さない限り、誰もプロキシ認証情報を見ることはできません。able_aptsudo/etc/apt/tmproxy.txtapt-getsoftware-centersoftware-centerapt-get/etc/apt/tmproxy.txtdisable_apt/etc/apt/tmproxy.txtdisable_apt

注釈と要約

  1. エイリアスでは、ゼロの後のdisable_aptセミコロン(;)が重要です。そうでないと、エラー「ファイルの最後に余分なジャンクがあります」右上のパネルに赤いエラー アイコンが表示されることもあります。
  2. がない場合は~/.bash_aliases作成してください。 に次の行が含まれているsource ~/.bashrcことを確認した後、~/.bashrc
   if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
    fi
  1. 上記の設定を行ってエイリアスを有効にした直後は、一度ログアウトしてログインするか、source ~/.bash_aliasesターミナルで使用することができます。
  2. ストーリーの最後には、次の 3 つの別名を使用できます。

    • begin_proxy- シェル環境でプロキシを起動します。ターミナルが開くまで持続します。
    • able_apt- プロキシ資格情報を有効にしapt-getsoftwere-center保存する/etc/apt/tmproxy.txt
    • disable_apt-プロキシ認証情報を無効にしapt-getたり消去したりするsoftwere-center/etc/apt/tmproxy.txt

これが役に立つことを願っています。

関連情報