pfSenseは、非常に強力なオープンソースのファイアウォール/ルーターのソリューションです。FreeBSDに基づいており、pfSenseはセキュリティに強い焦点を当てています。”バニラ”の設定でさえ、pfSenseは市販のルーターを購入するよりもはるかに安全です。
標準装備のツールを使って、セキュアなネットワーク設定をカスタマイズするための多くのツールをpfSenseは提供しています。しかし、そのデフォルトツールの上に、さらにセットアップを強化するためにインストールできるアドオンパッケージのリポジトリもpfSenseはホストしています。
関連ガイド: pfSense、Squid&SquidGuardを使用して全てのデバイスで広告をブロックする方法
記事の短い要約:
pfSenseは、FreeBSDに基づく堅牢なオープンソースのファイアウォール/ルーターソリューションで、市販のルーターよりも高いレベルのセキュリティを提供します。デフォルトのツールに加えて、pfSenseはpfBlockerNGのようなアドオンパッケージを提供しており、IPおよびDNSブロックリストを使用してインバウンドおよびアウトバウンドの接続を細かく調整することにより、ファイアウォール機能を強化します。
pfBlockerNGの2つの主な用途には、IPリストに対するインバウンドおよびアウトバウンドトラフィックのフィルタリングとGeoIP制限の適用、およびDNSフィルタリングを通じた広告や悪意のあるサイトのブロックが含まれます。
ブロックリストに対してDNSリクエストをチェックすることにより、pfBlockerNGは有害なコンテンツへのアクセスを防ぎ、プロキシサーバーを必要としない効率的な広告ブロックソリューションとして機能します。
pfBlockerNGには2つの主な用途があります。
インバウンドおよびアウトバウンドトラフィックのフィルタリング
pfBlockerNGは、IPリストに対するインバウンドおよびアウトバウンドトラフィックをフィルタリングし、特定の国から/へのトラフィックを許可または拒否することによってGeoIP制限を適用することができます。後者の機能は、WANポートを開放する場合に非常に便利です。
DNSブラックホールを通じて広告および悪意のあるサイトをブロックする
pfBlockerNGは、DNSフィルタリングを通じて広告や悪意のあるサイトへのアクセスをブロックすることができます。ウェブを閲覧する際、DNSリクエストはブロックリストと照合されます。一致する場合、リクエストはブロックされます。これは、プロキシサーバーを使用せずに広告をブロックする素晴らしい方法です。
これらの用途の両方を見ていき、それぞれを取り上げるにつれて詳しく説明します。
このガイドは、機能するWANおよびLANインターフェースでpfSenseがすでにセットアップされていることを前提としています。
さあ、始めましょう。
まず最初に行うべきことは、pfBlockerNGをインストールすることです。
pfBlockerNG-develがインストールされたので、パッケージを設定する必要があります。まず、IPおよびGeoIPフィルタリングから始めます。
pfBlockerNGをセクションごとに設定していきます。言及されていない設定は、そのデフォルト値のままにしておいてください。
上述したように、pfBlockerNGのGeoIP機能を使用すると、国や大陸全体のトラフィックをフィルタリングすることができます。これを行うために、pfBlockerはMaxMind GeoIPデータベースを使用し、これにはライセンスキーが必要です。MaxMindライセンスキー欄の説明にあるリンクからMaxMind登録ページに移動できます。MaxMindライセンスキーは無料です。
登録フォームに記入してライセンスキーを取得します。ライセンスキーを入手したら、MaxMindライセンスキー欄に挿入します。
そして:
このセクションでは、pfBlockerNGのIPv4、IPv6、GeoIPフィルタリングが適用される受信および送信インターフェースを決定します。
pfBlockerNGにいくつかのブロックリストを追加する時が来ました。カスタムフィードを追加する自由はありますが、pfBlockerNGには有効化できる組み込みフィードがあります(この文脈では、リストとフィードは同義語です)。
これは非常に便利です。なぜなら、インターネット上でブロックリストを探すのは時間がかかり、多くのリストは機能していないか、またはもはやメンテナンスされていないからです。pfBlocker内のフィードは、定期的に更新されるライブリストであるため、これらを使用します。
フィードコレクションの名前と説明が入力されます。コレクションに含まれるフィードのURLとそれらの説明も入力されます。しかし、デフォルトではフィードはOFFに設定されています。これらを有効にする必要があります。
しかし、それを行う前に、PRI1コレクションから1つのフィードを削除する必要があります。上から7番目のPulsediveは、有料のAPIキーが必要なプレミアムリストです。このチュートリアルではAPIキーを取得しないので、削除ボタンをクリックします。
ISPがWANにIPv4とIPv6のIPアドレスを割り当てている場合は、IPv6に対しても同じ手順を繰り返すことができます。まだIPv4ネットワークのみを使用している私たちの多くにとっては、これが一般的です。
GeoIPフィルタリングを設定する前に、まずpfBlockerNGを強制更新する必要があります。pfBlockerは固定間隔で自動的に更新されます。しかし、GeoIPフィルタリングを設定するには、pfBlockerが最初にMaxMindデータベースを取得する必要があり、強制更新でこれを実行できます。
IPv4ログ
GeoIPログ
GeoIPサマリーは、大陸ごとに整理されたIPアドレスフィードで構成され、トップスパマーとプロキシおよび衛星の2つの追加カテゴリがあります。トップスパマーは、オンライン攻撃の頻繁な発生源であることが知られている国々のリストです。プロキシおよび衛星は、知られている匿名プロキシと衛星プロバイダです。
大陸全体または特定の国へのトラフィックをフィルタリングすることができます。または、フィルタリングしたい国だけを選択してフィードを微調整することもできます。
ここでいくつかの点を考慮する必要があります。国または大陸への送信接続をブロックする場合は、問題ありません。しかし、政府または大陸からの受信接続をブロックしようとしている場合、pfSenseはデフォルトでWANに対するすべての不要な受信トラフィックをブロックすることを考慮してください。
これは、WANにオープンポートがない限り、国や大陸をブロックすることは無意味であり、無駄にメモリを消費するだけです。WANにオープンポートがある場合は、オープンポートに接続を許可したい国をブロックしないようにしてください。
エイリアスはpfSenseにネイティブのIPアドレスリストです。エイリアスを使用して、選択した特定の国だけをファイアウォールを通じて許可することができます。しかし、pfBlockerNG内のMaxMind GeoIPデータベースからカスタムエイリアスを作成し、ポートフォワーディングファイアウォールルールのソースとして直接使用する方法があります。
pfSenseはファイアウォールルールで明示的に許可されていないすべてのトラフィックを自動的にブロックするため、ファイアウォールを通して許可する国のエイリアスを作成したいと考えています。pfSenseはデフォルトで他のすべてをブロックします。
オープンポートがある場合でも、簡単に保ちたいなら、トップスパマーとプロキシおよび衛星からの受信接続をブロックせずにカスタムエイリアスを作成せずに済みます。この操作はWANにオープンポートがある場合にのみ有用です。
WANにオープンポートがない場合は、送信トラフィックのみをブロックするか、GeoIPフィルタリングを無効にします。
トラフィックがフィルタリングされていることを確認するために、ブロックリストに含まれている既知のIPアドレスへの接続を試みることができます。ブラウザで1.13.9.177(私のpfBlockerNG IPv4フィードに含まれているIP)にアクセスしようとすると、IPアドレスがドメイン名に変換されず、接続できないことが確認できます。これが望んでいた結果です。
それでは、pfBlockerのDNSBLを設定するために進みましょう。
IPv4フィルタリングとGeoIPフィルタリング、エイリアスを設定しました。次は、pfBlockerNGを使用した広告ブロックに移ります。pfBlockerNGでの広告ブロックは、DNSブラックホーリングを通じて実現されます。これは、DNSリクエストを既知の広告ネットワークとトラッカーのリストと照合し、一致する場合にDNSレベルでブロックすることで、広告のないインターネットを実現します。やったね。
pfBlockerNGのDNSBL機能を使用するには、DNS解決にpfSenseのDNSリゾルバを使用している必要があります。つまり、DNSBL機能を使用したい場合、ホストのDNSをDHCP経由で割り当てたり、DNSフォワーダー(dnsmasq)を使用したりすることはできません。
デフォルトでは、pfSenseはすべてのインターフェースでDNSリゾルバを使用します。したがって、DNSリゾルバの設定を変更していない場合は問題ありません。変更した場合は、リゾルバをLAN(アウトゴーイング)およびWAN(インカミング)にバインドし、DNSBLでフィルタリングしたい他のLANタイプ(OPTインターフェース)およびWANタイプ(マルチWANセットアップ、VPNゲートウェイ)インターフェースを選択してください。
次に、いくつかのDNSBLフィードを追加する必要があります。
上記で行ったように、pfBlockerNGのアップデートを強制的に実行する必要があります。
アップデートが完了すると、DNSBLフィードが更新されたことが確認できます。
DNSBLフィルタリングが機能していることを確認するために、DNSBL Custom_Listに追加したドメインvungle.comにアクセスを試みます。ブラウザでvungle.comにアクセスしようとすると、DNSBLブロックページが表示され、いくつかの有益な情報が表示されます。
注意: pfBlockerのDNSBLには、このブロックページを提供するためのミニWebサーバーが含まれています。IPv4、IPv6、GeoIPフィルタリングは、pfSenseファイアウォールの既存の機能を拡張し、ブロックページを表示せずにIPアドレスをブロックまたは許可します。
これで、IPv4フィルタリング、GeoIPフィルタリング、DNSBLを設定しました。これらの設定を行うことで、ネットワークのセキュリティを向上させるとともに、不要な広告やマルウェア配布サイトへのアクセスを遮断することができます。
さて、これで完了です。pfSenseでpfBlockerNG-develのインストールと設定に成功しました。IPv4フィルタリング、GeoIPフィルタリング、DNSBLフィルタリングを設定しました。これら3つを使用することで、接続速度を低下させることなく、ネットワークをより安全でプライベートに保つことができます。
ネットワークが成長するにつれて、VPNサーバーを実行したり、インターネットからアクセス可能なWebサーバーをホストしたりする場合には、WAN上で特定のポートを開く必要があるかもしれません。そのような場合、pfBlockerNGは、外部からのアクセスを精密に制御し、ネットワークをロックダウンするのに役立つ、セキュリティツールキットの素晴らしいツールとなります。
関連記事: 最適なVPNの探し方