プロキシサーバーが欲しかったので、ベーシック認証付きのSquidサーバーを構築します。
Dockerで全て動かしたい人間なのでDockerを使っていきます!
それではやっていきましょう!
構築前の事前準備
Dockerで認証付きのSquidサーバーを構築する前に、事前準備が必要です。
- DockerとDocker Composeのインストール
- htpasswdを使用してpasswdファイルを作成する
DockerとDocker Composeのインストールに関しては、こちらの記事が役に立つと思います。
Squidサーバーの構築手順
Squidサーバーの構築手順を紹介します。
手順は以下の3ステップです。
- Squidサーバーを構築するcompose.ymlの作成
- Squidの設定ファイルであるsquid.confの作成
- SquidサーバーをDockerで起動
それぞれ解説していきます!
Squidサーバーを構築するcompose.ymlの作成
まずは、Docker Composeで構築できるように「compose.yml」を用意します。
services:
squid:
image: ubuntu/squid
ports:
- "3128:3128"
volumes:
- ./squid.conf:/etc/squid/squid.conf:ro
- ./passwd:/etc/squid/passwd:ro
restart: unless-stopped
簡単に内容を説明します。
イメージは「ubuntu/squid」を使用し、ポート3128で起動させています。
後々紹介する「squid.conf」と「passwd」を読み取り専用でマウントさせています。
これにより、設定と認証ファイルを読み込ませています。
最後に「unless-stopped」を使用し、コンテナが停止されない限り自動的に再起動します。
すごく単純なcompose.ymlだと思う!
Squidの設定ファイルであるsquid.confの作成
Squidの設定ファイルであるsquid.confも作成しましょう。
# 認証設定
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl authenticated proxy_auth REQUIRED
# アクセス制御
http_access allow authenticated
http_access deny all
# 基本設定
http_port 3128
簡単に内容を説明します。
認証方式は基本認証(Basic認証)を使用しています。
認証プログラムとして「/usr/lib/squid/basic_ncsa_auth」を使用し、パスワードファイルは「/etc/squid/passwd」に保存されています。
認証されたユーザーのみにアクセスを許可し、その他のすべてのアクセスは拒否されます。
最後に、基本設定でSquidプロキシサーバーは3128ポートでリッスンするように設定されています。
SquidサーバーをDockerで起動
最後は超簡単です。
compose.ymlのあるディレクトリで以下のコマンドを実行してください。
docker compose up -d
これでSquidサーバーの起動は完了しました!
お疲れ様でした!
【まとめ】Docker で簡単構築!認証付き Squid プロキシサーバー
ここまで読んでいただき、ありがとうございます!
この記事では、Docker を使用してベーシック認証付きの Squid プロキシサーバーを構築する方法をご紹介しました。
以下が主な要点です!
- Docker と Docker Compose のインストールが必要
- htpasswd を使用してパスワードファイルを作成
- compose.yml ファイルで Squid サーバーの設定を定義
- squid.conf ファイルで認証と基本設定を行う
- Docker Compose コマンドで簡単に起動
あなたも、以上の手順を参考に、自分専用の安全なプロキシサーバーを構築してみてください!
Docker の便利さを実感できるはずです。