YouTubeのアクセス制限(その2 squid)

投稿日: 更新日:

ここでは、フィルタリングのためにsquidをインストール。前回はこちら

こちらを参考にさせていただきました。
Privoxy + Ziproxy + Squidで高速フィルタリングサーバを作ってみた
squidを透過型プロキシとして使う時の設定
Blocking YouTube Videos

squid で特定のサイトをアクセス拒否する

1)squidのインストール

$ sudo apt-get install squid

 

2) /etc/squid/squid.confの編集

$ sudo nano /etc/squid/squid.conf

待ち受けポート番号と透過型Proxyの設定
ポート番号はdefaultのまま

http_port 3128 transparent

その他設定

# 表示用ホスト名
visible_hostname tsukuda2.local
# forwarded_for、viaヘッダを送信しない
forwarded_for off
via off
# その他
hosts_file /etc/hosts
coredump_dir /var/spool/squid
access_log /var/log/squid/access.log squid

アクセスコントロールの設定

アクセスを拒否したいURLを記述(あくまで例示)。サブドメインを含める場合は、以下の例のように「.(ドット)」で始める。ただし、YouTubeのようなhttpsで接続するsiteは、今回のような透過型proxyではフィルタリングできないので注意。

acl rejected_domains dstdomain .nicovideo.jp .fc2.com .2ch.net .naver.jp .xvideos.com

http_access deny rejected_domains

 


試行過程の記録(参考)

当初は、こちらにhttp (80)とhttps (443)を流せば良いかと考えていたが、何故かhttpsは処理されない模様。リダイレクタなども試すがやはりダメ。そのとき、ハタと思いついたのだが、パケットがRpiに来た段階で暗号化されているため、squidで処理できないのではと。そういえば、リダイレクタを使ってコンテンツフィルタを自作されていたパパさん(後述参照)は、ブラウザからsquidを呼んでいた(ブラウザから呼ぶとパケット自体は暗号化されるが、URLがテキストで来る)。
後から考えれば当たり前…。2日ほど休みがツブれてしまった。

リダイレクタについて
今回の設定では結果的に使わなかったが、squidからリダイレクタを用いてURLの書き換えを検討した。これを使って自作フィルタを作成することも可能。以下、参考とさせていただいたページ。
キッズ goo + squid でコンテンツフィルタ
Squidを用いたリダイレクトプログラム

 

3)iptablesの設定

Rpiに届いたhttp (80)をsquidに流す。

$ sudo iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to 192.168.10.21:3128

設定されたか他のDeviceからブラウザで確認。

$ sudo iptables -t nat -L

他からもアクセスして、設定したブラウザから2)で設定したURLが遮断されるか確認。

4)iptables-persistentのインストール

上で設定したiptablesのパラメータはshutdownすると初期化されるため、iptablesの管理ツールをインストール。

こちらを参考にさせていただきました。
2.iptables(ファイアウォール)のセットアップ – RaspberryPiで各種サーバー作り! – ある阪大生の物置小屋

sudo apt-get install iptables-persistent

インストールの際、ipv4とipv6でどうするか確認されるので、v6を使っていなければv4のみ[y]でよい。

現在の設定が/etc/iptables/rules.v4にexportされているか確認。

$ sudo cat /etc/iptables/rules.v4

exportされていれば5)へ。
exportされていなければ、念のためiptablesの設定が変更されていないことを確認。

$ sudo iptables -t nat -L

問題なければ、

$ sudo iptables-save | sudo tee /etc/iptables/rules.v4

で現在の設定を書き出す。

5)iptablesが再設定されることの確認

Rpiを再起動し、iptablesが再設定されていることが確認できればこのステップは終了。

 

続きはこちら

広告

YouTubeのアクセス制限(その2 squid)” への3件のフィードバック

    […] YouTubeのアクセス制限(その2 squid) […]

    いいね

    […] ここでは、URLのブロックのためにdnsmasqをインストール。前回はこちら。 […]

    いいね

    […] こちらを移植。 YouTubeのアクセス制限(その2 squid) […]

    いいね

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中