「ファイアウォールを設定してください」と言われたけれど、そもそも何をどう設定すればいいのかわからない――そんな経験はありませんか。
ファイアウォールはネットワークセキュリティの基本中の基本ですが、種類や仕組みを体系的に理解しないまま「なんとなく動いている」状態の現場は少なくありません。設定ミス1つで、外部から丸見えになるリスクもあります。
この記事では、ファイアウォールの仕組み・種類・具体的な設定方法について、現場で使えるレベルで解説します。Linux環境でのfirewalld設定例も交えながら、中小企業の情シス担当者が押さえるべきポイントを網羅しました。

ファイアウォールとは?なぜ重要なのか
ファイアウォールとは、ネットワーク上の通信を監視し、あらかじめ定めたルールに基づいて許可・拒否を行うセキュリティ機構です。建物に例えるなら「入口の警備員」のような存在で、不審な訪問者を中に入れない役割を果たします。
なぜファイアウォールが重要かというと、インターネットに接続された機器は常に外部からのアクセスにさらされているためです。不要なポート(通信の出入口)が開いたままだと、攻撃者にとっては「鍵のかかっていないドア」と同じ状態になります。
特に中小企業では、ファイアウォールの設定がデフォルトのまま放置されていたり、「よくわからないからすべて許可」にしていたりするケースが見受けられます。ファイアウォールは、正しく設定してはじめて効果を発揮するものです。
ファイアウォールの仕組み(通信をどう判断するか)
ファイアウォールがどのように通信を判断しているのか、基本的な仕組みを理解しておきましょう。
ネットワーク通信は「パケット」と呼ばれる小さなデータの塊に分割されてやり取りされます。ファイアウォールは、このパケットに含まれる情報を確認して、通過させるか遮断するかを判断します。
パケットには主に以下の情報が含まれています。
・送信元IPアドレス: 通信を送った側のアドレス
・宛先IPアドレス: 通信を受け取る側のアドレス
・ポート番号: 通信の種類を識別する番号(例: HTTP=80、HTTPS=443、SSH=22)
・プロトコル: 通信の方式(TCP、UDP、ICMPなど)
ファイアウォールは、これらの情報と事前に設定された「ルール」を照合し、条件に合致する通信を許可または拒否します。ルールは通常、上から順に評価され、最初にマッチしたルールが適用されます。どのルールにもマッチしない通信に対しては「デフォルトポリシー」(すべて拒否、またはすべて許可)が適用されます。
セキュリティの観点からは、デフォルトポリシーを「すべて拒否」にしておき、必要な通信だけを明示的に許可する「ホワイトリスト方式」が推奨されます。
ファイアウォールの種類と特徴
ファイアウォールにはいくつかの種類があり、検査の深さや動作する層が異なります。自社の環境にどのタイプが適しているか、特徴を把握しておきましょう。
1. パケットフィルタリング型
最もシンプルな方式です。パケットのヘッダー情報(送信元・宛先のIPアドレスやポート番号)だけを見て通信を許可・拒否します。Linuxのiptablesやfirewalldはこのタイプに該当します。
処理が高速で負荷が低い反面、パケットの中身(ペイロード)は検査しないため、正規のポートを使った攻撃は検知できません。
2. ステートフルインスペクション型
パケットフィルタリングに加えて、通信の「状態」を追跡する方式です。たとえば、内部から外部へ送信したリクエストに対する応答は許可するが、外部から突然やってくる通信は拒否する、といった制御ができます。
現在の多くのファイアウォール製品やOS内蔵ファイアウォールは、このステートフルインスペクションに対応しています。
3. アプリケーション層ゲートウェイ(プロキシ型)
通信内容をアプリケーション層(HTTPやFTPなどのプロトコルレベル)まで検査する方式です。Webアクセスの内容をチェックして不正なリクエストをブロックするWAF(Web Application Firewall)もこのカテゴリに含まれます。
検査が詳細な分、処理負荷が高くなる傾向があります。
4. 次世代ファイアウォール(NGFW)
従来のファイアウォール機能に加え、アプリケーション識別、IPS(侵入防止システム)、マルウェア検知、SSL復号などを統合した多機能型です。Palo Alto Networks、Fortinet、Cisco等のメーカーが提供しています。
中小企業では、UTM(統合脅威管理)と呼ばれる製品がNGFWの機能を手頃な価格でまとめており、選択肢の1つになります。
| 種類 | 検査対象 | メリット | デメリット |
|---|---|---|---|
| パケットフィルタリング | IPアドレス・ポート番号 | 高速・低負荷 | 通信内容は検査しない |
| ステートフルインスペクション | 上記+通信の状態 | 不正な応答を検知可能 | 暗号化通信の中身は見えない |
| アプリケーション層ゲートウェイ | アプリケーション層の内容 | 詳細な制御が可能 | 処理負荷が高い |
| 次世代ファイアウォール | 複合的(アプリ識別・マルウェア等) | 多層防御を1台で実現 | 導入・運用コストが高い |
Linuxでのファイアウォール設定(firewalld)
ここからは、Linuxサーバーでよく使われるfirewalldの基本的な設定方法を紹介します。CentOS/RHEL系やAlmaLinux、Rocky Linuxなどで標準採用されているファイアウォール管理ツールです。
1. firewalldの状態確認
まず、firewalldが動作しているか確認します。
# firewalldの動作状態を確認する sudo systemctl status firewalld # 有効化されているか確認する(OS起動時に自動起動するか) sudo systemctl is-enabled firewalld
もし停止している場合は、以下で起動と自動起動を有効化します。
# firewalldの起動と自動起動の有効化 sudo systemctl start firewalld sudo systemctl enable firewalld
2. 現在のルール確認
設定を変更する前に、現在どのようなルールが適用されているかを確認しましょう。
# 現在のゾーンと許可サービスを一覧表示する sudo firewall-cmd --list-all
firewalldでは「ゾーン」という概念でルールを管理します。デフォルトのゾーン(通常は「public」)に対してサービスやポートの許可・拒否を設定します。
3. 必要なサービスだけを許可する
Webサーバーを運用している場合、HTTP(80番ポート)とHTTPS(443番ポート)を許可し、不要なサービスは閉じます。
# HTTPとHTTPSを永続的に許可する sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https # 不要なサービスを削除する(例: cockpitが不要な場合) sudo firewall-cmd --permanent --remove-service=cockpit # 設定を反映する sudo firewall-cmd --reload # 反映後の確認 sudo firewall-cmd --list-all
4. SSHのポート番号を変更する
SSHのデフォルトポート(22番)は攻撃者に狙われやすいため、ポート番号を変更することで自動化されたブルートフォース攻撃の大半を回避できます。
# SSHの設定ファイルでポート番号を変更する(例: 10022に変更) sudo vi /etc/ssh/sshd_config # 変更箇所: Port 22 → Port 10022 # SELinuxが有効な環境ではポリシーの更新が必要 sudo semanage port -a -t ssh_port_t -p tcp 10022 # firewalldで新しいポートを許可する sudo firewall-cmd --permanent --add-port=10022/tcp # 旧ポート(22番)を閉じる sudo firewall-cmd --permanent --remove-service=ssh # 設定を反映する sudo firewall-cmd --reload # SSHサービスを再起動する sudo systemctl restart sshd
ポート変更後は、新しいポート番号で接続できることを必ず確認してから旧ポートを閉じてください。ロックアウト(自分自身が接続できなくなる事態)を防ぐため、既存のSSHセッションを維持したまま、別の端末から新ポートで接続テストすることを強く推奨します。
中小企業でも今日からできること
高価な機器を導入しなくても、ファイアウォールの基本的な見直しはすぐに着手できます。
| 対策 | 内容 | コスト |
|---|---|---|
| 不要ポートの棚卸し | 開いているポートを確認し、使っていないものを閉じる | 無料 |
| デフォルト設定の見直し | ファイアウォールのデフォルトポリシーが「拒否」になっているか確認する | 無料 |
| SSHポートの変更 | 22番ポートから別のポートに変更し、自動攻撃を軽減する | 無料 |
| ルーターのファイアウォール確認 | オフィスのルーターでも基本的なフィルタリングが有効か確認する | 無料 |
特にLinuxサーバーを運用している場合、firewalldの状態確認は5分もかかりません。まずは「何が許可されているか」を把握するところから始めてみてください。
よくある誤解と注意点
【注意】「ファイアウォールがあれば安全」は過信
ファイアウォールはあくまで入口の防御です。許可されたポートを経由した攻撃(例: HTTPS経由のSQLインジェクション)はファイアウォールだけでは防げません。WAFやIDS/IPS、定期的な脆弱性スキャンなど、多層防御の考え方が必要です。
【注意】「ポートを閉じすぎて業務が止まる」問題
セキュリティを厳しくしすぎて、必要な通信まで遮断してしまうケースがあります。設定変更時は、変更内容を記録し、問題が発生したらすぐに切り戻せるようにしておきましょう。本番環境でいきなり変更するのではなく、検証環境でテストしてから適用するのが安全です。
【注意】「内部ネットワークは安全」は危険な前提
社内ネットワークの通信はファイアウォールの対象外にしている組織もありますが、内部に侵入された場合の横移動(ラテラルムーブメント)を考慮すると、内部セグメント間にもファイアウォールルールを設定する「マイクロセグメンテーション」の考え方が重要になってきています。
本記事のまとめ
ファイアウォールは、ネットワークセキュリティの第一歩となる防御機構です。仕組みと種類を正しく理解し、自社の環境に合った設定を行うことが重要です。
まず取り組むべきは「現状の設定確認」と「不要ポートの閉鎖」です。Linuxサーバーであればfirewalldのコマンド数行で確認できますし、オフィスのルーターも管理画面から設定を確認できます。
| 脅威 | 対策 | 難易度 |
|---|---|---|
| 不要ポートからの侵入 | firewalldで使用ポートのみ許可 | 低(すぐできる) |
| SSH総当たり攻撃 | ポート変更 + 鍵認証 + fail2ban | 低(すぐできる) |
| 許可ポート経由の攻撃 | WAF・IDS/IPSとの多層防御 | 中(段階的に導入) |
| 内部ネットワークの横移動 | マイクロセグメンテーション | 高(設計から見直し) |
Linuxサーバーのfirewalld設定やSELinuxについてさらに詳しく知りたい方は、姉妹サイトLinuxMaster.JPもあわせてご覧ください。
ファイアウォールの設定、自社は大丈夫ですか?
ネットワークの入口を守るファイアウォールは、正しく設定してこそ機能します。
正しいセキュリティ知識を体系的に身につけたい方へ、メルマガで実践的なセキュリティ対策ノウハウをお届けしています。


コメント