NETWORK BASICS / 04

ファイアウォールとは?
役割と基本設定を実際のネットワーク構成から解説

ネットワーク基礎シリーズ第4回。ファイアウォールは、ネットワークの境界で通信を確認し、ルールに基づいて許可・拒否する機器です。本記事では、Stractoの検証環境で使用しているFortiGate-60Eの実設定を一般化しながら、Security Zone、Address Object、Firewall Policy、ルーティング、NAT、管理・監視などの基本を整理します。

公開日:2026.09.18 読了目安:9分 ネットワーク基礎シリーズ 第4回 Stracto Technical Lab

NETWORK BASICS SERIES

ネットワーク基礎シリーズ

ネットワークを構成する主要機器を、実際の構成・設定例を交えながら順番に解説します。

#01 / PUBLISHEDコアスイッチ
#02 / PUBLISHEDアクセススイッチ
#03 / PUBLISHEDルータ
#04 / CURRENTファイアウォール

ファイアウォールとは

ファイアウォールは、ネットワーク間を流れる通信を検査し、あらかじめ定義したポリシーに基づいて通信を許可または拒否する機器です。社内LANとインターネットの境界だけでなく、DMZ、管理ネットワーク、開発ネットワークなど、異なるセキュリティレベルのネットワークを分離するためにも利用されます。

ルータも異なるネットワーク間の通信を中継しますが、ファイアウォールでは「どこから、どこへ、何の通信を許可するか」というセキュリティ制御が中心になります。

POINT 01通信を制御する

送信元、宛先、サービスなどの条件で通信を許可・拒否します。

POINT 02ネットワークを分離する

Trust、Untrust、DMZ、MGMTなど、役割ごとに境界を作ります。

POINT 03ログを残す

許可・拒否された通信を記録し、障害解析やセキュリティ確認に利用します。

ネットワークの中でどこに置かれるのか

Stractoの検証環境では、FortiGate-60Eを次世代ファイアウォールとして使用しています。内部側はLAGでコアスイッチへ接続し、外部側は2本のWANインターフェースをRedundant Interfaceとしてまとめる構成です。

さらに、検証環境ではDMZと管理用ネットワークも個別に定義しています。通信経路だけでなく、「そのインターフェースがどのセキュリティ領域に属するのか」を整理しておくことで、ポリシーを設計しやすくなります。

実務上のポイント:ファイアウォールでは、ポリシーを作る前に「Trust / Untrust / DMZ / MGMTをどう分けるか」を決めておくことが重要です。ゾーン設計が曖昧だと、後からルールが複雑になりやすくなります。

ルータとの違い

項目 ファイアウォール ルータ
主な役割 通信の許可・拒否、セキュリティ制御 宛先に応じた経路制御
判断条件 Zone、送信元、宛先、Service、Applicationなど 主に宛先IPとルーティングテーブル
状態管理 セッションを追跡するStateful Inspectionが中心 製品・機能による
NAT 構成に応じて実施 構成に応じて実施

ファイアウォールで必要になる基本設定

StractoのFortiGateでは、物理・論理インターフェース、LAG、Redundant Interface、Security Zone、Address Object、Firewall Policy、Static Route、管理アクセス、NTP、SNMPなどを設定しています。

  • Interface:Trust / Untrust / DMZ / MGMTなどの接続先を定義する
  • Zone:複数のインターフェースを役割ごとのセキュリティ領域へまとめる
  • Address Object:IPアドレスやFQDNを名前付きオブジェクトとして管理する
  • Service:HTTP、HTTPS、IKE、ESPなど通信種別を定義する
  • Firewall Policy:送信元・宛先・サービス・Actionを組み合わせて通信を制御する
  • Routing:接続ネットワーク以外への経路を設定する
  • NAT:必要な場合にアドレス変換を行う
  • 管理・監視:管理元制限、NTP、SNMP、ログなどを設定する

Security Zoneの設定

FortiGateでは、インターフェースをZoneにまとめてポリシーを作成できます。StractoのFortiGateでは、Trust、Untrust、DMZ、MGMTの4つのZoneを定義しています。

