AWS 技術情報

Lightsailでプロキシサーバーを立ててみた

今回は、AWSのLightsailで簡単にプロキシサーバーを立ち上げてみましたので、その手順を書いてみたいと思います。

今回構築する環境

今回構築する環境はこちらです。

AWS Lightsail Ubuntu 22.04 LTS

スペック 512 MB RAM / 2 vCPUプラン
→月額$5のプランです。(月額約750円程度)

ライトなプロキシサーバーを立てて、ちょっとしたホワイトリスト環境で動作確認したいときとか、テスト利用するには十分なスペックかと思います。

インスタンスの起動

まず、AWSでLightsailのインスタンスを立ち上げます

Lightsailの画面から、Linux/Unix の Ubuntu 22.04 LTS を選択します。

スペックは 512 MB RAM / 2 vCPU の環境を選択しました。
月額$2追加するだけで、倍のメモリになるので、コスパとしては$7のプランの方がいいと思いますが、今回はあえてチープな環境を選択しました。

Lightsailは、EC2の構築と違ってネットワーク転送(今回の場合は1TB)もセットなのが嬉しいポイントですね。

インストール

Lightsailが立ち上がったら、インスタンスに接続して各種インストールを行います。

パッケージのアップデート

まずはOS関連のアップデートを行っておきます。

sudo apt update && sudo apt upgrade -y

実行して暫くすると、以下のPackage configuration画面が表示されますが、とりあえずそのまま[Enter]します。
(環境作成中なので、別に再起動も何でもOKですしね)

Squidのインストール

次に、Linuxで使えるプロキシサーバー用のソフトウェアである、Squid(スキッド)をインストールします。

sudo apt install squid -y

こちらもまたPackage configuration画面が表示されますが、やはりそのまま[Enter]です。

設定

プロキシサーバーのプログラムのセットアップが終わったので、今度は設定です。

設定ファイルのバックアップ

デフォルト状態ですけど、元の設定のバックアップをしておきましょう。

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak

設定ファイルの編集

Squidの設定ファイルをいじります。

sudo nano /etc/squid/squid.conf

とりあえず最小構成は以下みたいな感じですかね。
動作確認の為、まずは最小構成で試してみるのがいいかと思います。

http_port 3128

acl all src all
http_access allow all

ポイント

面倒だったらこんなコマンドもあり

sudo tee /etc/squid/squid.conf > /dev/null <<EOF
http_port 3128

acl all src all
http_access allow all
EOF

再起動で反映

プロキシサーバーを再起動させて、設定を反映させます。

sudo systemctl restart squid

念のための確認(構文エラーないかチェック)

ここで一旦、動作確認をしておきましょう。

sudo squid -k parse

Processing: http_port 3128
http_access allow all

となっていれば、うまく設定を読み込めてますかね。

IPv6の警告が出たりしますが、とりあえずシンプルなプロキシサーバーの構築なので、無視でOKかと思います。

ネットワーク設定

ファイアウォールの設定

AWS側のLightsailの画面に戻り、ネットワークの設定を行います。

ファイアウォールで3128ポートを許可します。
※デフォルトだと以下のようになっていると思います。

こちらを、以下のように3128ポートを追加します。

静的IPの設定

もし固定でしっかりと静的IPを指定するなら、このタイミングで指定しておきます。
(以下は静的IPを設定する前のIPなので、そのまま隠さずに表示しています)

少しの間、テスト的に動作させるだけであれば、このまま振られたIPを利用しても十分かと思います。

動作確認

プロキシサーバーの設定が終わったので、動作確認をします。

curlコマンドでの確認

Linuxなら、curlコマンドで確認するのが楽でしょうか。

curl -x http://<静的IPアドレス>:3128 http://checkip.amazonaws.com/

ブラウザでの確認

ブラウザで確認するという方法もあります。

Chromeのショートカットのリンク先の末尾に、以下のパラメータを追加すると、このショートカットで起動したブラウザはプロキシ経由で接続することができます。

--proxy-server="http=<静的IPアドレス>:3128;https=<静的IPアドレス>:3128" --profile-directory="Default"

あとはこのショートカットから起動したブラウザで、以下のようなサイトでグローバルIPを確認して、AWSの静的IPになっていれば成功です。

 

その後にやっておく事

上記は、あくまで最低限のプロキシサーバーの構築(Squidの設定)となっております。

IPで制限をかけたり、ベーシック認証を通したり、海外からのアクセスはブロックしたりと、必要に応じて設定をしましょう。
(この時点で動作確認できているので、あとは制限をかける都度、動作チェックをするといいかと思います)

注意

今回利用した Lightsail の 512 MB RAM / 2 vCPUプランは、かなりチープな環境です。

セキュリティの構成をするだけでも、依存関係が多いパッケージだったりすると、メモリのスワップがない為に、メモリ不足で強制終了することがあります。

その場合は、インストール前にはスワップ領域を作ったりして回避するようにご注意ください。

株式会社OZでは、他の方達にも有益と思われる情報は、社内ナレッジに留めず、積極的に情報公開するという方針をとっております。
株式会社OZをよろしくお願いします!

-AWS, 技術情報
-,