0
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?

AzureVM (Windows) と Squid でプロキシサーバを構築してみた

Posted at

はじめに

AzureVM (Windows) と Squid を使用してプロキシサーバを構築してみました。
以下のような構成イメージとなります。

image.png

リソース作成から疎通確認までの一連の流れとつまづいたポイントを記載していきます。

Squidについて

以下、ウィキペディアからの引用となります。

Squid(スクウィッド)はプロキシ (Proxy) サーバ、ウェブキャッシュサーバなどに利用される自由ソフトウェア。

Linux環境向けのソフトウェアのようですが、Windows版もあり、今回はそちらを使用いたします。

作成リソースについて

今回はAzure Portalから作成しました。参考までに各リソースの主要なパラメータの設定値を載せておきます。

  • 仮想ネットワーク
パラメータ名 設定値の例
仮想ネットワーク名 vnet_on-premises
リージョン Japan East
アドレス範囲 10.0.0.0/24
サブネット① subnet_proxy
サブネット①範囲 10.0.0.0/28
サブネット② subnet_client
サブネット②範囲 10.0.0.16/28
  • 仮想マシン
パラメータ名 設定値の例(仮想マシン①) 設定値の例(仮想マシン②)
仮想マシン名 vm-proxy vm-client
リージョン Japan East Japan East
イメージ Windows Server 2022 Windows Server 2022
サイズ Standard_B2als_v2 Standard_B2als_v2
パブリック受信ポート 選択したポートを許可する 選択したポートを許可する
受信ポートを選択 RDP RDP
仮想ネットワーク vnet_on-premises vnet_on-premises
サブネット subnet_proxy subnet_client
パブリックIP vm-proxy-ip vm-client-ip
  • NSG:VM(NIC)とサブネット両方にそれぞれ紐づける

つまづいたポイント
仮想マシンの設定で「自動シャットダウンを有効する」というパラメータがあります。こちらを有効にしてデプロイしたところ、以下のようなエラーが発生しました。

{"code":"AuthorizationFailed","message":"オブジェクト ID が 'xxx' のクライアント 'xxx' には、スコープ 'xxx' でアクション 'Microsoft.DevTestLab/register/action' を実行する認可がないか、スコープが無効です。アクセスが最近許可された場合は、資格情報を更新してください。

自動シャットダウンを有効にするにはAzure VM (Microsoft.Compute/virtualMachines) に対する権限だけではなく、Microsoft.DevTestLab/* に対する権限が必要なようでした。
詳細は以下のドキュメントをご確認ください。

https://jpdscore.github.io/blog/devtestlabs/auto-shutdown-permission/

プロキシ構築

基本的には以下の記事を参考に実施しました。

Windows版Squidのインストール

プロキシVM(vm-proxy)で、以下からインストーラーをダウンロードします。

image.png

インストーラーを実行して、既定のままインストールを進めていきます。

image.png

ディスクキャッシュを有効化やポートの変更等は特にしていないです。変更する場合は、上述に貼付している参考記事をご参照ください。

プロキシサーバ上での動作確認

プロキシVM(vm-proxy)上で動作確認を行います。コマンドプロンプトで以下のコマンドを実行します。

curl https://www.yahoo.co.jp -x http://localhost:3128 -v

「HTTP/1.1 200 Connection established」と表示されているのでうまくいっていそう。

image.png

クライアントサーバ上での動作確認

クライアントVM(vm-client)上で動作確認を行います。
まずは、「設定」 > 「ネットワークとインターネット」 > 「プロキシ」 で以下のようにプロキシを設定します。

image.png

次に、コマンドプロンプトで以下のコマンドを実行してみましたが、エラーとなってしまいました。

curl https://www.yahoo.co.jp -x http://<プロキシVMのプライベートIP>:3128 -v

エラーの原因はプロキシVMのファイアウォールの受信規則が足りていないためでした。
「セキュリティが強化された Windows Defender ファイアウォール」 > 「受信の規則:Squid Cache Server」 > 「スコープ」 > 「リモートIPアドレス」 でクライアントVM(サブネット範囲)のIPを追加します。

image.png

クライアントVMで再度コマンドを実行したところ成功しました。

image.png

また、インターネットに接続しているIPアドレスを確認すると、プロキシVMのパブリックIPが表示されます。

image.png

Squidへの接続状況は「C:¥Squid\var\log\squid\access.log」に記録されるようです。

おわりに

ネットワークについては初学者なので、間違えている箇所もあるかもしれませんが、ご参考になれば幸いです。

0
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
0
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?