CONFIG EXAMPLE — SECURITY ZONE
config system zone
    edit "DMZ"
        set interface "dmz"
    next
    edit "MGMT"
        set interface "mgmt"
    next
    edit "Trust"
        set interface "LAN-LAG" "VLAN30"
    next
    edit "Untrust"
        set interface "WAN-REDUNDANT"
    next
end

公開用の例ではインターフェース名を一般化しています。Zoneを利用すると、個々の物理ポートではなく「TrustからUntrustへ」のように、役割を基準にポリシーを設計できます。

LAGとWAN冗長化

StractoのFortiGateでは、内部側の2ポートをAggregate Interfaceとしてまとめ、Trust側の接続に利用しています。また、外部側の2ポートはRedundant Interfaceとして構成しています。

CONFIG EXAMPLE — LAG
config system interface
    edit "LAN-LAG"
        set type aggregate
        set member "internal1" "internal2"
        set role lan
    next
end
CONFIG EXAMPLE — REDUNDANT WAN
config system interface
    edit "WAN-REDUNDANT"
        set type redundant
        set member "wan1" "wan2"
        set role wan
    next
end

AggregateとRedundantは目的が異なります。Aggregateは複数リンクを束ねて利用する構成、Redundant Interfaceは複数ポートのうち利用可能なリンクを使う冗長構成です。実際の利用可否や動作は機種・FortiOSバージョン・対向機器の構成に合わせて確認します。

Address Objectを使う理由

Firewall PolicyへIPアドレスを直接書き続けると、ルールが増えたときに管理しづらくなります。FortiGateでは、ネットワークやFQDNをAddress Objectとして登録し、名前でポリシーから参照できます。

CONFIG EXAMPLE — ADDRESS OBJECT
config firewall address
    edit "USER-NETWORK"
        set associated-interface "Trust"
        set subnet 192.0.2.0 255.255.255.0
    next
    edit "VPN-DESTINATION"
        set type fqdn
        set associated-interface "Untrust"
        set fqdn "vpn.example.com"
    next
end

StractoのFortiGateでも、内部ネットワークをSubnet Objectとして登録し、外部の特定宛先をFQDN Objectとして登録しています。FQDN Objectを使えば、IPアドレスが変化するサービスでも名前を基準に扱える場合があります。

Firewall Policyの基本

Firewall Policyでは、「どこから」「どこへ」「どのアドレスが」「どのサービスを使うか」を条件として通信を制御します。StractoのFortiGateではTrustからUntrustへの通信を対象に、特定のVPN通信、一般的な外向き通信、その他の通信という順序でポリシーを構成しています。

CONFIG EXAMPLE — ALLOW POLICY
config firewall policy
    edit 1
        set srcintf "Trust"
        set dstintf "Untrust"
        set srcaddr "USER-NETWORK"
        set dstaddr "VPN-DESTINATION"
        set action accept
        set schedule "always"
        set service "IKE" "ESP"
        set logtraffic all
    next
end

上記の例では、Trust側のネットワークから特定のVPN宛先へのIKE / ESP通信のみを許可しています。

最後に拒否する

CONFIG EXAMPLE — DENY POLICY
config firewall policy
    edit 100
        set srcintf "Trust"
        set dstintf "Untrust"
        set srcaddr "all"
        set dstaddr "all"
        set action deny
        set schedule "always"
        set service "ALL"
        set logtraffic all
    next
end

ポリシーは上から順に評価されるため、必要な通信を先に許可し、それ以外を拒否する考え方が基本です。公開例では意図を分かりやすくするため、拒否Actionを明示しています。

実務上のポイント:検証環境では外向き通信を広く許可するポリシーも使用していますが、これは検証目的の構成です。本番環境では業務要件に合わせて宛先・Service・Security Profileなどを必要な範囲に絞ります。

ファイアウォールにもルーティングが必要

