私はプロキシサーバーの背後にいて、インターネットにアクセスするために認証パラメータを指定する必要があります。このため、ユーザー名、パスワード、ホスト、および 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-get
software-center
ファイルを使用して/etc/apt.conf
プロキシ設定を保存します。ファイルを作成し/etc/apt/myproxy.txt
、内容を入れるターミナルから開く/etc/apt/apt.conf
と、
sudo gedit /etc/apt/myproxy.txt
次に、必要なコンテンツをコピーしてファイルを保存します。/etc/apt/myproxy.txt
を使用して、上記のようにグループとその他の読み取り書き込み権限を削除しますchmod
。
tmproxy.txt
say 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_apt
sudo
/etc/apt/tmproxy.txt
apt-get
software-center
software-center
apt-get
/etc/apt/tmproxy.txt
disable_apt
/etc/apt/tmproxy.txt
disable_apt
注釈と要約
- エイリアスでは、ゼロの後の
disable_apt
セミコロン(;
)が重要です。そうでないと、エラー「ファイルの最後に余分なジャンクがあります」右上のパネルに赤いエラー アイコンが表示されることもあります。 - がない場合は
~/.bash_aliases
作成してください。 に次の行が含まれているsource ~/.bashrc
ことを確認した後、~/.bashrc
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
- 上記の設定を行ってエイリアスを有効にした直後は、一度ログアウトしてログインするか、
source ~/.bash_aliases
ターミナルで使用することができます。 ストーリーの最後には、次の 3 つの別名を使用できます。
begin_proxy
- シェル環境でプロキシを起動します。ターミナルが開くまで持続します。able_apt
- プロキシ資格情報を有効にしapt-get
、softwere-center
保存する/etc/apt/tmproxy.txt
disable_apt
-プロキシ認証情報を無効にしapt-get
たり消去したりするsoftwere-center
/etc/apt/tmproxy.txt
これが役に立つことを願っています。