ファイアウォール
Firewall
ファイアウォールは、決められたルールに従って、ネットワーク通信を許可・拒否する仕組みです。外部からの通信だけでなく、内部から外部への通信や組織内の区間にも使います。許可した通信が無害であることまで保証するものではありません。
🐾 猫で例えると?
ハンモックで周りを見張るアメショを、通行ルールを確認する門番に見立てます。「この入口には家族だけ」「この時間は通さない」という決まりに合わせて前足で止めるイメージです。ファイアウォールも万能な目利きではなく、設定された条件で判断します。許可リストに入った通信の中に問題があれば、別の対策も必要です。
💻 IT現場における「ファイアウォール」とは?
IT現場において「ファイアウォール」は、ネットワークセキュリティの第一の砦です。元々は「防火壁」を意味する言葉であり、建物の火災が他の部屋に延焼するのを防ぐ壁のように、外部のサイバー脅威が内部の社内LANやサーバーに燃え移らない(侵入しない)ように遮断する役割を持っています。
ネットワークを流れるデータは「パケット」という小さな塊に小分けされています。ファイアウォールは、このパケットの「送信元IPアドレス」「送信先IPアドレス」「ポート番号(通信の種類を示す番号)」「通信の方向」などを瞬時に読み取り、あらかじめ管理者が決めたルールに従って、通過(Allow)させるか、破棄(Deny / Drop)するかを判断しています。
⚠️ ファイアウォールの仕組みとフィルタリングの種類
ファイアウォールにはいくつかの種類があり、ネットワークのどの階層(レイヤー)を監視するかによって防御レベルが異なります。最も基本的なものが「パケットフィルタリング型」で、より高度なデータの中身(アプリケーション層)までチェックするものは「アプリケーションゲートウェイ型」や「次世代ファイアウォール(NGFW)」と呼ばれます。
Linuxサーバーでの設定例
以下はUbuntuのUFWを使う検証用の例です。SSH経由で操作している場合、実際の管理元アドレスとポートを先に許可しないと、自分の接続を失うおそれがあります。既存ルールと復旧手段を確認してから有効化します。
# Ubuntu/UFW。管理元192.168.1.50、SSHは22/tcpという例
sudo ufw allow from 192.168.1.50 to any port 22 proto tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw default deny incoming
sudo ufw status verbose
# 設定と管理接続を確認してから有効化する
sudo ufw enable このように、「基本はすべて通さないけれど、身元がはっきりしている通信や、必要なサービス(Web閲覧など)の窓口だけをピンポイントで開ける」という設定を行うことで、不要な通信を受け付ける範囲を減らせます。
🛠️ 「ファイアウォール」を賢く運用するためのポイント
ファイアウォールをただ導入するだけでは不十分であり、現場での適切な設計と運用が不可欠です。
- 「最小特権の原則」を徹底する: 使う予定のないポート(窓口)はすべて閉じておくのが鉄則です。窓口が開いていればいるほど、ハッカーに侵入の隙を与えるリスク(アタックサーフェス)が増大します。
- 評価方法を確認: 順番が重要な製品も、優先度や許可規則の組合せで決まる製品もあります。利用する製品の評価規則に合わせ、許可される通信と拒否される通信を両方テストします。
- WAFとの役割分担: IPやポートを中心に見る制御と、HTTPの内容を検査するWAFは対象が異なります。WAFだけで脆弱性が直るわけではないため、アプリの入力処理や認可の修正も必要です。
見張りをするアメショのように、ファイアウォールは決めた条件で通信を通すか判断します。許可する相手とサービスを絞り、変更後は必要な通信が通るかを確認しましょう。許可した通信の中身まで、すべて安全と保証する仕組みではありません。