はじめに(2020年8月追記)
※説明に使用するOPNsenseのバージョンは17.1.0です。
※この記事は下記のOPNsenseのWikiページを参考にしています。
https://docs.opnsense.org/manual/how-tos/proxywebfilter.html
※最新の20.7.0でもほぼ同じ手順で設定可能です(一部項目が日本語化されたり、ファイアウォールルールの追加の仕方が変わったりしてます)
Webフィルタ設定
- [サービス]-[Webプロキシ]-[管理]から「Forward Proxy」タブの右にある「▼」をクリックしてドロップダウンメニューを表示し、「Authentication Setting」をクリックします。
- 「全てクリア」をクリックし、「適用」をクリックします。
- 「リモートアクセスコントロールリスト」タブを選択し、画面右下の「+」ボタンをクリックします。
- ポップアップが表示されたら、下記の項目を入力して「変更を保存」をクリックしてください。今回は「UT1 "web categorization list"」というフリーで利用可能なブラックリストを使用します。
------
有効:チェックする
ファイル名:UT1
URL:ftp://ftp.ut-capitole.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz
説明:UT1 Web Filter
------ - 「ACLをダウンロード」をクリックし、しばらく待ちます。
- UT1の鉛筆アイコンのボタンをクリックしてポップアップを表示すると、「カテゴリ」項目から利用可能なカテゴリが確認できます。ちなみに、ここに文字を入力すると候補のカテゴリが画面のようにドロップダウンリストで表示されるので、そこからカテゴリを選択可能です。
- 利用するカテゴリを設定したら、「変更を保存」をクリックして「ACLをダウンロードして適用」をクリックしてください。
- 「General Proxy Settings」タブを選択し、「プロキシを有効」にチェックを入れて「適用」をクリックします。画面右上のプレイアイコンが赤色から緑色になったら、プロキシが利用可能です。
- [ファイアウォール]-[ルール]からプロキシなしでHTTP Webサイトを閲覧できないようにするルールを書いていきます。画面右下の「+」ボタンをクリックします。
- 下記の項目を入力して「保存」をクリックしてください。
------
動作:拒否
インタフェース:LAN
プロトコル:TCP/UDP
送信元:LANネット
送信先ポート範囲:HTTP (from:もto:も)
カテゴリ:Block Proxy Bypass
説明:Block HTTP Bypass
------ - 手順9,10をくりかえし、プロキシなしでHTTPS Webサイトを閲覧できないようにするルールを書きます。(送信先ポート範囲をHTTPSとする)
- 手順9~11で作成した2つのルールを既存のルールより上に移動して、「変更を適用」をクリックします。
- ブラウザにてプロキシ設定を行います。今回はFirefoxを例に説明します。[詳細]-[ネットワーク]から「接続設定」をクリックします。
- 「手動でプロキシを設定する(M)」を選択し、下記の項目を入力して「OK」をクリックします。
------
HTTPプロキシ(X):192.168.1.1 (OPNsenseのLAN側IPアドレス)
ポート(P):3128
すべてのプロトコルでこのプロキシを使用する(S):チェックする
プロキシなしで接続(N):localhost, 127.0.0.1, 192.168.1.0/24
------ - Webフィルタの設定が完了しました。
動作確認
設定したカテゴリのサイトを閲覧しようとすると、ブロック画面が表示されます。
以上!