Raspberry Pi 5に Squid プロキシサーバーを構築する方法

はじめに

ラズベリーパイ5に Squid を導入し、プロキシサーバーとして活用する方法について解説します。本記事では、インストールから設定、クライアント側の接続方法までを詳しく説明します。

Squid とは?

Squid はオープンソースのプロキシサーバーで、キャッシュ機能を活用して通信の効率化を図ることができます。また、ネットワークセキュリティの向上にも貢献します。

この記事での検証環境

ハードウェア:Raspberry Pi 5 Model B Rev 1.0

OS:Raspberry Pi OS(Debian GNU/Linux 12 bookworm)

Squid のインストール

まず、パッケージリストを更新し、Squid をインストールします。

sudo apt update
sudo apt install squid -y

次に、デフォルトの設定ファイルをバックアップしておきます。

sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak

Squid の設定

設定ファイル /etc/squid/squid.conf を編集し、ネットワーク環境に適した設定を行います。

sudo vi /etc/squid/squid.conf

ローカルネットワークの設定

デフォルトのローカルネットワーク設定を変更し、使用するネットワークだけを指定します。

筆者の場合、LANは192.168.1.**のIPを使用していますので、

localnetとして192.168.1.0/24を設定しています。

# デフォルトのローカルネットワーク設定をコメントアウト
#acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN)
#acl localnet src 10.0.0.0/8 # RFC 1918 local private network (LAN)
#acl localnet src 100.64.0.0/10 # RFC 6598 shared address space (CGN) 
#acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) 
machines 
#acl localnet src 172.16.0.0/12 # RFC 1918 local private network (LAN) 
#acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN) 
#acl localnet src fc00::/7 # RFC 4193 local private network range 
#acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged)

# 使用するネットワークを指定
acl localnet src 192.168.1.0/24

許可するポートの設定

利用するポートを定義し、不要なポートの設定を削除します。

筆者は以下のポートのみ有効にし、それ以外のポートは全てコメントアウトしました。

acl SSL_ports port 443
acl Safe_ports port 80 # HTTP
acl Safe_ports port 443 # HTTPS

アクセス制御の設定

http_access allow localhost
http_access allow localnet
http_access deny all

この設定により、ローカルネットワークと localhost からの接続のみを許可し、それ以外の接続を拒否します。

要するに自宅のLAN以外のアクセスは認めない設定です。

今回の設定はあくまで基本的な内容に過ぎませんので、WAN側(インターネット側)からのアクセスは非推奨です。

Squid のリスニングポートの設定

デフォルトの 3128 ポートは攻撃対象になりやすいため、変更を推奨します。

http_port 3128

必要に応じて 3128 を他のポート(例:8080)に変更してください。

Squid の再起動

設定を変更したら、Squid を再起動します。

sudo systemctl restart squid

クライアント側の設定

Windows や iPhone などのクライアントデバイスでプロキシ設定を行い、Raspberry Pi をプロキシサーバーとして指定します。

  • アドレス: Raspberry Pi の IP アドレスまたはドメイン

  • ポート: http_port で設定したポート番号

動作確認

クライアント側から通信が行われているか、ラズベリーパイ5上でログを確認します。

tail -f /var/log/squid/access.log

正常にログが記録されていれば、設定は完了です。