
Squidで検証用のプロキシを作ってみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは。AWS事業本部のKyoです。
プライベートサブネット(NAT無し)でEC2のセットアップをしなければならない。そんな状況がありました。
利用するOSはAmazon Linux2。...それならこの方法ですね。
【小ネタ】えっ、Private SubnetからNATサーバを経由せずにyum updateができるって!?
...え、wgetとかcurlとかも必要...?
あ、本番環境にはプロキシサーバがあるんですね。
じゃあ検証にもプロキシがほしい! そんな流れでSquidを使って検証用のプロキシを立ててみることにしました。
なお、今回はなるべく簡単に検証することが目的でしたので、本番利用の際には設定等ご注意ください。
構成図
t2.microのAmazon Linux2のEC2インスタンスをパブリックサブネットとプライベートサブネットにそれぞれ1台づつ構築しました。
以降、パブリックサブネットのインスタンスをproxy、プライベートサブネットのインスタンスをclientと呼びます。
セキュリティグループはproxyに3128のインバウンドを許可。両方にSSH用の22のインバウンドを許可してあります。
※ Squidの利用するデフォルトのポート。Squidのインストール時に変更する場合は、セキュリティグループも変更してください。
proxyへのSquidのセットアップ
proxyにSSHしてSquidのセットアップを行います。
まずyumでインストールを行います。
sudo yum update sudo yum install squid
バージョンを確認してインストール出来ていることを確認します。
今回は3.5.20でした。
squid -v
Squid Cache: Version 3.5.20 (以下略)
本番環境で利用するのであれば、/etc/squid/squid.confを修正しますが、今回は検証目的のためデフォルトで利用しました。
Squidの自動起動設定を行い、リスタートします。
sudo systemctl enable squid sudo systemctl restart squid
Squidがポート3128を使用していることを確認します。
sudo lsof -i:3128
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME squid 21800 squid 11u IPv6 37157 0t0 TCP *:squid (LISTEN)
Squidの設定は以上です。
clientへのセットアップ
proxyを踏み台にプライベートIPでclientにSSHします。
それぞれの設定ファイルにプロキシの設定を記入します。
※3128以外のポートを利用している場合は適宜変更してください。
yum
proxy=http://<proxyのプライベートIP>:3128
wget
http_proxy=http://<proxyのプライベートIP>:3128 https_proxy=http://<proxyのプライベートIP>:3128
curl
proxy=http://<proxyのプライベートIP>:3128
おわりに
Squidでサクっとプロキシを立てて使う、ということをやってみました。
特にハマりどころもなかったので、プロキシを使う予定があるけどハードルを感じている方がいらっしゃいましたら検証用として是非お試しください。
以上、何かのお役に立てれば幸いです。








