オンラインセキュリティにおいて、ファイアウォールは、悪意のあるサイバー攻撃からデータやネットワークを守るために不可欠なツールです。ファイアウォールとは、ネットワークやコンピューター、その他のシステム間のアクセスを制御するよう設計されたシステムです。
ファイアウォールルールはこのセキュリティシステムの重要な要素であり、どのネットワークトラフィックをファイアウォール経由で通過させ、どのトラフィックをブロックするかを決定します。明確なファイアウォールルールを設定することで、企業は正規ユーザーに必要なサービスへのアクセスを許可しながら、潜在的な脅威からシステムを保護できます。
ファイアウォールルールとは?
ファイアウォールルールとは、ファイアウォール機器が受信および送信トラフィックを処理する方法を制御する指示です。あらかじめ定めた基準に基づいて通信をブロックまたは許可し、ネットワークのセキュリティを強制するアクセス制御メカニズムでもあります。基準には、送信元または宛先のIPアドレス、ポート、プロトコル、サービスなどが含まれます。
ファイアウォールの種類によっては、特定のアプリケーションにアクセスできるユーザーやグループ、またはネットワーク内で特定のデータを移動できる場所もルールで指定します。ルールを有効にするには、ファイアウォールの設定で明示的に定義し、有効化する必要があります。
ファイアウォールルールはどのように機能する?
ファイアウォールは、受信および送信される各データパケットをファイアウォールルールと照合します。パケットがいずれかのルールに一致すれば、ファイアウォールは宛先への通過を許可します。一致しなければ拒否し、設定されている場合はその旨を報告します。
ファイアウォールルールは、アクセス制御リスト(ACL)として設定されます。ACLは、許可または拒否するトラフィックを定義した、順序付きの権限リストです。一般的なACLには、アクション(許可、拒否、またはリジェクト)と、そのアクションを適用する前にトラフィックが満たすべき条件やパラメーターが記載されます。
セキュリティを確保するため、ファイアウォールでは「デフォルト拒否」ポリシーがよく使われます。これは、ファイアウォールルールに示された基準を明示的に満たさないトラフィックをすべて拒否するという意味です。
非常に単純な例として、「IPアドレスXからポートYへのすべてのトラフィックを許可する」というルールを考えてみましょう。パケットがファイアウォールに到達すると、ファイアウォールは送信元と宛先を読み取ります。パケットの送信元がXで宛先がYなら、パケットは通過します。一方、送信元がZの場合、あるいは送信元が不明で宛先がYの場合は拒否されます。
ファイアウォールルールは通常どこに保存される?
ファイアウォールルールは、特定のファイアウォールのルールと設定を含むファイアウォール設定ファイルに保存されます。設定ファイルは通常、ファイアウォールを実行しているサーバー上にあります。
設定ファイルにはネットワーク管理者がアクセスして変更を加え、必要に応じて新しいルールを追加したり、既存のルールを変更したりします。変更内容は保存されてファイアウォールに適用されるため、直ちに反映できます。ファイアウォールの種類によっては、ルールがレジストリや外部データベースなど、異なる場所に保存される場合もあります。
ファイアウォールルールの適用順序
ファイアウォールルールは上から下へ適用されます。つまり、ファイアウォールは最初に作成されたルールから始め、作成順に一連のルールを最後まで実行します。SANS Instituteのファイアウォールチェックリストでは、ファイアウォールルールの作成・設定時に、次の順序を推奨しています。
- アンチスプーフィングフィルター:外部から現れる、ブロック対象のプライベートアドレスや内部アドレスに適用する。
- ユーザー許可ルール:「公開WebサーバーへのHTTPを許可する」など。
- 管理用許可ルール:「ネットワーク管理サーバーへのSNMPトラップ」など。
- ノイズの破棄:「OSPFやHSRPの不要な通信を破棄する」など。
- 拒否とアラート:疑わしいトラフィックについてシステム管理者に警告する。
- 拒否とログ記録:残りのトラフィックを分析用に記録する。
ファイアウォールルールのベストプラクティス10選
最高レベルのセキュリティを確保するには、デバイス間のルールの文書化、ファイアウォールログの監視、最小権限アクセスの実装など、ファイアウォール設定に関するベストプラクティスに従うことが重要です。
1. 複数のデバイスにまたがるファイアウォールルールを文書化する
すべてのファイアウォールルール設定を文書化し、その文書を頻繁に更新します。これにより、管理者は現在の設定を確認し、ネットワークセキュリティ上の脅威や脆弱性が検出された場合に必要な変更を加えられます。
文書化によって、ルールが存在する理由と、それによって解決される課題が明確になります。そのため管理者は、ルールを有効なままにすべきかどうかを迅速に判断でき、攻撃者に抜け穴を見つけられるリスクを抑えられます。また、コンプライアンス目的の監査証跡としても機能します。
2. デフォルト拒否ポリシーを実装する
常にデフォルト拒否ポリシー(deny any/anyとも呼ばれる)から始め、明示的に許可した場合を除くすべてのトラフィックを拒否します。これにより、新たな脅威が正体不明のままネットワークに侵入するのを防げます。正規のトラフィックを誤ってブロックしてから手動で上書きするほうが、壊滅的な脅威を通過させるよりも安全です。
3. ファイアウォールログを監視する
優れたネットワークセキュリティを維持するには、ファイアウォールログを定期的に監視することが不可欠です。ログを記録すれば、管理者はネットワーク全体のトラフィックの流れを追跡し、疑わしい活動を探し、問題のトラブルシューティングを行えます。また、誰が何の目的でシステムを利用しているかも把握できます。
活動レベルを追跡すると、利用量の急増や急減を見つけやすくなり、攻撃が発生した可能性を示す兆候を把握できます。組織のインフラが複雑な場合は、ルーター、サーバー、スイッチなどシステム各コンポーネントのログを1カ所に集約し、分析やアラートに利用できます。
4. ファイアウォールルールをグループ化して複雑さを減らし、パフォーマンスを最大化する
ルール構造を簡素化するためにファイアウォールルールをグループ化することは、複雑さを減らし、ファイアウォールのパフォーマンスを最適化するうえで重要です。送信元・宛先アドレス、プロトコル、ポート、サービスなど、特性が似たルールをまとめることで、必要なルール数を減らし、ルールセット全体を管理しやすくできます。
さらに、ネットワークを複数のゾーンに分割し、それぞれにファイアウォールルールを適用すると、トラフィックの流れを制御し、意図しない露出の可能性を減らし、ファイアウォールの速度とパフォーマンスを向上させられます。
5. アプリケーションレベルの制御を設定する
ファイアウォールを設定して、ネットワークへのアクセスを試みるすべてのアプリケーションではなく、Webブラウザーやメールクライアントなど、特定のアプリケーションのみを許可し、サービスへの接続も制限します。これにより、ネットワークに接続できるアプリケーションを制限し、セキュリティをさらに強化できます。
6. 監視モードを使用する
監視モードとは、ファイアウォールルールを作成する前に、ネットワークトラフィックをブロックせず観察できるルール設定です。現在のネットワークトラフィックを確認し、必要なトラフィックを特定して許可したうえで、追加のトラフィックを許可または拒否するルールを作成できます。
監視モードを使用する際、管理者はIPアドレスとポートを使ってトラフィックを特定し、それが必要なものか確認します。トラフィックを特定したら、送信元IP、宛先IP、宛先ポートのリストを作成し、適切なファイアウォールルールを作成できるようトラフィックの分類を始めます。
7. 最小権限アクセスを実装する
ユーザーアクセスを、業務の遂行に必要な最小限の権限に制限します。これにより、特定のサービスやリソースへのアクセスを必要とするユーザーだけが、そのアクセス権を取得できます。
例えば、ユーザーが業務上FTPアクセスを必要としない場合、管理者はそれを防止するようルールを設定すべきです。このルール設定により、機密情報やリソースへの偶発的または意図的な不正アクセスのリスクを抑えられます。
8. 冗長なファイアウォールルールを削除する
適切に管理されていないファイアウォールには、冗長で不要なルールが蓄積する傾向があります。システムを圧迫し混乱の原因となる不要なルールや重複するルールがないか、定期的に確認して削除してください。
9. ファイアウォールルールを定期的に見直す
他のセキュリティ対策と同様、ファイアウォールを現在の脅威に対応した最新の状態に保つことが重要です。そのためには、ファイアウォールルールを定期的に確認して更新する必要があります。すべてのセキュリティポリシーの一貫性を維持し、すべての脅威に迅速かつ効果的に対処できるようにすることも含まれます。
10. 次のポートをブロックする
SANS Instituteのファイアウォールチェックリストでは、次のポートを使用する送信トラフィックをブロックするよう推奨しています。
| サービス | ポート | ポート番号 |
|---|---|---|
| DNSゾーン転送 | TCP | 53 |
| TFTPデーモン | UDP | 69 |
| Link | TCP | 87 |
| BSD Unix | TCP | 512-514 |
| Small service | TCP and UDP | 20 and below |
| SMTP(外部メールリレーを除く) | TCP | 25 |
| Windows NTのNetBIOS | TCP and UDP | 135 |
| Windows NTのNetBIOS | UDP | 137 and 138 |
| IMAP | TCP | 143 |
| LDAP | TCP and UDP | 389 |
| Syslog | UDP | 514 |
| Cisco AUX port | TCP | 2001 |
| Cisco AUX port (Stream) | TCP | 4001 |
| Cisco AUX port (binary) | TCP | 6001 |
| 一般的な高位HTTPポート | TCP | 8000、8080、8888 |
これらのポートをブロックすると、特定のサービスへの不正アクセスを防ぎ、ネットワーク上で悪意のある活動が発生するリスクを低減できます。さらに、多くの組織では、ネットワークの帯域幅使用量を抑えるため、オンラインゲームやピアツーピア(P2P)ファイル共有に関連する特定のポートもブロックしています。
ファイアウォールルールの5つの種類
導入されているセキュリティシステムの種類によって、適用可能なファイアウォールルールにはさまざまな種類があります。代表的なファイアウォールルールには、次のようなものがあります。
- アクセスルール:送信元・宛先アドレス、プロトコル、ポート番号に基づき、特定の種類のトラフィックを通過、ブロック、または拒否します。
- ネットワークアドレス変換(NAT)ルール:NATルールはIPアドレスをあるネットワークから別のネットワークへ変換し、ネットワーク間のトラフィックを容易にルーティングできるようにします。また、プライベートネットワークを外部の脅威から保護するためにも使用できます。
- ステートフルパケットフィルタリングこのファイアウォールルールは、ファイアウォールを通過する各パケットを検査し、接続状態を追跡します。パケットの情報を既存の接続状態と比較し、その比較結果に基づいてパケットを許可または拒否します。
- アプリケーションレベルゲートウェイ:プロキシサーバーとも呼ばれ、インターネットと内部ネットワークの間で門番の役割を果たします。プロキシサーバーはOSIモデルのアプリケーション層(レイヤー7)で動作します。外部ネットワークへのアクセスを制御して内部ネットワークを保護します。ネットワーク管理者は、特定のWebサイトへのアクセスを制限したり、特定の種類のコンテンツをブロックしたり、ネットワークへのアクセスを許可するデバイスを制限したりできます。
- サーキットレベルゲートウェイ:これらのファイアウォールは、OSIネットワークモデルのセッション層(レイヤー5)で動作し、そこで接続が確立・維持されます。サーキットレベルゲートウェイは、受信するTCPおよびIPパケットを認証し、設定されたルールに基づいてトラフィックを許可または拒否します。
ファイアウォールルールの例
ファイアウォールルールセットは、送信元アドレス、送信元ポート、宛先アドレス、宛先ポート、トラフィックを許可するか拒否するかの指定などの条件に基づき、トラフィックをブロックまたは許可するよう設定できます。
| 送信元アドレス | 送信元ポート | 宛先アドレス | 宛先ポート | アクション |
|---|---|---|---|---|
| 192.168.1.2 | 80 | 10.10.10.20 | 22 | 許可 |
| 10.10.0.0/24 | 任意 | 192.168.0.0/24 | 443 | 拒否 |
| 任意 | 任意 | 任意 | 任意 | 拒否 |
上記のファイアウォールルールの例では、ポート80の192.168.1.2からポート22の10.10.10.20へのトラフィックを許可し、ポート443の192.168.0.0/24から10.10.0.0/24へのトラフィックを拒否するとともに、任意の送信元アドレスとポートからの受信トラフィックをすべて拒否します。
一連のルールを定義することで、管理者は許可するトラフィックとブロックするトラフィックを制御でき、ネットワークにセキュリティのレイヤーを追加できます。
pfSenseでファイアウォールルールを作成する8つの手順
pfSenseは、FreeBSDを基盤とするオープンソースのファイアウォールおよびルーターのディストリビューションです。ファイアウォール、仮想プライベートネットワーク(VPN)、ルーター、無線アクセスポイント(WAP)として利用できるよう設計されています。IPv4、IPv6、OpenVPN、Snort、pfBlockerNGなど、多くの一般的なネットワーク技術をサポートしています。主に、商用環境やエンタープライズ環境でネットワークを保護するファイアウォールおよびルーターとして使用されます。
pfSenseでファイアウォールルールを作成する方法は次のとおりです。
手順1:pfSenseのWebインターフェースにログインします。
手順2:[Firewall]に移動し、[Rules]を選択します。
手順3:任意のpfSenseネットワークデバイス(WANまたはLANデバイスなど)を選択します。

