今回は、プロキシサーバーと言われるものを構築してみましょう。
【学習フェーズ】
自身でプロキシサーバーについて調べてみましょう。
1. プロキシサーバーとは?

プロキシ(Proxy) は「代理」を意味し、クライアントとインターネットの間に立って通信を仲介するサーバーです。
主な機能は次の 3 点です。
役割 | 具体例 | 企業ユースケース |
---|---|---|
通信制御 | ドメイン/URL フィルタリング、ユーザー認証 | 情報漏えい対策・業務外サイト遮断 |
キャッシュ | 取得済みコンテンツをディスクに保存し再利用 | 海外帯域が細い拠点での Web 表示高速化 |
可視化・監査 | アクセスログを保存・分析 | コンプライアンス監査、SOC へのログ転送 |
ユースケース
▸ 拠点ごとに出口 IP を一本化し FW ルールを簡素化
▸ 業務外サイトをカテゴリ単位でブロック
▸ 1 年分のアクセスログを S3+Athena で検索できるように保管
2. Squid の特徴
今回は、プロキシサーバーとして無料のSquidを利用します。
Squidには以下のような特徴があります。
項目 | 内容 |
---|---|
ライセンス | GPLv2(無償) |
対応プロトコル | HTTP / HTTPS(CONNECT) / FTP など |
キャッシュ | リクエスト単位で HIT / MISS 判定、ディスク・メモリキャッシュ両対応 |
アクセス制御 | ソース IP、URL パターン、時間帯、ユーザー認証(Basic, LDAP, Kerberos…) |
拡張性 | SSL Bump(TLS 復号・検査)、ICAP 連携、カスタムログ書式 |
[実践フェーズ]
今回は、以下のような構築を行います。

1. EC2(Amazon Linux 2023)を用意
設定 | 値 |
---|---|
インスタンスタイプ | t2.micro(無料枠相当) |
ポート | インバウンド TCP 22(SSH), 3128(Squid) ※3128 は 自宅/会社のグローバル IP のみ許可 |
# ① パッケージ更新と Squid インストール
sudo dnf update -y
sudo dnf install -y squid
# ② 設定ファイルに以下を追加
sudo vi /etc/squid/squid.conf
~~~抜粋~~~
http_port 3128 # ← port 指定(既存があれば確認だけでも可)
acl all src all # ← アクセス許可用 ACL(学習用なので全開放)
http_access allow all # ← ACL を許可
~~~ここまで~~~~
# ③ 起動と自動起動
sudo systemctl enable --now squid
sudo systemctl status squid
2. クライアント PC からテスト
# Mac / Linux 端末の場合
export http_proxy="http://<EC2のPublicIP>:3128"
curl http://example.com
# Windows PowerShellの場合
Invoke-WebRequest -Uri 'http://example.com' -Proxy 'http://<EC2のPublicIP>:3128'
<出力例>
StatusCode : 200
StatusDescription : OK
Content : <html> …(example.com の HTML 本文)… </html>
RawContentLength : 1256
Headers : {[Content-Type, text/html; charset=UTF-8], …}
成功すれば HTML が返り、EC2 側では
sudo tail -f /var/log/squid/access.log
に TCP_MISS/200
等が記録されます。