• Home
  • 方法
  • pfSenseでのIPフィルタリング

pfSenseを使用したIPフィルタリングとDNSブラックホールの設定方法

Marc Dahan

By Marc Dahan . 25 3月 2024

サイバーセキュリティジャーナリスト

Miklos Zoltan

Fact-Checked this

pfSenseは、非常に強力なオープンソースのファイアウォール/ルーターのソリューションです。FreeBSDに基づいており、pfSenseはセキュリティに強い焦点を当てています。”バニラ”の設定でさえ、pfSenseは市販のルーターを購入するよりもはるかに安全です。

標準装備のツールを使って、セキュアなネットワーク設定をカスタマイズするための多くのツールをpfSenseは提供しています。しかし、そのデフォルトツールの上に、さらにセットアップを強化するためにインストールできるアドオンパッケージのリポジトリもpfSenseはホストしています。

この投稿では、pfBlockerNGについて見ていきます。pfBlockerNGはpfSenseで利用可能なオプションのパッケージです。pfBlockerNGが行うことは、基本的にはIPとDNSブロックリストを使用して、インバウンドおよびアウトバウンドの接続を微調整する能力を提供することにより、pfSenseのファイアウォール機能を拡張することです。

関連ガイド: pfSense、Squid&SquidGuardを使用して全てのデバイスで広告をブロックする方法

記事の短い要約:
pfSenseは、FreeBSDに基づく堅牢なオープンソースのファイアウォール/ルーターソリューションで、市販のルーターよりも高いレベルのセキュリティを提供します。

デフォルトのツールに加えて、pfSenseはpfBlockerNGのようなアドオンパッケージを提供しており、IPおよびDNSブロックリストを使用してインバウンドおよびアウトバウンドの接続を細かく調整することにより、ファイアウォール機能を強化します。

pfBlockerNGの2つの主な用途には、IPリストに対するインバウンドおよびアウトバウンドトラフィックのフィルタリングとGeoIP制限の適用、およびDNSフィルタリングを通じた広告や悪意のあるサイトのブロックが含まれます。

ブロックリストに対してDNSリクエストをチェックすることにより、pfBlockerNGは有害なコンテンツへのアクセスを防ぎ、プロキシサーバーを必要としない効率的な広告ブロックソリューションとして機能します。

IPフィルタリングの設定方法

pfBlockerNGとは何ですか?

pfBlockerNGには2つの主な用途があります。

インバウンドおよびアウトバウンドトラフィックのフィルタリング

pfBlockerNGは、IPリストに対するインバウンドおよびアウトバウンドトラフィックをフィルタリングし、特定の国から/へのトラフィックを許可または拒否することによってGeoIP制限を適用することができます。後者の機能は、WANポートを開放する場合に非常に便利です。

DNSブラックホールを通じて広告および悪意のあるサイトをブロックする

pfBlockerNGは、DNSフィルタリングを通じて広告や悪意のあるサイトへのアクセスをブロックすることができます。ウェブを閲覧する際、DNSリクエストはブロックリストと照合されます。一致する場合、リクエストはブロックされます。これは、プロキシサーバーを使用せずに広告をブロックする素晴らしい方法です。

これらの用途の両方を見ていき、それぞれを取り上げるにつれて詳しく説明します。

このガイドは、機能するWANおよびLANインターフェースでpfSenseがすでにセットアップされていることを前提としています。

pfSense with functional WAN and LAN interfaces

さあ、始めましょう。

pfBlockerNG-develのインストール

まず最初に行うべきことは、pfBlockerNGをインストールすることです。

  1. トップメニューからシステム > パッケージマネージャを選択します。パッケージマネージャインストール済みパッケージタブに移動します。

    install pfBlockerNG

  2. 利用可能なパッケージを選択します。利用可能なパッケージのリストが表示されます。

    Install pfBlockerNG Step 2

  3. pfBlockerNGを見つけるまでスクロールします。pfBlockerNGには2つのエントリがあります:pfBlockerNGpfBlockerNG-develです。pfBlockerNG-develをインストールします。”devel”接尾辞は開発版を意味しますが(つまり、ベータソフトウェア)、完全に機能しており、積極的に開発されています。パッケージ開発者は、新しい機能をパッケージに絶えず追加しているため、それをベータソフトウェアとみなす方が安全だと考えており、永遠のベータ版になります。

    Install pfBlockerNG-devel

  4. pfBlockerNG-develの隣にあるインストールをクリックします。パッケージインストーラーウィンドウが表示されます。
  5. 確認をクリックします。インストールが始まります。

    pfBlockerNG-devel

  6. インストールが完了すると、パッケージインストーラーウィンドウの下部に成功と表示されます。pfBlockerNG-develがインストールされました。

    pfBlockerNG-devel

基本設定

