「ファイアウォールのテスト」を怠ってはいけない“端的な理由”:ファイアウォールの正しい使い方【後編】
ファイアウォールはネットワークの守りの要だが、設定ミスによって意図しない通信を遮断したり、不正な侵入を通したりするリスクがある。ファイアウォールのテストがなぜ不可欠なのかを解説する。
ファイアウォールはネットワーク管理者が許可した通信のみを通過させ、不正なアクセスを防ぐ装置だ。防御の要とも言える装置だが、その設定を誤ると、自社のネットワークを自ら閉ざしてしまうという事態になりかねない。ファイアウォールのテストが重要な理由と、ファイアウォールのテスト手法を解説する。
「ファイアウォールのテスト」を怠ってはいけない理由
併せて読みたいお薦め記事
連載:ファイアウォールの正しい使い方
狙われるファイアウォール
ファイアウォールの設定や運用ルールは日々変化していくものであり、複雑化する。そうしたファイアウォールによるトラブルを避けるために、ファイウォールのテストは重要だ。
ファイアウォールが、正しく機能しているかどうかを検証するプロセスは、ファイアウォールの設定を変更する際に欠かせない。まずはファイアウォールがどのように設定したルールを処理するのかを確認しよう。
- ファイアウォールのルールは、決まった順序で処理される
- ファイアウォールは、設定されたルールの順に上から順番にトラフィック(ネットワークを流れるデータ)を検査していく
- 最初に合致するルールが適用され、以降のルールは無視される
- 他のどのルールにも合致しないトラフィックは全てブロックする「全て拒否」というルールがあり、適用される
ファイアウォールのルールの一覧は複雑になりやすく、ネットワーク管理者は最新の状態を把握する必要がある。次のコマンドでファイアウォールのルールの一覧を確認できる。
- 「sudo firewall-cmd --list-all」
- Red Hatの「Linux」ディストリビューションで使用できる
- 「sudo ufw status verbose」
- 「Ubuntu」や「Debian GNU/Linux」などのLinuxディストリビューションで利用できる
- 「Get-NetFirewallRule」
- MicrosoftのクライアントOS「Windows」が標準搭載するコマンド実行ツール「Windows PowerShell」で利用できる
ファイアウォールをテストする方法
ファイアウォールを包括的にテストするためには通常、複数のコマンドやツールを組み合わせる。以下は主なテストの種類だ。
- コマンド入力による疎通確認
- ファイアウォールで許可したプロトコルでデバイスが通信できるかどうかを、手作業のコマンド入力によって確認する
- 例えば、ファイアウォールの内側にあるデバイスから通信プロトコルの「HTTP」(Hypertext Transfer Protocol)や「HTTPS」(Hypertext Transfer Protocol Secure)でWebサーバに接続できるかどうかや、SSHを使用してサーバを管理できるかを確認する
- パケットのトレースによる経路確認
- 通信相手までの経路情報を取得する「traceroute」コマンド(Windowsでは「tracert」コマンド)を使用してパケット(ネットワークを流れる分割されたデータ)が通過する経路を確認する
- ファイアウォールの設定で、通信状態の確認をするためのプロトコル「Internet Control Message Protocol」(ICMP)のパケットを許可しておくことに注意する
- スキャンツールによるポートスキャン
- どのポートが開いているかを確認する「ポートスキャン」によって、不要なポートを特定して、閉めることでセキュリティを強化できる
- ポートスキャンツールとしてはオープンソースの「Nmap」や「Angry IP Scanner」などがある
- ペネトレーションテスト
- ペネトレーションテストツールによって、ファイアウォールのロジックや設定の誤り、脆弱(ぜいじゃく)性を確認する
より包括的なテストを実施する場合には、以下のアプローチでファイアウォールの設定を検証できる。
- 機能テスト
- ファイアウォールがパケットフィルター、ログ、アラートなどの基本的なタスクを実行できているかどうか
- パフォーマンステスト
- ファイアウォールが想定通りの負荷で機能するかどうか
- ネットワークの負荷が高い状態を模擬してテストできるツールもある
- コンプライアンステスト
- ファイアウォールの設定は業界標準のコンプライアンス(法令順守)要件を満たしているかどうか
- 米国立標準技術研究所(NIST)によるファイアウォールとファイアウォールのルールに関する勧告「NIST Special Publication 800-41 Revision 1, Guidelines on Firewalls and Firewall Policy」などのガイドラインを確認する
テスト結果に正しく対処する
ファイアウォールが正常に動作することを確認したら、次は何をすべきか。
まずは許可するプロトコルをリストアップしよう。許可していないプロトコルは「全て拒否」ルールでブロックする。
許可したはずのプロトコルを利用するトラフィックが通過できない場合、許可するプロトコルのリストと、当該プロトコルを許可するルールより前にブロックするルールが適用されていないことを確認する。ファイアウォールの設定に関する問題の大半は、以下の2点を確認することで対処できる。
- 当該プロトコルを明示的に許可するルールはあるか
- 当該プロトコルを明示的に許可するルールより前にブロックするルールが適用されないか
テスト結果で特定した問題を解決したら、ファイアウォールの設定をドキュメント化して残す。設定のバックアップを作成することで、万が一の設定ミスや障害発生時に迅速に復元できる。
最後に、ファイアウォールが想定通りに機能しているかどうかを確認するテスト計画を策定する。テストする項目を決定することで、ファイアウォールが必要なトラフィックをブロックするなどのトラブル時の対処に役立つ。
追加のテストと設定に関する手法
可能であれば、ファイアウォールのテストとトラブルシューティングの手順に、次の内容を取り入れることが望ましい。
- ファイアウォール設定を変更できるユーザーを最小限に抑える「最小権限の原則」に基づいて管理者権限を制限する。
- ファイアウォールの更新を変更管理プロセスに統合する
- ファイアウォールの設定は安易に変更できない運用ルールにすることで、トラブルを防ぐことができる
- 例えば、ファイアウォールの内側にサーバを導入する際には、ファイアウォールのルールを更新してサーバへのトラフィックを許可する必要がある。
- テスト自動化
- 通常、テストは手動でやるよりも自動化した方が高速だし、過去のテスト結果との一貫性も保てる
- ポートスキャン用のツールとして紹介したNmapなどのツールはスクリプトの作成が可能になっている。
TechTarget発 世界のインサイト&ベストプラクティス
米国TechTargetの豊富な記事の中から、さまざまな業種や職種に関する動向やビジネスノウハウなどを厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.