AWSのEC2で多段ProxyサーバをSquidで構築

SaaSが流行し、内部ネットワークからSaaSのProxyを利用したいということもありますよね。
AWSでサクッとプロキシサーバを立てて、多段プロキシ構成を実装する方法をご紹介します。

内容

・AWSでEC2を立てる
・Squidサーバを構築して多段プロキシする設定を入れる

AWSでEC2を立てる

まずはプロキシサーバを立てるサーバをAWS上に用意します。
AWS上でサクッと作ります。
慣れると30分もかけずにEC2サーバを構築できますが、初めは少しつまづくこともあると思うので、簡単にポイントを記載します。サーバを構築する前に、バーチャルプライベートクラウドやグローバルIPを振るためのインターネットゲートウェイ、ルーティングテーブルを、事前に作成しておく必要があります。ゾーンを作ったりルータの設定をする感覚です。

ポイント1:VPC(バーチャルプライベートクラウド)を構築する。

ポイント2:インターネットゲートウェイを作成する。

ポイント3:ルートテーブルを構築する。

ポイント4:EC2インスタンスでCent OSを起動する。無償枠内のt2.microで十分試せます。
      ネットワーク設定でパブリック IP の自動割り当ての有効化を忘れないようにしましょう。
      セキュリティグループは、sshトラフィックを許可します。

自端末からssh.keyを-iオプションで指定して、sshで接続します。
接続できればOKで、自身はスマフォで試して30分もかからずアクセスできました。

ssh -i xxx.pem ec2-user@x.x.x.x

Squidサーバを構築して多段プロキシする設定を入れる

Cent OSでsquidをインストールします。

# yum -y install squid

squidの設定変更を行い多段プロキシ設定をします。
「/etc/squid/squid.conf」の設定にnever_directの設定を入れて、決して直接アクセスしないように設定を追加します。加えて、cache_peerで親となるプロキシサーバを示すFQDNの設定を入れます。[FQDN] 部分にはプロキシサービスを提供するSaaSのサーバを示すドメイン名を記載します。

never_directを入れないと、親のプロキシサーバを経由せずに直接アクセスしてしまうこともあるため、never_directの設定も入れるようにしましょう。

never_direct allow all
cache_peer [FQDN] parent 8080 0 no-query

一方で、always_direct allow allと入れると、親のプロキシサーバを経由せず、いつも直接Webサーバへアクセスするようになります。ACLで使い分けると、一部の通信は多段プロキシにせず、一部の通信は多段プロキシに設定するといったことができるでしょう。

終わりに

簡単にですが、AWS上でEC2を構築し、SaaSプロキシを含む、多段プロキシ構成をSquidで実装する方法をご紹介いたしました。
SaaSを利用して多段プロキシ設定をしたいときはお試ししてみてください。