Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

ネットワーク (Network)

Proxyの基本知識と確認コマンド~OSやブラウザ別の設定について

投稿日:2020年6月20日 更新日:

(0)目次&概説

(1) 記事の目的
(2) プロキシの基礎知識
 (2-1) プロキシとは?
 (2-2) なぜプロキシが必要?
  (2-2-1) 特定コンテンツの許可(OUT)
  (2-2-2) 特定コンテンツのブロック(IN)
  (2-2-3) 匿名性の保持
  (2-2-4) 帯域の節約
(3) リバースプロキシとは
 (3-1) リバースプロキシとは?
 (3-2) なぜリバースプロキシが必要?
  (3-2-1) 負荷分散
  (3-2-2) 攻撃に対する防御機能
  (3-2-3) キャッシングによるWebサーバ負荷削減
  (3-2-4) SSL負荷の軽減
(4) Windowsにおけるプロキシ(Win10の例)
 (4-1) Windowsプロキシの調べ方(コマンド)
 (4-2) Windowsプロキシの設定
(5) Linuxにおけるプロキシ
(6) ブラウザのプロキシ設定比較
 (6-1) ブラウザ別バージョン情報
 (6-2) ブラウザ比較結果
 (6-3) おまけ:ブラウザ別プロキシ設定画面を開く方法
  (6-3-1) Chrome
  (6-3-2) Edge
  (6-3-3) IE
  (6-3-4) Firefox

(1) 記事の目的

プロキシの基礎的な知識を把握し、OSやブラウザにおける基本的な設定概要についても把握する事。

(2) プロキシの基礎知識

(2-1) プロキシとは?

複数のクライアントの前に立ち(身代わりとなり)、クライアントから外部(インターネット)へのリクエストに対して割り込み(インターセプト)して、代理(Proxy)でWebサーバとやり取り(インターネット上のウェブサイト、サーバ、サービスへの問い合わせ等)を行うサーバです。
(図211)
①クライアントがブラウザにURLを入力すると、リクエストは最初にプロキシサーバに送られます。
②プロキシサーバは、要求されたウェブサイトがホストされているサーバに対して代理で照会します。

目次にもどる

(2-2) なぜプロキシが必要?

(2-2-1) 特定コンテンツの許可(OUT)
・プロキシはユーザの集団を特定サイトへのアクセスを許可するように設定する事ができます。
・特に会社や学校など組織においては、ファイアウォール等で外部サイトに接続出来ないように制限しているケースが多いですが、そうした場合もプロキシサーバにてフィルタルールを設定し、プロキシを経由する事でアクセスを許可する事ができます。

(2-2-2) 特定コンテンツのブロック(IN)
・プロキシはユーザの集団を特定サイトへのアクセスからブロックするように設定する事もできます。
・例えば、会社や学校のネットワークは外部ネットワークにアクセスする際にプロキシを用いて、フィルタリングルールを適用し制限をかける事ができます。

(2-2-3) 匿名性の保持
プロキシを経由してアクセスした場合、接続先に伝わるIPアドレスの情報はプロキシサーバのIPアドレスであるため、プロキシを経由する事でアクセスした個人の特定が困難になります(隠して匿名を保持できる)

(2-2-4) 帯域の節約

・プロキシサーバはネット上のトラフィック(送受信データ/信号の量/密度)を圧縮したり、インターネットのウェブページやファイルをキャッシュしたりする事が出来ます。
・またウェブサイトが自身のクライアント端末に到達する前に広告を除外して連携する事も可能です(帯域の節約に貢献する)

(図221)

目次にもどる

(3) リバースプロキシとは

(3-1) リバースプロキシとは?

・通常のプロキシとは逆に、リバースプロキシは1つ以上のWebサーバの前に立ち、外部(クライアント)から来るリクエストに対してインターセプトし、クライアントの代理としてWebサーバにリクエストを送り、レスポンスを受け取ります。
・両者は構造的には似ていますが目的が明確に異なっており、プロキシサーバは意味合いとしては「クライアントを外部から守る」目的で、リバースプロキシは「Webサーバを外部から守る」目的です。

目次にもどる

(3-2) なぜReverse Proxyが必要?

(3-2-1) 負荷分散

リバースプロキシ流入するトラフィックを各サーバに分配する事によって負荷分散を実現する事ができます。

(3-2-2) 攻撃に対する防御機能

