1
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を使ってAWS EC2インスタンスで検証用BASIC認証入りプロキシサーバーを作成する【Windows】

Posted at

やりたいこと

・機能検証のためプロキシ経由の動作確認をしたい
・そのため何かしらてきとうなプロキシサーバーを用意したい
・ついでにBASIC認証も確認した

注意

・機能開発などの検証用なのでIP絞ったり厳しさはない
・フォワードプロキシのみ
・実運用のためならもっといろいろ必要

設定手順

1. インストールするSquidを用意する

公式サイトはここらしい?

で、ダウンロードしようと辿っていくと、ここから落とせるっぽい

MSI形式でダウンロードしておく
「Web Proxy for Windows」ではなく、
「Squid for Windows」からでないといけない(1敗)

2. AWS EC2を立ち上げる

検証用なのでメモリもドライブ容量も小さくていい
手持ちにある適当なストレージが小さいAMIをt2.mediumで起動

3. インスタンス内にSquidをインストールする

ライセンス同意をして、後続はデフォルトのままインストール
Windowsサービスに「Squid for Windows」という名前で登録される
デフォルトでインストールしているならば「C:\Squid」以下に色々入ってる

4. 一旦プロキシサーバーの完成

完走した感想ですが、特に絞りもしないならインストールするだけで簡単
ポート番号はデフォルト「3128」なので、そこに投げればよい
「プロキシを通す」ことの確認だけであればこれで事足りる

5. お好みでSquidの設定変更をする

設定はC:\Squid\etc\squid\squid.confを変更すればOK
squid.confを変更後、登録しているサービスを再起動しないと反映されない

ポート番号を変更する

デフォルトのポート番号は「3128」
http_portの項目を変更すれば好きなポート番号にできる

デフォルトでのログ類の出力先

C:\Squid\var\log\squid以下に出力される
「cache」はサービス自体の起動ログなど、
「access」はSquidを経由した通信ログが表示される

専用のキャッシュフォルダを用意する

いろんなサイトを参考にするとよく作られている
初期ではsquid.confの下の方で
#cache_dir aufs /cygdrive/d/squid/cache 3000 16 256
と、作成先はD:¥squid\cacheだが、コメントアウトされている
cache_dir aufs /cygdrive/c/squid/cache 3000 16 256
とすれば、インストールしているC:\Squid以下に吐き出せるらしい
自力でフォルダを作成できなさそうなのでcacheフォルダを作ってあげる
が、してみたけど出てこなかった

6. proxy接続時に認証情報を必要にする

squid.confの書き換えとBASIC認証用ファイルの作成が必要

squid.confの書き換え

http_access allow localnetをコメントアウトする
・以下を# Recommended minimum Access Permission configuration:の上くらいに追記する

auth_param basic program c:/Squid/lib/squid/basic_ncsa_auth.exe c:/Squid/etc/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication!
auth_param basic credentialsttl 5 hours
auth_param basic casesensitive off
acl auth proxy_auth REQUIRED
http_access allow auth

参考サイト

BASIC認証用のファイル作成

パスワード用ファイルを作成するにはApacheなどが必要
ということで以下サイトからApacheを落としてきた

解凍してhttpd-2.4.63-250207-win64-VS17\Apache24\bin\htpasswd.exeを使う
コマンドプロンプトからbinフォルダをカレントディレクトリにして
htpasswd -c [ファイル名] [ユーザー名]
と実行。するとパスワードを2回聞かれるのでそれぞれ入力すると、指定した[ファイル名]のパスワードファイルが作成される
今回は「passwd」というファイル名で作成してc:/Squid/etcに配置する
ファイルの中身は
ユーザー名:hash化されたパスワード
の形式なので、hash化ができれば手でも作れるはず

参考サイト

BASIC認証エラーの解消

Squidを再起動したところ、ログに大量にエラーが吐かれ続けた
C:/Squid/lib/squid/basic_ncsa_auth.exe: error while loading shared libraries: cygcrypt-2.dll: cannot open shared object file: No such file or directory
と出ており、cygcrypt-2.dllが足りないらしい

を参考にして、cygcrypto-2.dllを手動でC:\Squid\lib\squidに配置することで該当のエラーログは吐かれなくなった

basic_ncsa_auth.exeが起動しないログ

helperOpenServers: No 'basic_ncsa_auth.exe' processes needed.
とログに出ており、BASIC認証に必要なexeが起動してくれなさそうなエラーが出ている
のだが、BASIC認証はできるようなので無視して構わなさそう

7. BASIC認証プロキシサーバーの完成

以上で、接続時にID/PASSを求められるようになる

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