DansGuardian
プロジェクトの ホームページ より:
- DansGuardian は Linux, FreeBSD, OpenBSD, NetBSD, macOS, HP-UX, Solaris で動作する、数々の賞を受賞したオープンソースのウェブコンテンツフィルタです。フレーズマッチングや PICS フィルタリング、URL フィルタリングなど多数の方法を使って、ページのコンテンツをフィルタリングします。よくある商用フィルタのように禁止サイトリストに基づく単純なフィルタではありません。
- DansGuardian は完全な柔軟性を持つように設計されており、必要の応じてフィルタリングを変えることができます。あなたの要求に応じて厄介なものにも分かりやすいものにもなります。デフォルト設定では小学校での利用が考えられていますが、DansGuardian ではブロックしたいものを自由に制御できます。
- DansGuardian は真のウェブコンテンツフィルタです。
DansGuardian はページの URL とコンテンツの両方を吟味してインターネットのページをフィルタリングする優れた機能があり、フィルタリングを細かく調整するための多数のオプションが存在します。DansGuardian を実行するには、まず先にプロキシが必要になります。DansGuardian は Polipo や tinyproxy など多数のプロキシサーバーで動作しますが、推奨されているプロキシは Squid です。
この記事の元の作者はイギリスの複数の学校で Squid と DansGuardian コンテンツフィルタを使って、不適切なコンテンツをブロックすることに成功しています。
インストール
DansGuardian は AUR の dansguardianAUR パッケージでインストールできます。
dansguardian デーモンを起動してください。ブート時に起動させたい場合、有効化してください。
設定
設定ファイル
Squid を既にセットアップしている場合、DansGuardian の設定は比較的簡単です。設定ファイルやブロックテンプレート、ブラックリストなどは全て /etc/dansguardian
に保存されます。
DansGuardian にはグループの概念があり、ユーザーやマシンのグループに特定のブロックが適用されます。以下、フィルタリングを迂回したいときは (理想的ではありませんが) Squid に直接アクセスすることができるとして、全ての人に適用されるグループを設定します。
まずは /etc/dansguardian/dansguardian.conf
を編集します。このファイルにはコメントが付されているのでそれに従えば問題は起こらないでしょう。filterip
, filterport
, proxyip
, proxyport
のネットワーク設定のオプションを確認してください。また、weightedphrasemode
と phrasefiltermode
も確認すると良いでしょう。古いハードウェアでセットアップする場合は特にフィルターモードが重要です。
次に、最初で唯一のグループのオプションを編集してください。/etc/dansguardian/dansguardianf1.conf
ファイルを編集します。このファイルにもコメントが付いていますが、naughtynesslimit
には注意してください。
DansGuardian は言葉が汚いほどポイントを高くするという計算方法で、ページのコンテンツを調べて卑猥な単語を集計します。合計ポイントが naughtnesslimit
を越えた場合、ページはブロックされます。幼児なら50、青少年なら160が相応しい値でしょう。企業環境なら、200程度でよいと思われます。
ブラックリスト
ウェブサイトをブロックリストに追加するのは設定ファイルと同一のディレクトリで行います。DansGuardian は津城の URL ブロックリストだけでなく強力な URL とコンテンツの正規表現フィルタを備えています。以下が重要なファイルです:
- bannedsitelist - 禁止サイトのドメイン。例: "human-horse-love.com"。
- bannedurllist - ウェブサイトの一部をブロックしたい場合。例: "bbc.co.uk/games"。
- exception* - ドメインや URL の例外を記述。このリストに含まれているサイトはチェックが行われず自動的に許可されます。
- bannedregexpurllist - とても強力。特定の URL をブロックする正規表現を記述できます。例: "xxx" という単語での検索を止めさせるには "(.*q=.*xxx.*)" と記述。
リストに URL を追加・削除したときは、DansGuardian にそのことを通知する必要があります。以下のコマンドを実行してください:
# dansguardian -r
これで DansGuardian が設定をリロードします。デーモンを再起動するのではなく、設定をリロードさせることで、基本的にリロードしたことにユーザーは気づきません (リロードした後、5-10秒間ほどウェブページにアクセスできるなくなる可能性があります。dansguardian -r
を深夜に実行する cron ジョブを使うことで問題を回避できます)。
URLBlacklist からブラックリストのコレクションをダウンロードすることができますが、まず FAQ を読むようにしてください。DansGuardian の起動を高速化させるためにコレクションを解除したくなるかもしれないからです。Squidblacklist.org でもブラックリストを見つけることができます。ブラックリストを /etc/dansguardian
にインストールしたら、適当な設定ファイルを開いてファイルの末尾に以下を追加することで DansGuardian の設定にブラックリストを追加できます:
.Include</etc/dansguardian/blacklists/ads/domains> .Include</etc/dansguardian/blacklists/drugs/domains> .Include</etc/dansguardian/blacklists/porn/dg-porn etc...
どんなサイトがブロックされるのかはブラックリストコレクションを覗いてみて下さい。
"Access Denied" テンプレート
ウェブサイトがブロックされたときにユーザーに表示されるページを変更したい場合、次のファイルを編集してください:
/usr/share/dansguardian/languages/LANGUAGE/template.html.
ウェブフロントエンド
ウェブベースのフロントエンドで DansGuardian を管理したい場合、Webmin の Webmin Module で DansGuardian を使うことができます。