格安SIMのサービス内容はシンプルです。携帯電話事業者なら当たり前のフィルタリング機能はほぼ提供されていません。そこで不適切なサイトをブロックするフィルタリングサーバーをLinuxで構築します。

 アダルトサイトや攻撃的なサイトといった特定ジャンルのコンテンツをブロックする機能は、一般に「Webフィルタリング」と呼ばれます。多機能プロキシーサーバーの「Squid」とそのプラグインソフト「squidGuard」の組み合わせで実現できます(図1)。

図1●「squidGuard」で不要なコンテンツへのアクセス要求を遮断。多機能プロキシーサーバー「Squid」のプラグインとして動作する。
図1●「squidGuard」で不要なコンテンツへのアクセス要求を遮断。多機能プロキシーサーバー「Squid」のプラグインとして動作する。
[画像のクリックで拡大表示]

 まず、Squidを次のコマンドでインストールします。ここでは「Ubuntu 16.04 LTS」を動作環境として想定しています。Ubuntuをインストールしていない場合は公式サイトからダウンロードして導入しておきましょう。

$ sudo apt update
$ sudo apt install squid3

 Squidの導入後、設定ファイル「/etc/squid/squid.conf」をテキストエディタなどで編集します(図2)。

図2●Squidのキャッシュ機能とsquidGuardとの連携などを設定する。設定ファイルは「/etc/squid/squid.conf」。

acl localnet src 192.168.0.0/16        # RFC1918 possible internal network
(略)↑行頭の「#」を外して「localnet」を定義
http_access allow localnet
(略)↑行頭の「#」を外してlocalnetからのアクセスを許可
# Squid normally listens to port 3128
http_port 3128 ←ポート番号。ほかのソフトと干渉する場合は変更する。
cache_peer localhost parent 8118 0 no-query ←上位プロキシーのポート番号(ここではPrivoxy)を追記
(略)↓キャッシュ用メモリー容量。変更する場合は「#」を削除して数値を指定
# cache_mem 256 MB ←キャッシュ用メモリー容量。変更する場合は「#」を削除して編集
(略)↓メモリーに保存するファイルの最大容量。変更する場合は「#」を削除して編集
# maximum_object_size_in_memory 512 KB
(略)↓キャッシュとしてディスクに保存するファイルの最大容量。変更する場合は「#」を削除して編集
# maximum_object_size 4 MB
(略)↓キャッシュを保存するディレクトリーと使用量
cache_dir ufs /var/spool/squid 100 16 256 ←「#」を削除して有効化。容量は「100」の部分で設定
(略)↓squidGuardと連携させるための設定を末尾に追記
url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf
visible_hostname localhost