この記事は
イカです
Dockerコンテナを使って、Win11マシンにローカルプロキシをつくる
プロキシはSquid(イカ)を採用する
キャプチャ元: Dockerハブubuntu/squid
検証内容
ローカルプロキシのアクセス制御の機能を使って、ウェブサイトへのアクセス制限をかける
「サイトAにはアクセスできるが、サイトBにはアクセスできない」といった制御をする
(例)Google検索はできるが、Yahooポータルにはアクセスできないような制御
Dockerコンテナの用意
ubuntu
のイメージをプルしておく
docker pull ubuntu
Dockerコンテナを起動する
コンテナを起動する際、ポートはlocalhost:63128
を割り当てる
Winマシンからこのポートにアクセスすると、コンテナのSquidを経由してインターネットに出ていく
docker container run -itd --privileged --hostname SquidContainer --name squid-container -p 63128:3128 ubuntu:latest
コンテナの中に入る
docker exec -it squid-container /bin/bash
必要なパッケージをインストールする
主役のsquid
をインストールする
ついでに.config
ファイルを変更するためのエディタvim
もインストールしておく
apt update
apt install -y squid vim
Squidの設定
/etc/squid/squid.conf
ファイルに2行追記する
+ acl google dstdomain .google.co.jp
+ http_access allow google
http_access allow localhost
# And finally deny all other access to this proxy
http_access deny all
Googleのドメインにはアクセスできるが、他はすべて拒否deny
される設定とした
設定を反映するために、サービスを再起動する
service squid restart
最後に OK が表示されれば正常完了
リスタートまで数秒はかかる
root@SquidContainer:/# service squid restart
* Restarting Squid HTTP Proxy squid
* ...
* ...
* ...
* ...
* ...
* ... [ OK ]
2023/05/20 06:02:51| WARNING: BCP 177 violation. Detected non-functional IPv6 loopback.
[ OK ]
OKではなくfailが表示されたらコンフィグの中身を再点検する
ホストマシンのプロキシを変更する
Win11のプロキシを変更する
「Windows ロゴ」を押して「プロキシの設定」で検索する
http://localhost:63128
をプロキシに設定する
イントラネットはプロキシを介さないようにする
「保存」を押してダイアログを閉じる ※再起動する必要はない
ローカルプロキシの動作確認
まずはGoogle検索のページにアクセスする
ブラウザの余計な機能を無視するためにプライベートブラウジングする
Google検索結果は表示される
次にQiitaへアクセスする
QiitaドメインはSquidで許可していないため、アクセスできない
これは意図した結果なので、動作確認はOK
まとめ
Squidを使ってローカルプロキシをつくった
プロキシが持つ機能により、アクセス制御をすることができた
参考
↓特定のクライアントのみアクセスを許可する方法