なんとか形になったので、投稿しときます。
dansguardian+squid+iptablesを使って、1台のPC内でコンテンツ・フィルタを実現させてみました。構築した環境は、Archlinux、i686ですが、多分他のディストリビューションでも同様に構築できます。
squidって何? とか、dansguardianって何? とか、iptablesって何? とかの場合はググってください。
対象者
- これ見てる人
- 検索した人
- 興味持った人
手順
- squidのインストール
- dansguardianのインストール
- squidの設定
- dansguardianの設定
- iptablesの設定
- dansguardian、squid、iptablesの起動
1. squidのインストール
archlinuxの場合は、squidはcommunityリポジトリに含まれているので、以下のコマンドでインストールできます。
[root@localhost]# pacman -S squid
2. dansguardianのインストール
dansguardianは、AURリポジトリに含まれているので、事前にyaourtをインストールしておくと、以下のコマンドでインストールできます。
[user@localhost]$ yaourt -S dansguardian
3. squidの設定
設定ファイルは今回は特に変更していません。
4. dansguardianの設定
以下の2つの設定ファイルを変更しています。
フィルタしたい言語に合わせて修正します。
# language to use from languagedir.
#language = 'ukenglish'
language = 'japanese'
systemdを使っていなければ修正しなくても良いです。
# 以下をコメントアウト
#Environment=LD_LIBRARY_PATH=/opt/pcre-old/lib
5. iptablesの設定
ここが苦労しました。
1行目:squidが外部URLへアクセスできるように
2行目:dansguardianの実行ユーザID以外は、一旦8080へリダイレクト
-A OUTPUT -o [1] -p tcp --dport 80 -m owner --uid-owner [2] -j ACCEPT
-A OUTPUT -o [1] -p tcp --dport 80 -m owner ! --uid-owner [3] -j REDIRECT --to-ports 8080
[1]:NIC(eth0とか、wlan0とか)
[2]:squidの実行ユーザID(proxyとか)
[3]:dansguardianの実行ユーザID(nobodyとか)
6. dansguardian、squid、iptablesの起動
systemdなので以下で起動させます。
[root@localhost]# systemctl start dansguardian squid iptables
フィルタ対象になりそうなURLへアクセス
お好みで。
最後に
- コンテンツ・フィルタを有効にしてQittaにアクセスすると、弾かれますのでご注意を。dansguardianの設定ファイルを変更することで回避できるかもしれません。
- HTTPSでのアクセスは考慮していません。
- 内容に漏れ、間違いがあるかもしれません。その際は報告いただくとありがたいです。