〜 プロキシサーバーを通じて安全・効率的なネットワーク通信を実現 〜
目次
📌 概要
Squid は、Webアクセスを中継・キャッシュする プロキシサーバー です。ネットワークの通信制御、キャッシュによる高速化、ユーザー認証、フィルタリングなどに活用されます。
本記事では、以下のスキルを習得できます:
- Squid のインストールと設定
- ACLや http_access によるアクセス制御
- ユーザー認証の設定
- リソース利用制限の基本
🛠 1. Squidのインストール
Debian/Ubuntu 系:
sudo apt update
sudo apt install squid
RHEL/CentOS 系:
sudo dnf install squid
📁 2. 基本構成と設定ファイル
🔧 主な設定ファイル
| パス | 説明 |
|---|---|
/etc/squid/squid.conf | メイン設定ファイル |
/var/log/squid/ | ログディレクトリ |
/etc/squid/passwd | ユーザー認証用ファイル(Basic認証) |
✅ 設定反映と操作コマンド
| 操作 | コマンド例 |
|---|---|
| 設定ファイルの構文チェック | squid -k parse |
| 再起動 | systemctl restart squid |
| ステータス確認 | systemctl status squid |
📄 3. squid.confの基本構成
Squidの設定は非常に柔軟ですが、以下のような構成が一般的です。
# ポート番号(デフォルトは3128)
http_port 3128
# アクセス制御リストの定義(ACL)
acl allowed_network src 192.168.1.0/24
# アクセス許可
http_access allow allowed_network
# すべてのその他アクセスを拒否
http_access deny all
🧱 4. ACLとhttp_accessの基本
🔹 ACL(アクセス制御リスト)の定義方法
acl <名前> <タイプ> <値>
主なACLタイプの例
| タイプ | 例 | 意味 |
|---|---|---|
src | 192.168.1.0/24 | アクセス元のIPアドレス |
dst | example.com | 宛先 |
port | 80 | ポート番号 |
url_regex | youtube | URL内の文字列一致 |
time | MTWHF 08:00-18:00 | 曜日と時間制限 |
🔹 http_accessの記述
ACLで定義したルールに基づきアクセスを「allow」「deny」します。
http_access allow work_hours_users
http_access deny all
※ 最後に http_access deny all を記述しておかないと、無制限で通過します。
🔐 5. 認証(Basic 認証)の設定
① 認証ヘルパー設定
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic realm Squid Proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
② ユーザー追加(htpasswdで生成)
sudo apt install apache2-utils # Debian系なら必要
sudo htpasswd -c /etc/squid/passwd user1
📊 6. squidclientでの管理
squidclient コマンドを使うと、Squid に対する統計・管理操作が可能です。
squidclient mgr:info # Squidの基本情報を取得
squidclient mgr:client_list # クライアント一覧
⚙️ 7. その他の代表的な設定
🔹 キャッシュディレクトリの設定
cache_dir ufs /var/spool/squid 100 16 256
ufs:キャッシュ方式100:キャッシュサイズ(MB)16,256:ディレクトリ構造
🔹 ログ設定
access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
✅ まとめ表
| 項目 | 設定ファイル・コマンド | 説明 |
|---|---|---|
| ポート番号 | http_port 3128 | プロキシの待受ポート |
| ACL設定 | acl 行 | アクセス元・時間などを制御 |
| アクセス制御 | http_access allow | ACLに基づき許可・拒否 |
| ユーザー認証 | auth_param, proxy_auth | Basic認証で制限 |
| クライアント管理 | squidclient | ステータス取得 |
コメント