こんにちは。
今回はインフラ系の記事を書きたいと思います。難しそうに見えて実は超簡単なプロキシサーバー構築。
慣れれば三分で構築できます。
「上司にプロキシ構築しといて~」と言われてちゃちゃっとできたらかっこいいですよね!
ではやってみましょう!
#前提条件
EC2インスタンス上に構築します。
OS:Amazon Linux2
インスタンスタイプ:t2.small
使用するソフトウェア:Squid
・プロキシを構築するインスタンスがインターネットに接続されていることをpingコマンドやyum installコマンド等で確認します。
・プロキシサーバーにElastic IPを割り当てる必要があるのであらかじめ取得して割り当てておきます。
(Elastic IPはこちらが参考になりますhttps://qiita.com/Jerid/items/d5dd3a29ed9a0e374493)
・プロキシ経由で転送するトラフィックのルートテーブルの宛先をプロキシのENIに変更しておきます。
#構築
$ sudo yum install squid
途中のy/nプロンプトはyで答えます。最後に以下のように表示されれば成功です!
Complete!
次に設定ファイルをいじります。/etc/squid/配下にあるsquid.confを開きます。
ここではacl(アクセスリスト)を設定できますが、今回はローカル通信は全許可でいきますのでそこはノータッチです。
必要に応じて待ち受けポートを変更します。デフォルトで3128となっていますが、一般的には8080を使用することが多いかと思います。
$ sudo cd /etc/squid
$ sudo cp squid.conf squid.conf.org //元のファイルのコピーを取っておきます
$ sudo vim squid.conf
ファイルの内容を次のように変更します。
#
# Recommended minimum configuration:
#
~
# And finally deny all other access to this proxy
http_access deny all
# Squid normally listens to port 3128
http_port 3128 //ここの数字を8080等に変更
# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/spool/squid 100 16 256
# 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
プロキシサーバーの設定はこれで完了です。つづいて、HTTP通信の送信元サーバーにログインし、プロキシ設定を行います。以下のようにファイルを作成しましょう。/etc/profile.d/配下のファイルはサーバー起動時に自動で実行されるファイル群です。
$ sudo cd /etc/profile.d/
$ sudo touch proxy.sh
$ sudo vim proxy.sh
次のように記述しましょう。
#!/bin/bash
export http_proxy=http://(プロキシサーバのプライベートIP):(待ち受けポート)
export https_proxy=http://(プロキシサーバのプライベートIP):(待ち受けポート)
export no_proxy=localhost,127.0.0.1
上のように記述したら、以下のコマンドを実行します。先ほども申し上げた通り、proxy.shはサーバー起動時にしか実行されないのでここで手動実行します。
$ sudo source /etc/profile.d/prosy.sh
あとは、送信元サーバーからcurlコマンド等実行してみて、返答があれば成功です。
$ curl https://www.google.com/
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="ja"><head><meta content="世
~以下略~