【ラズベリーパイ4】Squidでプロキシサーバを自作する方法

ラズベリーパイ4にSquidをインストールしてプロキシサーバを自作する方法をまとめました。

【はじめに】プロキシサーバーとSquidについて

プロキシサーバとは, インターネットへの接続を代理するサーバーのことです。
例えば, ラズベリーパイをプロキシサーバーにすると, 以下のような順でWindowsパソコンからインターネットに接続されます.

[Windows パソコン] –> [ラズベリーパイ(プロキシサーバー)] –> [家庭内ルーター] –> [インターネット]

●プロキシサーバーなしだと以下のようになる
[Windows パソコン] –> [家庭内ルーター] –> [インターネット]

プロキシサーバーでは, 代理するインターネット接続の通信ログを保存したり, ファイアウォールのように特定のドメインやポートの通信を許可・拒否することができる利点があります.
そのため社内PCがインターネットに接続する際には, セキュリティ向上のためプロキシサーバーを経由させることが多いです.

【プロキシサーバーの構築】Squidを使う方法

RaspberryPiをプロキシサーバーにする方法として、「Squid」というソフトウェアを使うのが手っ取り早いです.
導入方法は以下のとおりです.

● 以下の記事を参考に, ラズベリーパイのIPアドレスを固定します.

【ラズパイ4】IPアドレスを固定化する方法
ラズベリーパイ4でIPアドレスを固定化する方法をまとめました。

● RaspberryPiでターミナルを起動して以下のコマンドを実行してSquidをインストールします。

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install squid -y 

● 以下のコマンドを実行してsquidの設定ファイルを編集できるようにします.

sudo chmod 777 ./etc/squid/squid.conf

● 「./etc/squid/squid.conf 」をエディタで開いて以下のように編集します.

# ローカルネットワークの定義
acl localnet src 192.168.1.0/24 

#SSL接続時に 443 ポート以外の CONNECT を拒否
acl SSL_ports port 443
acl CONNECT method CONNECT
http_access deny CONNECT !SSL_ports

#接続先として指定されているポート以外を拒否
acl Safe_ports port 80    # http
acl Safe_ports port 21    # ftp
acl Safe_ports port 443   # https
acl Safe_ports port 70    # gopher
acl Safe_ports port 210   # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280   # http-mgmt
acl Safe_ports port 488   # gss-http
acl Safe_ports port 591   # filemaker
acl Safe_ports port 777   # multiling http
http_access deny !Safe_ports

#ローカルネットワークからのアクセスを許可
http_access allow localnet

#自身からのアクセスを許可
#http_access allow localhost

#basic認証の設定
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl pauth proxy_auth REQUIRED
http_access allow pauth

# キャッシュしないよう設定
no_cache deny all

# Squid が使用するポート
http_port 3128

# core 出力場所の設定
coredump_dir /var/spool/squid

# QueryStringの記録
strip_query_terms off

# ログの保存先と形式(Apache風)
logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %h" "%{User-Agent}>h" %Ss:%Sh
access_log /var/log/squid/access.log combined

● 以下のコマンドでbasic認証用のアカウントを作成します。

sudo apt-get install apache2-utils
sudo htpasswd -c /etc/squid/passwords [ユーザ名]
New password:           #パスワードの入力
Re-type new password:   #パスワードの再入力  

● 以下のコマンドで自動起動設定と設定ファイルの反映をします。

sudo systemctl enable squid.service
sudo systemctl restart squid.service 

● Windowsパソコン側で「設定」→「ネットワークとインターネット」→「プロキシ」を開きます.

● 「手動プロキシセットアップ」の下にある「プロキシサーバーを使う」をオンにします.
そして「アドレス」にラズベリーパイの固定IPアドレスを, ポートにSquidのポート番号を入れて「保存」をクリックします.
以上で設定は完了です。

● Windowsパソコンでインターネットのページを適当に閲覧します.

● ラズパイ側で以下のコマンドを実行してからログファイル(/var/log/squid/access.log)を開くと,Windowsパソコンのアクセスログが残っています.

sudo chmod 777 /var/log/squid/access.log
【ラズベリーパイ4入門】基本設定~応用例
ラズベリーパイ4(Raspberry Pi4)の設定方法について入門者向けにまとめてみました。

コメント

タイトルとURLをコピーしました