3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

トラブルシュートのため、プロキシサーバ(Squid)をLinuxで立ててみた

Posted at

はじめに

プロジェクトの要件として、プロキシサーバを経由したインターネットアクセスはよくあるケースかと思います。
その際、AWSで言うとVPC Endpointなど、インターネットにアクセスさせたくない場合はNOPROXY設定を行ったりもすると思います。
自分もプロジェクトとして上記のような設定を行う必要がありました。しかしその中で、NOPROXY設定にしたいエンドポイントがなぜかプロキシサーバへ経由してしまうといったことがありました。
image.png

この時に困ったのが、なんのエンドポイントがプロキシサーバに行ってしまっているかがわからないということです。

プロキシサーバのログは実際に取得するとかなり時間がかかったりします。
早く調査したいのに、情シスを待たないと行けなかったりするなどもあったりしますよね。
そんなときのために、簡易プロキシサーバを立てることでログからエンドポイントを調べるということも可能です。
今回はsquidを使ってプロキシサーバのエンドポイントログを調査してみたので、その方法を共有できればと思います。

今回の構成

上記の構成より、本当に経由したいプロキシサーバを経由する前に、先に経由させるプロキシサーバをプライベートシステムと同じAWSアカウントに用意します。

image.png

用意されたEC2サーバに向けてプロキシ設定を行い、アクセスログより分析を行いました。

実際に立ててみる

EC2サーバ

今回は簡易的なサーバを立てるだけなのでスペック等は最小のもので大丈夫です。
squidのデフォルトポートは3128なので、下記設定が必要です。

・EC2のSecurityGroupでインバウンドルール追加、TCP 3128を許可。
・プライベートシステムでアウトバウンドルール追加、TCP 3128を許可。

image.png

Squidインストール

構築したEC2サーバにSSH接続で入ります。

   ,     #_
   ~\_  ####_        Amazon Linux 2023
  ~~  \_#####\
  ~~     \###|
  ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
    ~~~         /
      ~~._.   _/
         _/ _/
       _/m/'
[ec2-user@ip-xx-xx-xx-xx ~]$ sudo yum install -y squid
Amazon Linux 2023 Kernel Livepatch repository                                                                           192 kB/s |  28 kB     00:00
Dependencies resolved.
========================================================================================================================================================
 Package                               Architecture               Version                                         Repository                       Size
========================================================================================================================================================
Installing:
 squid                                 x86_64                     7:6.13-1.amzn2023.0.2                           amazonlinux                     3.5 M
Installing dependencies:
xxx
xxx
xxx
xxx
...
Complete!

[ec2-user@ip-xx-xx-xx-xx ~]$ sudo systemctl start squid
[ec2-user@ip-xx-xx-xx-xx ~]$ sudo systemctl enable squid

アクセスログの確認

sudo tail -f /var/log/squid/access.log

まとめ

私の場合、上記までスクリプトを実行することでプロキシサーバにどのようなアクセスが飛んでいるかを実際に確認することができ、原因究明・解決までたどり着くことが出来ました。

ネットワーク回り、特にプロキシサーバ関連についてはわかりにくいうえに調査に時間がかかったりということが多々あるかと思います。
クイックに情報収集し、分析・解消に努めるため、ぜひ上記のようなプロセスも選択肢に入れてみてはいかがでしょうか。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?