0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Ubuntuで環境変数とエスケープ文字でプロキシ認証を行う

Posted at

一般ユーザーへのプロキシ認証設定

プロキシ認証はお好きですか? 俺は大嫌いだ。
社内プロキシとの戦いは終わりません。
前回はaptコマンド単体に対するプロキシ認証方法についてでした。

当たり前ですが、apt.conf.dで設定したプロキシ認証はaptコマンドに対してのみ機能するので、curlpipといった一般ユーザー状態で他のインターネットへのアクセスを伴うコマンドには機能しません。
というわけで今回は一般ユーザーの環境変数からプロキシ認証を行っていきます。
また、その際にプロキシ認証のパスワードに記号を使っている際の注意点も提示します。

環境

Ubuntu.20.04 LTS
プロキシサーバーを経由する際はパスワードによるユーザー認証を要求する

手順

  • printenvで現状の環境変数を出力し、proxyに関する記述が無いことを確認します。
$ printenv
  • ~/.bashrcまたは~/.zshrcに以下の記述を追記。今回はbashrcにやっていきます。
$ cp ~/.bashrc ~/.bashrc_org #念のためバックアップ
$ vim ~/.bashrc
--------------------------------------------------------
# http://<id>:<password>@X.X.X.X:<port番号>
_PROXY=<プロキシURL>

# httpおよびhttpsを使う際に参照するプロキシのURLをexport
export http_proxy=${_PROXY}
export https_proxy=${_PROXY}

# localhostなどの、プロキシを経由しない社内ネットワークなどのアドレス
export no_proxy=localhost,127.0.0.1

unset _PROXY

_PROXYで定義したプロキシURLを${_PROXY}に渡していることになります。
また開発などでlocalhostを使用している際には、no_proxyでプロキシを経由しない設定を行う必要があります。
「Apacheのlocalhost:xxxxが出てこないんだけど!?」と私はここでハマりました。

  • sourceコマンドで設定を読み込ませます。
$ source ~/.bashrc
  • あとはprintenvでproxyに関する記述があるか確認したり、wgetcurlがインターネットに届くかを確認してください。

パスワードに記号を使ってる際の注意点

もうひとつのハマったポイントです。
どこの職場とかでも、「パスワードは大文字小文字の英数字と記号で◯文字以上」といったセキュリティルールがあると思いますが、その際には記号の前にエスケープ文字を差し挟む必要があります。
例えば、下記のパスワードでexportからプロキシ認証を行おうとしても、エラーが出ます。

パスワード例:Hogehoge1234!
$ export http_proxy=http://<ユーザー名>:Hogehoge1234!@x.x.x.x:<port番号>
-bash: !@x.x.x.x: even not found

これは、パスワードの中にある!が文字列ではなく、historyコマンドのオプションとして機能しているためによるものです。
このため、!"といった、シェル上では何らかの機能を持つ記号を文字列として認識させる際はその文字の前に\バックスラッシュ(windowsの日本語環境なら¥)といったエスケープ文字を差し込む必要があります。

というわけで、パスワードが「Hogehoge1234!」なら、exportコマンドは下記のように記述する必要があります。

$ export http_proxy=http://<ユーザー名>:Hogehoge1234\!@x.x.x.x:<port番号>

これで、一般ユーザー状態で用いるコマンドのほとんどはインターネットへ到達すると思います。
また、ユーザー名とパスワードに関しては平文で保存されるので、設定を記述したファイルはパーミッションでアクセスを制限するなどの措置を取ってください。

参照サイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?