Raspberry Pi 5に Squid プロキシサーバーを構築する方法
Contents
はじめに
ラズベリーパイ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
正常にログが記録されていれば、設定は完了です。