ファイアウォールはポリシーだけでは通信できません。宛先ネットワークへパケットを転送するためのルーティング情報も必要です。StractoのFortiGateでは、内部ネットワーク向けの個別ルートと、外部側へ向ける経路を設定しています。

CONFIG EXAMPLE — STATIC ROUTE
config router static
    edit 1
        set dst 192.0.2.0 255.255.255.0
        set gateway 198.51.100.1
        set device "VLAN30"
    next
    edit 2
        set gateway 203.0.113.1
        set device "WAN-REDUNDANT"
    next
end

Firewall Policyで通信を許可していても、適切な経路がなければ宛先へ転送できません。ポリシーとルーティングはセットで確認する必要があります。

NATは必ずファイアウォールで行うとは限らない

NATはファイアウォールでもよく使われる機能ですが、ネットワーク構成によっては上位ルータ側でNATを担当する場合があります。

今回の検証環境では、Trust → UntrustポリシーでNATを有効化していません。NATは外接ルータ側で実施しており、FortiGateは主に通信制御を担当する構成としています。このように、ネットワーク構成によってはルータとファイアウォールで役割を分け、NATをルータ側で実施する場合があります。

CONFIG EXAMPLE — POLICY NAT
config firewall policy
    edit 10
        set srcintf "Trust"
        set dstintf "Untrust"
        set srcaddr "USER-NETWORK"
        set dstaddr "all"
        set action accept
        set service "ALL"
        set nat enable
    next
end

上記はNATをファイアウォール側で行う場合の一般的な例です。これはStractoのFortiGateポリシーをそのまま抜粋したものではありません。

管理・監視のための設定

StractoのFortiGateでは、管理用インターフェースを別に用意し、管理端末の送信元IPアドレスをTrusted Hostとして限定しています。管理アクセスとしてHTTPS、SSH、SNMPなども有効化しています。

CONFIG EXAMPLE — MANAGEMENT INTERFACE
config system interface
    edit "mgmt"
        set ip 192.0.2.10 255.255.255.0
        set allowaccess ping https ssh snmp
        set role lan
    next
end
CONFIG EXAMPLE — TRUSTED HOST
config system admin
    edit "admin"
        set trusthost1 192.0.2.100 255.255.255.255
        set trusthost2 192.0.2.101 255.255.255.255
    next
end

NTP / SNMP

FortiGateは内部のNTPサーバと時刻同期し、SNMPによる監視も有効化しています。記事内では、実際のSNMP Communityや監視サーバのIPアドレスは公開していません。

CONFIG EXAMPLE — NTP
config system ntp
    set ntpsync enable
    set type custom
    config ntpserver
        edit 1
            set server "192.0.2.20"
        next
    end
end

まとめ

ファイアウォールは、異なるセキュリティ領域の間で通信を制御するネットワーク機器です。Zone、Address Object、Service、Firewall Policy、Routingなどを組み合わせて、「必要な通信だけを許可する」構成を作ります。

StractoのFortiGateでは、Trust / Untrust / DMZ / MGMTのZone、LAG、Redundant Interface、Address Object、TrustからUntrustへのFirewall Policy、Static Route、管理元制限、NTP、SNMPなどを利用しています。

これで「ネットワーク基礎シリーズ」は、コアスイッチ、アクセススイッチ、ルータ、ファイアウォールの4記事が揃います。主要機器の役割を理解した後は、VLAN、STP、LAG、Routing、NAT、Firewall Policy、VPNなどを個別テーマとして掘り下げていくと、ネットワーク全体の理解をさらに深められます。

記事について

本記事は、Stractoのネットワーク検証環境におけるFortiGate-60E(FortiOS 6.2.7)の実機設定ログを基に、公開可能な内容へ一般化・匿名化して構成しています。

元の設定ログには、管理IPアドレス、ホスト名、Trusted Host、SNMP Community、アカウント情報、暗号化パスワード、証明書・秘密鍵などの機密情報が含まれるため、記事では掲載せずサンプル値へ置き換えています。実環境へ適用する場合は、利用機種・FortiOSバージョン・ライセンス・ネットワーク設計に合わせて確認してください。