pfBlockerNG-develがインストールされたので、パッケージを設定する必要があります。まず、IPおよびGeoIPフィルタリングから始めます。

pfBlockerNGをセクションごとに設定していきます。言及されていない設定は、そのデフォルト値のままにしておいてください。

  1. トップメニューからファイアウォール > pfBlockerNGを選択します。pfBlockerの設定ウィザードが表示されます。

    pfBlockerNG Basic Setup

  2. 設定ウィザードを実行することも、pfBlockerNGを手動で設定することもできます。手動で設定するため、赤いHEREをクリックしてウィザードを閉じます。すると、pfBlockerの設定の一般ページに移動します。

    pfBlockerNG Setup Page

一般 / 一般設定

  1. pfBlockerNGの右側に表示されている有効にするボックスをチェックします。これによりサービスが有効になります。
  2. ページの下部にある保存をクリックします。
  3. このページの他の設定は、デフォルト値のままにします。

Enable pfBlockerNG

IPv4フィルタリング

IP / IP設定

  1. IPタブを選択してIP設定ページにアクセスします。今のところ、下に表示されるサブメニューには触れないでください。
  2. 重複除去を有効にします。これにより、複数のIPフィードを使用している場合に重複するエントリが統合されます。
  3. CIDR集約を有効にします。
  4. 抑制を有効にします。これにより、ローカルのサブネットがブロックされないようにします。

IP / IP Configuration

IP / MaxMind GeoIP設定

上述したように、pfBlockerNGのGeoIP機能を使用すると、国や大陸全体のトラフィックをフィルタリングすることができます。これを行うために、pfBlockerはMaxMind GeoIPデータベースを使用し、これにはライセンスキーが必要です。MaxMindライセンスキー欄の説明にあるリンクからMaxMind登録ページに移動できます。MaxMindライセンスキーは無料です。

登録フォームに記入してライセンスキーを取得します。ライセンスキーを入手したら、MaxMindライセンスキー欄に挿入します。

MaxMinf GeoIP Configuration

そして:

MaxMind Registration

IP / IPインターフェース/ルール設定

このセクションでは、pfBlockerNGのIPv4、IPv6、GeoIPフィルタリングが適用される受信および送信インターフェースを決定します。

  1. 受信ファイアウォールルール欄からWANを選択します(フィルタリングしたい他のWANインターフェースがある場合は、それらも選択します)。
  2. 送信ファイアウォールルール欄からLANを選択します(フィルタリングしたい他のLANタイプのインターフェースがある場合は、それらも選択します)。
  3. フローティングルールを有効にします。フローティングルールは、通常のファイアウォールルールよりも前に適用される特別なファイアウォールルールです。これにより、トラフィックがファイアウォールに到達した時点で直ちにpfBlockerNGのフィルタリングが行われるようになります。もう一つの利点は、pfBlockerNGが自動的にフローティングルールを作成してくれることです。
  4. ページの下部にある保存をクリックします。

pfBlockerNG Interface Configuration

IPv4フィードの追加

pfBlockerNGにいくつかのブロックリストを追加する時が来ました。カスタムフィードを追加する自由はありますが、pfBlockerNGには有効化できる組み込みフィードがあります(この文脈では、リストとフィードは同義語です)。

これは非常に便利です。なぜなら、インターネット上でブロックリストを探すのは時間がかかり、多くのリストは機能していないか、またはもはやメンテナンスされていないからです。pfBlocker内のフィードは、定期的に更新されるライブリストであるため、これらを使用します。

  1. フィードタブを選択します。
  2. PRI1の横にある青色の+をクリックします。PRI1はフィードのコレクションであるため、複数のフィードを含んでいます。青色の+をクリックすると、選択したフィードがリストアップされるIP / IPv4ページに移動します。そして、ほとんどの関連フィールドが自動的に入力されます。

pfBlockerNG Feeds Tab

IP / IPv4

フィードコレクションの名前と説明が入力されます。コレクションに含まれるフィードのURLとそれらの説明も入力されます。しかし、デフォルトではフィードはOFFに設定されています。これらを有効にする必要があります。

pfBlockerNG IPv4 Lists

しかし、それを行う前に、PRI1コレクションから1つのフィードを削除する必要があります。上から7番目のPulsediveは、有料のAPIキーが必要なプレミアムリストです。このチュートリアルではAPIキーを取得しないので、削除ボタンをクリックします。

Delete Feed

  1. Pulsediveを削除したら、すべてのフィードをONに設定します。

    Lists On

  2. ページの設定セクションまでスクロールダウンします。
  3. アクションのドロップダウンメニューから両方拒否を選択します。これにより、リスト/フィード内のIPアドレスへのトラフィックがすべてブロックされます。入力または出力の接続のみを拒否することもできますが、ご注意ください。ネットワーク内のホストがリスト内のIPアドレスへの出力接続を開始した場合、そのIPからの入力応答は許可されるためです。これが環境によっては問題にならない場合もありますが、注意が必要です。この例では、両方拒否を選択します。

    IP Deny Both

  4. ページの下部にあるIPv4設定を保存をクリックします。

