AWSのEC2でプロキシサーバをたててみた話
こんにちは、よもぎです٩(๑òωó๑)۶
最近は卒業研究をゆっくり進めつつも、院試勉強やらないと院死しちゃうなぁとぼんやりと物思いにふける日々です。 健康の重要性! みたいなかんじでちょっと運動したり*1遊んだりしてます。*2平日はラボにインできているので、及第点と私の中で勝手に思っています。
今回はとある事情で「あっ! プロキシサーバが欲しい」となったのですが、自宅にサーバは置いていないし、どこかのレンタルサーバをもとから利用しているわけではありませんでした。 そこで、以前🍯をたてる際に利用したAWSのEC2を用いて、プロキシサーバをたててみようと思いました。
この機会に🍯用のEC2インスタンスを終了させてしまいました。*3 ✞R.I.P. → 🍯✞
プロキシサーバを立てる前の話
プロキシサーバって?
((今回に関して言えばという話なので、一般的な話じゃないです(´ . .̫ . `)))
接続元IPアドレスやそこからわかる接続元の地域を、直接 相手に知られたくない! なんてこと一度や二度思ったことあったりしませんか? ないですか。
今回は、 間に一つサーバを挟むことによって、接続先にはあたかも(間にある)サーバからアクセスしてきたみたいに見せようと思うのです。
こういった役割の持つサーバをプロキシサーバと言って、日本では串と言ったりすることもあるみたいです。
どんな環境でやるの?
だいたいこんな感じ
項目 | 利用したもの | 備考 |
---|---|---|
AWS | EC2 | リージョンは北カルフォルニア |
OS | Amazon Linux 2 | 試しにと思って使ってみる |
インスタンスタイプ | t2.micro | 無料枠で使えるので |
ストレージ | 10GB | まあプロキシサーバとしてしか 使わないつもりなので |
プロキシソフト | squid | マルチプラットホーム! |
立ててみる
squid のインストール
とりあえずキーペアをダウンロードして、 chmod 400
しちゃいます。
そしてsshでつないじゃいます。
$sudo chmod 400 example.pem $ssh -i example.pem ec2-user@xxx.xxx.xxx.xxx __| __|_ ) _| ( / Amazon Linux 2 AMI ___|\___|___| https://aws.amazon.com/amazon-linux-2/ 1 package(s) needed for security, out of 1 available Run "sudo yum update" to apply all updates. [ec2-user@example ~]$
インストールしようとしたら、
[ec2-user@example ~]$ sudo yum install squid # 中略 exiting because "Download Only" specified squid is available in Amazon Linux Extra topic "squid4" To use, run # sudo amazon-linux-extras install squid4 Learn more at https://aws.amazon.com/amazon-linux-2/faqs/#Amazon_Linux_Extras
と言われてしまったので sudo amazon-linux-extras install squid4
してみます。
amazon linux 2ではパッケージ管理にamazon-linux-extrasを使うみたいな感じなのでしょうか。
[ec2-user@example ~]$ sudo amazon-linux-extras install squid4 Installing squid 読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd リポジトリーを清掃しています: amzn2-core amzn2extra-docker amzn2extra-squid4 10 個の metadata ファイルを削除しました 4 個の sqlite ファイルを削除しました 0 個の metadata ファイルを削除しました 読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd amzn2-core | 2.4 kB 00:00:00 amzn2extra-docker | 1.3 kB 00:00:00 amzn2extra-squid4 | 1.3 kB 00:00:00 (1/5): amzn2-core/2/x86_64/group_gz | 2.4 kB 00:00:00 (2/5): amzn2-core/2/x86_64/updateinfo | 107 kB 00:00:00 (3/5): amzn2extra-docker/2/x86_64/primary_db | 51 kB 00:00:00 (4/5): amzn2extra-squid4/2/x86_64/primary_db | 5.1 kB 00:00:00 (5/5): amzn2-core/2/x86_64/primary_db | 29 MB 00:00:00 依存性の解決をしています # 中略 --> 依存性解決を終了しました。 依存性を解決しました ========================================================================================================= Package アーキテクチャー バージョン リポジトリー 容量 ========================================================================================================= インストール中: squid x86_64 7:4.4-4.amzn2.0.4 amzn2extra-squid4 3.4 M 依存性関連でのインストールをします: libatomic x86_64 7.3.1-5.amzn2.0.2 amzn2-core 40 k libecap x86_64 1.0.0-1.amzn2.0.2 amzn2-core 21 k libtool-ltdl x86_64 2.4.2-22.2.amzn2.0.2 amzn2-core 49 k perl-Business-ISBN noarch 2.06-2.amzn2 amzn2-core 25 k perl-Business-ISBN-Data noarch 20120719.001-2.amzn2 amzn2-core 24 k perl-Compress-Raw-Bzip2 x86_64 2.061-3.amzn2.0.2 amzn2-core 32 k perl-Compress-Raw-Zlib x86_64 1:2.061-4.amzn2.0.2 amzn2-core 58 k perl-DBI x86_64 1.627-4.amzn2.0.2 amzn2-core 804 k perl-Data-Dumper x86_64 2.145-3.amzn2.0.2 amzn2-core 48 k perl-Digest noarch 1.17-245.amzn2 amzn2-core 23 k perl-Digest-MD5 x86_64 2.52-3.amzn2.0.2 amzn2-core 30 k perl-Digest-SHA x86_64 1:5.85-4.amzn2.0.2 amzn2-core 59 k perl-IO-Compress noarch 2.061-2.amzn2 amzn2-core 260 k perl-Net-Daemon noarch 0.48-5.amzn2 amzn2-core 51 k perl-PlRPC noarch 0.2020-14.amzn2 amzn2-core 36 k perl-URI noarch 1.60-9.amzn2 amzn2-core 107 k トランザクションの要約 ========================================================================================================= インストール 1 パッケージ (+16 個の依存関係のパッケージ) 合計容量: 5.0 M 総ダウンロード容量: 3.6 M インストール容量: 15 M Is this ok [y/d/N]: y Downloading packages: (1/6): perl-Business-ISBN-2.06-2.amzn2.noarch.rpm | 25 kB 00:00:00 (2/6): libatomic-7.3.1-5.amzn2.0.2.x86_64.rpm | 40 kB 00:00:00 (3/6): perl-Business-ISBN-Data-20120719.001-2.amzn2.noarch.rpm | 24 kB 00:00:00 (4/6): perl-Digest-SHA-5.85-4.amzn2.0.2.x86_64.rpm | 59 kB 00:00:00 (5/6): perl-URI-1.60-9.amzn2.noarch.rpm | 107 kB 00:00:00 (6/6): squid-4.4-4.amzn2.0.4.x86_64.rpm | 3.4 MB 00:00:00 --------------------------------------------------------------------------------------------------------- 合計 8.2 MB/s | 3.6 MB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : perl-Data-Dumper-2.145-3.amzn2.0.2.x86_64 1/17 # 中略 検証中 : 1:perl-Digest-SHA-5.85-4.amzn2.0.2.x86_64 17/17 インストール: squid.x86_64 7:4.4-4.amzn2.0.4 依存性関連をインストールしました: libatomic.x86_64 0:7.3.1-5.amzn2.0.2 libecap.x86_64 0:1.0.0-1.amzn2.0.2 libtool-ltdl.x86_64 0:2.4.2-22.2.amzn2.0.2 perl-Business-ISBN.noarch 0:2.06-2.amzn2 perl-Business-ISBN-Data.noarch 0:20120719.001-2.amzn2 perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.amzn2.0.2 perl-Compress-Raw-Zlib.x86_64 1:2.061-4.amzn2.0.2 perl-DBI.x86_64 0:1.627-4.amzn2.0.2 perl-Data-Dumper.x86_64 0:2.145-3.amzn2.0.2 perl-Digest.noarch 0:1.17-245.amzn2 perl-Digest-MD5.x86_64 0:2.52-3.amzn2.0.2 perl-Digest-SHA.x86_64 1:5.85-4.amzn2.0.2 perl-IO-Compress.noarch 0:2.061-2.amzn2 perl-Net-Daemon.noarch 0:0.48-5.amzn2 perl-PlRPC.noarch 0:0.2020-14.amzn2 perl-URI.noarch 0:1.60-9.amzn2 完了しました! 0 ansible2 available [ =2.4.2 =2.4.6 ] 2 httpd_modules available [ =1.0 ] 3 memcached1.5 available [ =1.5.1 ] 4 nginx1.12 available [ =1.12.2 ] 5 postgresql9.6 available [ =9.6.6 =9.6.8 ] 6 postgresql10 available [ =10 ] 8 redis4.0 available [ =4.0.5 =4.0.10 ] 9 R3.4 available [ =3.4.3 ] 10 rust1 available \ [ =1.22.1 =1.26.0 =1.26.1 =1.27.2 =1.31.0 ] 11 vim available [ =8.0 ] 13 ruby2.4 available [ =2.4.2 =2.4.4 ] 15 php7.2 available \ [ =7.2.0 =7.2.4 =7.2.5 =7.2.8 =7.2.11 =7.2.13 =7.2.14 =7.2.16 ] 16 php7.1 available \ [ =7.1.22 =7.1.25 =7.1.27 ] 17 lamp-mariadb10.2-php7.2 available \ [ =10.2.10_7.2.0 =10.2.10_7.2.4 =10.2.10_7.2.5 =10.2.10_7.2.8 =10.2.10_7.2.11 =10.2.10_7.2.13 =10.2.10_7.2.14 =10.2.10_7.2.16 ] 18 libreoffice available [ =5.0.6.2_15 =5.3.6.1 ] 19 gimp available [ =2.8.22 ] 20 docker=latest enabled \ [ =17.12.1 =18.03.1 =18.06.1 ] 21 mate-desktop1.x available [ =1.19.0 =1.20.0 ] 22 GraphicsMagick1.3 available [ =1.3.29 ] 23 tomcat8.5 available \ [ =8.5.31 =8.5.32 =8.5.38 ] 24 epel available [ =7.11 ] 25 testing available [ =1.0 ] 26 ecs available [ =stable ] 27 corretto8 available [ =1.8.0_192 =1.8.0_202 ] 28 firecracker available [ =0.11 ] 29 golang1.11 available [ =1.11.3 ] 30 squid4=latest enabled [ =4 ] 31 php7.3 available [ =7.3.2 =7.3.3 ] 32 lustre2.10 available [ =2.10.5 ] 33 java-openjdk11 available [ =11 ] 34 lynis available [ =stable ]
ながながと貼り付けてしまいましたが、こんな感じでインストールできました。
squidの設定〜動かす
あとは、このsquidの設定ファイル squid.conf
をいじいじします
# 略 # And finally deny all other access to this proxy # http_access deny all # ここは#をつけてコメントアウト #以降は追記 acl myacl src all http_access allow myacl http_access deny all forwarded_for off request_header_access X-Forwarded-For deny all request_header_access Via deny all request_header_access Cache-Control deny all
最後に
[ec2-user@example ~]$ sudo service squid start Redirecting to /bin/systemctl start squid.service [ec2-user@example ~]$ sudo chkconfig squid on 情報:'systemctl enable squid.service'へ転送しています。 Created symlink from /etc/systemd/system/multi-user.target.wants/squid.service to /usr/lib/systemd/system/squid.service.
おそらくこれで動きます。
サーバへのアクセス制御
AWSのEC2管理画面からセキュリティグループのインバウンド設定を編集して、それでいいやってな。りました
なので、インスタンスのiptablesとかufwとかは触ってません。
動いた(๑•̀ㅂ•́)و✧
終わりに
squidの設定でいろいろ頭抱えたけれども、なんとか動きました。 これで安心してやばめなサイトとかにアクセスできますね(/・ω・)/
こちらのサイト様を参考にさせていただきました。 この場を借りてお礼申し上げます