サーバ本体のIPアドレスが隠せるため、外部から直接アクセスされる事を防ぎ、Ddos攻撃などを抑止する事ができます。Ddos攻撃はDistributed Denial of Service Attackの略で、サーバに対して非常に高負荷を掛ける事でリソースを使い果たさせたり、サーバクラッシュさせたりして、オンラインサービスを利用不可に追い込む攻撃手法の一つです。

(3-2-3) キャッシングによるWebサーバ負荷削減

背後のWebサーバのコンテンツをキャッシュする事で、Webサーバの負荷を下げる事が出来ます。もしキャッシュされたページに対する問い合わせが来た場合は、Webサーバに問い合わせる事なく、自身にて静的ページを返却する事が出来る(Webサーバの負荷を下げる)

(3-2-4) SSL負荷の軽減

もしSSL方式による暗号化を実施している場合、SSLの終始点としての役割を果たす事が出来ます。具体的にはSSLの暗号化によって生じる負荷をWebサーバではなくProxyサーバにて引き取る事が出来ます。
SSLとはインターネットにおいてブラウザとWebサーバの間の送受信の通信を暗号化する方式です。例えば氏名、生年月日、住所やクレジットカードの情報などの個人情報を保護(盗聴や改竄防止)します。HTTPSプロトコルはHTTPプロトコルをSSL方式で暗号化したプロトコルで、URLの先頭が「https://」になっています。

(図321)リバースプロキシ

目次にもどる

(4) Windowsにおけるプロキシ(Win10の例)

・プロキシの設定はイーサネット(TCP/IP規格、LANケーブル等)に接続した時やWiFiでネットワークに接続した時に有効になります。

(4-1) Windowsプロキシの調べ方(コマンド)

次のコマンドを実行します。

> netsh winhttp show proxy

実行結果(例)
※プロキシなしの場合

C:\WINDOWS\system32>netsh winhttp show prox
現在の WinHTTP プロキシ設定:
    直接アクセス (プロキシ サーバーなし)。

(図411)

目次にもどる

(4-2) Windowsプロキシの設定

ここで設定した内容はIE、GoogleChrome、Firefoxなどのブラウザを始めとして、「OSのプロキシ設定に従う」と設定されているアプリ全てにて適用されます。

(4-2-1) 設定画面の開き方

①Windowsの「設定」画面を開きます
(図421)①

②メニューから「プロキシ」を開きます。
(図421)②

目次にもどる

(4-2-2) 手動プロキシ(プロキシサーバを使う)

・手動でプロキシサーバのIPアドレス(orホスト名)とポート番号を指定して有効化する方法です。
・またプロキシを「使わない」アドレスも指定する事ができ、例えば「AAA.local」といった自身の端末内のアドレスに対して、わざわざプロキシが使われないように除外設定を行う事もできます。

(図422)

目次にもどる

(4-2-3) 自動プロキシ(セットアップスクリプト)

・プロキシ設定のためのスクリプトを使うための設定です。
・スクリプトのパス(アドレス≒URL)を指定する事で、スクリプトを利用するようになります。
・設定するパスについては企業や学校等の組織によって指定されているか、組織にて自動で設定されているケースが多い。
・スクリプトは「PACファイル」(Proxy Auto Configuration)と呼ばれ、下記はその最小単位(Proxy)のサンプルです。
・意味合いとしては、基本全てのページの閲覧を指定したサーバ名×ポート番号のプロキシを介するように指示しており、もしプロキシが応答に失敗した場合は直接接続を行うようになる。

function FindProxyForURL(url, host)
{
	return "PROXY [ProxyServerName/IP]:[Port]; DIRECT";
}

(図423)

目次にもどる

(4-2-4) 自動プロキシ(設定を自動的に検出する)
・デフォルトでは「設定を自動的に検出」(Automatically Detect Settings)によって自動でプロキシ設定を探しにいきます。
・上記の自動検出の挙動はWPAD(Web Proxy Auto Discovery)プロトコルの挙動によって実現されます。

・WPADプロトコルはプロキシ設定の自動化を行うためのプロトコルで、ネットワーク内の多数のクライアント端末のプロキシ設定を集中管理、自動設定する際に企業などの組織で利用されています。

・通常はブラウザからプロキシの設定などを行うが、企業など非常に多数の端末がある場合、1台ずつ入力するのは非常に手間が掛かってしまい非現実的であるため、設定情報を中央で集中管理と自動設定を行うのがこのWPADプロトコルになります。
・組織ネットワーク内のWebサーバに設定ファイルを配置し、そのURLを各クライアントに通知する事で、クライアント側はブラウザの自動プロキシ設定をONにしておくだけで、組織の特有の設定が適用され、プロキシサーバを介しての通信が可能になる。