手順4:新しいルールを作成するには、[Add]ボタンをクリックします。左側にある上向き矢印付きの[Add]ボタンでは リストの先頭にルールが作成され、右側にある下向き矢印付きの[Add]ボタンではリストの末尾にルールが作成されます。
手順5:ルールに一致したときに実行するアクション(pass、block、reject)を選択します。

- Passは、ルールによってトラフィックが許可されることを意味します。
- Blockは、ルールによってトラフィックの通過がブロックされることを意味します。
- Rejectは、ルールによってトラフィックが拒否され、エラーメッセージが返されることを意味します。
手順6:適切なインターフェース、プロトコル、送信元と宛先の情報を選択します。

- インターフェース:任意のインターフェース(WANまたはLANなど)を選択します。
- アドレスファミリー:正しいアドレスファミリー(IPv4、IPv6、またはその両方)を選択します。
- プロトコル:TCP、UDP、ICMPなど、ルールを適用するプロトコルを選択します。
- 送信元:トラフィックの送信元を定義します。IPアドレス、ネットワーク、PPPoE、L2TPIPを指定できます。
- 宛先:送信元の情報と同様に、宛先IPアドレスまたは範囲を定義します。
手順7:適切なログ記録オプションを選択します。

手順8:[Save]をクリックします。これで新しいルールがリストに表示されます。
まとめ:ファイアウォールルールでセキュリティを強化する
ファイアウォールルールのさまざまな種類と、設定時のベストプラクティスを理解することで、エンタープライズネットワークの安全性と正常な動作を確保できます。組織のネットワークとユーザーの具体的なニーズを考慮し、業界標準に沿ってルールを正しく設定してください。
ファイアウォールルールを作成する際は、ネットワーク全体のパフォーマンスへの影響を考慮することも重要です。制限の厳しいルールが多すぎると遅延が発生する可能性がある一方、許可範囲が広すぎるルールはセキュリティ上の脆弱性を生むおそれがあります。ファイアウォールルールは慎重に設定し、最新の状態を維持できるよう定期的に見直してください。
1つの次世代ファイアウォールによって、すべてのレイヤーにわたって保護範囲を広げます。