ラズパイでプロキシ(squid)※ホワイトリストプロキシ

自宅内から外部にアクセスする機器の通信を制御したい
通信させたいドメインを登録する方式(ホワイトリスト)
私はsonyのBRAVIAとPanasonicのレコーダーを所持しています
 101:DIGA(DVDレコーダ)
 125:BRAVIA

それぞれの機器にプロキシをラズパイを使うように設定しています
必要なアクセスのみを許可したいため使用しています

インストール

sudo apt update
sudo apt install squid

squidの設定

sudo vi /etc/squid/squid.conf

1209行目辺り

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) machines
acl localnet src 192.168.20.0/24 ←追加

acl SSL_ports port 443
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
acl CONNECT method CONNECT

1422行目辺り

http_access allow localhost
http_access deny !localnet ←追加

1426行目辺り

acl whitelist dstdomain “/etc/squid/whitelist” ←http_access deny allより前に追加
http_access allow whitelist ←追加

http_access deny all

1924行目辺り

http_port 8888 ←3128から8888に変更(必要なければしなくても良い)

ファイルの最後尾

acl NOCACHE src all ←追加(キャッシュを無効にする)
cache deny NOCACHE ←追加

許可先を設定

ファイルの中のアクセス先は参考です
後述する/var/log/squid/access.logを確認しながらドメインを見つけてください
左矢印以降はコメントなので

sudo vi /etc/squid/whitelist

bd-jp.vieraconnect.jp #DIGAのプロキシ設定時のテストでアクセスするサイト(http://bd-jp.vieraconnect.jp/test)
.dimora.jp #ディモーラ設定時(panaapi-s2.dimora.jp:443) ※録画予約とかするサイト
.g-guide.jp #Gガイド
remotepairing.bb-cygnus.jp #ペアリング更新用

.sony.net #BRAVIAがアクセスしに行くところ
.sony.jp
.sony.tv
.sony.com

再起動

ラズパイを再起動

squidのサービスだけを再起動する場合は
sudo /etc/init.d/squid restart
でいいと思うけどなんか時間がかかる

アクセス先の確認方法など

アクセスログを確認する
このコマンドはログファイルに追加された行をリアルタイムで確認するのに適しています

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

アクセスが発生すると行が増えていきます
TCP_DENIED 拒否されたアクセス
TCP_TUNNEL 許可されたアクセス

最新情報をチェックしよう!