目次にもどる

(5) Linuxにおけるプロキシ

LinuxのProxyの設定は適用する対象の種類によって、設定の方法が異なります。例えば「wget」や「curl」といったクライアントプログラムの場合、非シェルプロセスの場合、シェルプロセスの場合などで異なります。下表はその種類別の設定方法を書いた表です。

(表)

一時的
(環境変数)
# export http_proxy=http://[Server Name]:[Port]/ ・wgetやcurlといったコマンドラインプログラムに適用される
恒久的:非シェルプロセス # echo “http_proxy=http://[Server Name]:[Port]/” > /etc/environment ・CentOS7やRHEL系OSで「永続的」に設定する際は左記コマンドで「/etc/environment」を編集
恒久的:シェルプロセス
(bashやsh)
# echo “export http_proxy=http://[Server Name]:[Port]/” > /etc/profile.d/http_proxy.sh ・CentOS7やRHEL系OSで「永続的」に設定する際は左記コマンドで「/etc/profile.d/」を編集

目次にもどる

(6) プロキシ設定のブラウザ別比較

下表は主要ブラウザ+Windowsについてプロキシ設定機能の比較を行った表になります。ブラウザに関してはバージョンによって仕様が大きく変わる部分があるため、比較を取ったバージョンについても記載します。

(6-1) ブラウザ別バージョン情報

Chrome 83.0.4103.97
Edge 83.0.478.54
IE 11.900.18362.0
Firefox 77.0.1

目次にもどる

(6-2) ブラウザ比較結果

設定項目 OS      Chrome Edge    IE       Firefox 備考
自動
∟自動検出

(*注1)

(*注1)
 
自動
∟システム(OS)に従う
(*注1)ChromeとEdgeは筆者環境ではOS(Windows)の設定に従う形式でした(Windowsのプロキシ設定画面に遷移する)
自動
∟セットアップスクリプト
 (自動構成スクリプト)

(*注1)

(*注1)
 
手動
∟プロキシ設定

(*注1)

(*注1)
・アドレス/ポートを指定可能
・ローカルアドレスには適用しない設定が可能
・プロキシを適用しないアドレスの指定が可能
・IEはHTTP/FTP/Secure/Socksなど個別の詳細設定が可能
・FirefoxもHTTP/HTTPS/FTP/Socksなど個別設定が可能

目次にもどる

(6-3) おまけ:ブラウザ別プロキシ設定画面を開く方法

(6-3-1) Chrome






⇒OS(Windows 10)のプロキシ設定画面が開きます(Chrome独自のプロキシ設定はなく、完全にOS設定に従うように見える)
目次にもどる

(6-3-2) Edge




⇒OS(Windows 10)のプロキシ設定画面が開きます(Edge独自のプロキシ設定はなく、完全にOS設定に従うように見える)

目次にもどる

(6-3-3) IE





目次にもどる

(6-3-4) Firefox





目次にもどる

 

Adsense審査用広告コード


Adsense審査用広告コード


-ネットワーク (Network)

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

SOAP通信の仕組みやHTTPプロトコルとの違いなど

  <目次> (1) SOAP通信の仕組みやHTTPプロトコルとの違いなど  (1-1) SOAPとは?  (1-2) SOAPを構成する要素  (1-3) SOAPの通信の仕組み&HTTP …

デフォルトゲートウェイとは?仕組みや特徴をご紹介

  <目次> (1) デフォルトゲートウェイとは?仕組みや特徴をご紹介  (1-1) デフォルトゲートウェイとは?  (1-2) デフォルトゲートウェイの仕組み  (1-3) デフォルトゲー …

HTTPレスポンスの構造や各ヘッダーの概要について

<目次> (1) HTTPレスポンスの構造や各ヘッダーの概要について  (1-1) HTTPレスポンスの構造  (1-2) HTTPレスポンス行について  (1-3) HTTPレスポンスの各部分の概要 …

SSLとは?簡単に仕組みや種類についてご紹介(さらっと読めます)

<目次> (1) SSLとは?簡単に仕組みや種類についてご紹介  (1-1) SSLとは?  (1-2) ハッカーの手口について  (1-3) SSL証明書の種類   (1-3-1) EV証明書(Ex …

パブリックIPとプライベートIPの違いとは?

  <目次> (1) パブリックIPとプライベートIPの違いとは?  (1-1) パブリックIPアドレスとは?  (1-2) プライベートIPアドレスとは?  (1-3) 比較表 (1) パ …

  • English (United States)
  • 日本語
Top