AWSにsquidでフォワードプロキシサーバーを設置する方法

AWS

フォワードプロキシサーバーとは

あなたのパソコンからサーバーを経由してWebサイトにアクセスする時に使うサーバーをフォワードプロキシサーバーと呼びます。

何らかの理由で直接あるWebサイトに接続したくない場合に使います。

  • 自分のIPを残したくない
  • 自分のパソコンがどこにアクセスしているか隠したい

とかです。

AWSにフォワードプロキシサーバーをSquidで設置する

プロキシサーバーといえばSquidが一番有名です。
設定も簡単なのでおすすめです。

AWSでは現在Amazon Linux とAmazon Linux 2が使われることが多いと思います。
Amazon Linux はCentOS6 をベースに、Amazon Linux 2 は CentOS7がベースになっています。
ですので、CentOSに慣れていれば、簡単にAmazon Linuxのネットワーク設定を使いこなすことができます。

今回はCentOS6ベースのAmazon Linuxを用いた場合の設定方法を紹介します。

 

セキュリティグループの設定
Squidの設定

AWSの場合、外部からのアクセスコントロールが、iptableではなくセキュリティーグループで行われるのでこの設定を行います。AWSを使ったことがある人なら誰でも設定している項目ですので難しくはありません。

Squidのインストール

インスタンスにSquidをインストールします。

ターミナルsudo yum install squid -y

/etc/squid/squid.confの中身

# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid
# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
# ホストネームは任意のものを。
visible_hostname groro56.com
# ポート8080は一般的すぎるので使いません。
http_port 62288
# xxx.xxx.xxx.xxxはあなたのIPを記述する。
# わからなければ
# http://www.ugtop.com/spill.shtml
# ここの「現在接続している場所(IPv4)」のIPを書きます。
acl myacl src 132.3.233.234/32
acl myacl2 src 181.71.122.114/32
acl myacl3 src 123.133.121.231/32
acl myacl4 src 150.83.154.37/32
http_access allow myacl
http_access allow myacl2
http_access allow myacl3
http_access allow myacl4
http_access deny all
# プロキシサーバーを使用している端末のローカルIPアドレスを隠蔽化
forwarded_for off
# プロキシ経由でアクセスしていることをアクセス先に知られないようにする
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all

http_portの設定とhttp_accessの設定を行います。
この例では、portを62288に設定しています。
許可するアクセス元は4つ設定しています。myacl1, myacl2, myacl3, myacl4が許可しているアクセス元IPアドレスで、132.3.233.234/32のように設定しています。あなたのIPアドレス+ /32と書けばOKです。/32がわからない方はCIDR 表記についてググってください。/32と書けばそのIPアドレスのみ許可するという意味なので、気にしないでも全く問題ありません。

ターミナル sudo service squid restart

コメント