ISPがWANにIPv4とIPv6のIPアドレスを割り当てている場合は、IPv6に対しても同じ手順を繰り返すことができます。まだIPv4ネットワークのみを使用している私たちの多くにとっては、これが一般的です。

GeoIP Filtering

GeoIPフィルタリングを設定する前に、まずpfBlockerNGを強制更新する必要があります。pfBlockerは固定間隔で自動的に更新されます。しかし、GeoIPフィルタリングを設定するには、pfBlockerが最初にMaxMindデータベースを取得する必要があり、強制更新でこれを実行できます。

  1. pfBlockerNG設定から更新タブを選択します。
  2. 実行をクリックします。更新が開始されます。

    GeoIP 更新設定

  3. 更新が完了すると、更新設定の下にあるログウィンドウの下部に更新プロセス終了が表示されます。

    GeoIP 更新プロセス終了

  4. ログウィンドウを確認すると、IPv4フィードとGeoIPデータベースが更新されたことがわかります。

    IPv4ログ

    IPv4 ログ

    GeoIPログ

    GeoIP ログ

  5. pfBlockerNG設定のIPタブから、GeoIPサブメニューを選択します。GeoIPサマリーが表示されます。

    GeoIP メニュー

GeoIPサマリーは、大陸ごとに整理されたIPアドレスフィードで構成され、トップスパマープロキシおよび衛星の2つの追加カテゴリがあります。トップスパマーは、オンライン攻撃の頻繁な発生源であることが知られている国々のリストです。プロキシおよび衛星は、知られている匿名プロキシと衛星プロバイダです。

大陸全体または特定の国へのトラフィックをフィルタリングすることができます。または、フィルタリングしたい国だけを選択してフィードを微調整することもできます。

国リストのカスタマイズ

  1. 編集したいフィードの右側にある鉛筆アイコンをクリックします。

    GeoIP サマリー

  2. pfBlockerNGでフィルタリングしたい国を選択します。
  3. ページの下部にある保存をクリックします。

    GeoIP サマリーページ

国のブロックの設定

  1. pfBlocker設定GeoIPメニューに戻ります。
  2. IPv4リストと同様に、各フィールドの右側にあるアクションドロップダウンメニューから、受信ブロック送信ブロック、または両方ブロックを選択します。

    GeoIP アクション

ここでいくつかの点を考慮する必要があります。国または大陸への送信接続をブロックする場合は、問題ありません。しかし、政府または大陸からの受信接続をブロックしようとしている場合、pfSenseはデフォルトでWANに対するすべての不要な受信トラフィックをブロックすることを考慮してください。

これは、WANにオープンポートがない限り、国や大陸をブロックすることは無意味であり、無駄にメモリを消費するだけです。WANにオープンポートがある場合は、オープンポートに接続を許可したい国をブロックしないようにしてください。

エイリアスはpfSenseにネイティブのIPアドレスリストです。エイリアスを使用して、選択した特定の国だけをファイアウォールを通じて許可することができます。しかし、pfBlockerNG内のMaxMind GeoIPデータベースからカスタムエイリアスを作成し、ポートフォワーディングファイアウォールルールのソースとして直接使用する方法があります。

pfBlockerNGでGeoIPエイリアスを作成する

pfSenseはファイアウォールルールで明示的に許可されていないすべてのトラフィックを自動的にブロックするため、ファイアウォールを通して許可する国のエイリアスを作成したいと考えています。pfSenseはデフォルトで他のすべてをブロックします。

    1. IPv4サブメニューへ移動し、追加をクリックします。

      カスタムエイリアスの追加

    2. エイリアスに名前と説明を付けます。
    3. 形式フィールドをGeoIPに設定します。
    4. 状態フィールドをオンに設定します。
    5. エイリアスに追加したい国の最初の文字を入力します。追加したい国を選択します。国のリストが表示されます。

      カスタムエイリアスの入力開始

    6. 緑色の追加ボタンをクリックすることで、エイリアスにさらに国を追加できます。

      国の追加

    7. 更新頻度1日に1回に設定します。
    8. ページの下部にあるIPv4設定の保存をクリックします。pfBlockerNGの強制更新を一度実行すると、ファイアウォールルールで使用できるエイリアスが作成されます。

      カスタムエイリアス設定

    オープンポートがある場合でも、簡単に保ちたいなら、トップスパマープロキシおよび衛星からの受信接続をブロックせずにカスタムエイリアスを作成せずに済みます。この操作はWANにオープンポートがある場合にのみ有用です。

    スパマーとサテライトの拒否

    WANにオープンポートがない場合は、送信トラフィックのみをブロックするか、GeoIPフィルタリングを無効にします。

    IPv4フィルタリングのテスト

    トラフィックがフィルタリングされていることを確認するために、ブロックリストに含まれている既知のIPアドレスへの接続を試みることができます。ブラウザで1.13.9.177(私のpfBlockerNG IPv4フィードに含まれているIP)にアクセスしようとすると、IPアドレスがドメイン名に変換されず、接続できないことが確認できます。これが望んでいた結果です。

    IPv4 テスト

    それでは、pfBlockerのDNSBLを設定するために進みましょう。

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ゲートウェイ)インターフェースを選択してください。

DNS リゾルバ

DNSBLの設定

  1. DNSBLタブを選択します。
  2. DNSBLを有効にする
  3. DNSBLモードの隣で、Unbound Pythonモードを選択します。

    DNSBL

  4. DNSBL設定セクションまでスクロールダウンします。
  5. ファイアウォールルールを許可するを有効にし、DNSBLでフィルタリングしたいLANおよび他のLANタイプのインターフェースを選択します。これにより、IPv4フィルタリングで行ったように、フローティングファイアウォールルールが自動的に作成され、トラフィックがファイアウォールに到達するとすぐにDNSBLフィルタリングが行われます。
  6. ページの下部にあるDNSBL設定を保存をクリックします。

    DNSBL設定を保存

次に、いくつかのDNSBLフィードを追加する必要があります。

DNSBLフィードの追加

  1. フィードタブを選択します。
  2. 左側のDNSBLカテゴリーまでスクロールダウンします。最初のエントリーはEasyListです。
  3. EasyListの左側にある青色の+をクリックします。IPv4フィルタリングと同様に、選択したフィードがリストアップされたDNSBLグループページに移動します。そして、ほとんどの関連フィールドが自動的に入力されます。

    DNSBLフィード

  4. 最初と最後のフィードを除く、すべてのフィードを削除します:EasyListEasyList Privacy
  5. 残りのフィードをONに設定します。

    DNSBLリストオン

  6. 設定セクションまでスクロールダウンします。
  7. アクションUnboundに設定します。
  8. DNSBL Custom_Listの右側にある+をクリックします。DNSBL Custom_Listウィンドウが表示されます。
  9. DNSBL Custom_Listウィンドウにvungle.comを入力します。DNSBLフィルタリングが機能しているか確認するために、既知のブロックされたドメインにアクセスしようとするため、このドメインを追加します。
  10. ページの下部にあるDNSBL設定を保存をクリックします。

    DNSBLリストオン

pfBlockerNGのアップデートを強制的に実行

上記で行ったように、pfBlockerNGのアップデートを強制的に実行する必要があります。

  1. アップデートタブを選択します。pfBlockerNGアップデートページに移動します。
  2. 実行をクリックします。アップデートが開始されます。

    アップデート設定

アップデートが完了すると、DNSBLフィードが更新されたことが確認できます。

DNSBLアップデートログ

DNSBLのテスト

DNSBLフィルタリングが機能していることを確認するために、DNSBL Custom_Listに追加したドメインvungle.comにアクセスを試みます。ブラウザでvungle.comにアクセスしようとすると、DNSBLブロックページが表示され、いくつかの有益な情報が表示されます。

注意: pfBlockerのDNSBLには、このブロックページを提供するためのミニWebサーバーが含まれています。IPv4、IPv6、GeoIPフィルタリングは、pfSenseファイアウォールの既存の機能を拡張し、ブロックページを表示せずにIPアドレスをブロックまたは許可します。

DNSBLテスト

これで、IPv4フィルタリング、GeoIPフィルタリング、DNSBLを設定しました。これらの設定を行うことで、ネットワークのセキュリティを向上させるとともに、不要な広告やマルウェア配布サイトへのアクセスを遮断することができます。

まとめ

さて、これで完了です。pfSenseでpfBlockerNG-develのインストールと設定に成功しました。IPv4フィルタリング、GeoIPフィルタリング、DNSBLフィルタリングを設定しました。これら3つを使用することで、接続速度を低下させることなく、ネットワークをより安全でプライベートに保つことができます。

ネットワークが成長するにつれて、VPNサーバーを実行したり、インターネットからアクセス可能なWebサーバーをホストしたりする場合には、WAN上で特定のポートを開く必要があるかもしれません。そのような場合、pfBlockerNGは、外部からのアクセスを精密に制御し、ネットワークをロックダウンするのに役立つ、セキュリティツールキットの素晴らしいツールとなります。

関連記事: 最適なVPNの探し方

Leave a Comment