見出し画像

FortiGate(FW)でポリシーを作成する

記事で学べること

  • ファイアウォール(FortiGate60D)の初期設定ができる

  • GUIとCLIでポリシーを設定できる

この記事が難しいと感じる方へ

検証の流れ

  1. 検証環境の構築

  2. GUIを使ったファイアウォールの初期設定

  3. GUIを使ったファイアウォールのポリシー設定

  4. CLIを使ったファイアウォールのポリシー設定

検証内容

検証①:ステートフルインスペクションの動作を確認する

社内に見立てた環境にPCを2台、インターネットに見立てた環境にPCを1台用意し、社内PCからインターネットPCへ通信を行います。
このとき、社内PCからインターネットPCの通信は成功するが、インターネットPCから社内PCへの通信は失敗すること確認します。内部からと、その戻りの通信のみ許可されたことになるため、ステートフルインスペクションの動作を確認できたということになります。

検証②:GUIでポリシーを作成し、通信の許可範囲を小さくする

次に、社内PCの1台のみがインターネットPCへ通信できるようにポリシーによる通信制御を行います。FortiGateのGUI画面にてポリシーを作成します。
社内PC2台のうち1台のみ通信に成功し、もう1台は通信に失敗します。これはポリシーによって通信の許可範囲を小さくした(=セキュリティを高めた)ということになります。

検証③:CLIでポリシーを作成し、通信の許可範囲を大きくする

最後に、検証②ではインターネットPCへの通信を許可されていなかった社内PCも、インターネットPCへ接続できるようにポリシーによる通信制御を行います。FortiGateのCLI画面にてポリシーを作成します。
社内PCの2台がインターネットPCへの通信に成功します。これはポリシーによって通信の許可範囲を大きくした(=セキュリティを下げた)ということになります。
なお、ポリシーはGUI/CLIのうちどちらを使っても構いませんが、本検証においては学習のために検証②でGUI、検証③でCLIを使って設定します。

構成図・パラメータ

準備するもの

  • ルータ:Cisco1812j ×1台

  • L2スイッチ:Catalyst2950 ×1台

  • L3スイッチ:Catalyst3560 ×1台

  • ファイアウォール:FortiGate60D ×1台

  • 検証用PC:Windows ×2台

  • ストレートケーブル ×2本

  • クロスケーブル ×4本

  • コンソールケーブル ×1本

構成図

構成のポイントは下記の通りです。

  • 社内とインターネットの境界にルータを設置する。

  • 社内PCからインターネットのサーバに見立てた外部PCへ通信する。

  • 通信は必ず社内のファイアウォールを通過する。

  • この時の通信をポリシーによって制御する。

▲社内からインターネットへの通信は全てファイアウォールを経由する構成

実務に近い物理構成図に書き起こすと下記のようになります。

▲物理構成図(実務バージョン)

さらに、各機器に必要なパラメータを整理していきます。

パラメータ

各機器のパラメータ

検証環境の構築

実際の検証を行うため前準備として、前項のパラメータに従い各機器を設定していきます。面倒であれば、下記の投入用configをお使いください。

■L3スイッチ
Switch#show run
!
ip routing
!
interface FastEthernet0/1
switchport access vlan 10
switchport mode access
no shutdown
!
interface FastEthernet0/2
switchport access vlan 20
switchport mode access
no shutdown
!
interface FastEthernet0/24
switchport access vlan 30
switchport mode access
no shutdown
!
interface Vlan10
ip address 192.168.10.254 255.255.255.0
no shutdown
!
interface Vlan20
ip address 192.168.20.254 255.255.255.0
no shutdown
!
interface Vlan30
ip address 192.168.30.254 255.255.255.0
no shutdown
!
ip route 0.0.0.0 0.0.0.0 192.168.30.253
!
end

■ルータ
Router#sh run
!
interface FastEthernet0
ip address 192.168.100.254 255.255.255.0
no shutdown
!
interface FastEthernet1
ip address 1.1.1.254 255.255.255.0
no shutdown
!
ip route 192.168.10.0 255.255.255.0 192.168.100.253
ip route 192.168.20.0 255.255.255.0 192.168.100.253
ip route 192.168.30.0 255.255.255.0 192.168.100.253
!
end

GUIを使ったファイアウォールの初期設定

初期設定では下記の項目を設定します。

  • GUIでログインするためのIPアドレス設定

  • 使用言語を日本語に変更

  • タイムゾーンを日本に変更

  • ルーティングを設定

  • インターフェースを設定

ここまでが検証に必要な最低限の設定です。順番に実施していきます。

GUIでログインするためのIPアドレス設定

FortiGateのLAN側ポート(internalやLANと分類されるポート)とPCをLANケーブルで繋ぎます。FortiGateでは初期設定でDHCPが有効になっており、PC側にIPアドレスが割り振られます。コマンドプロンプトでIPアドレスを確認してみます。

▲コマンドプロンプトで「ipconfig」を実施する

デフォルトゲートウェイとして割り当てられている『192.168.1.X』がFortiGateの初期IPアドレスです。今回は『192.168.1.99』がFortiGateの初期IPアドレスということが分かります。
次に、GoogleChromeのようなブラウザのアドレスバーに『https://192.168.1.99』と入力します。すると下記のような警告画面が表示されます。

▲警告表示

これはHTTPSによる暗号化通信をする際に、正しい証明書がないために表示される警告画面です。初期ログインの際必ず表示されますので、『192.168.1.99にアクセスする(安全ではありません)』をクリックして構いません。

FortiGateのログイン画面が表示されますので、ログイン情報を入力します。初期ログインIDは『admin』、パスワードは空白でログインできます。

ID:admin
PASS:(空白)

▲ログイン後の画面

使用言語を日本語に変更

初期設定では英語なので、言語を日本語に変更します。
左側のメニューからSystem >Admin >Settings を開き、View SettingsのLanguage を『Japanese』に変更し画面下方の『Apply』を押下します。

言語の設定

タイムゾーンを日本に設定

日本の標準時設定を適用します。ダッシュボード >ステータス >システム情報の「システム時間」の[変更]を押下します。タイムゾーンを『GMT +9:00(日本)』に設定するとポップアップが出てくるので『OK』を押します。

タイムゾーン設定

ルーティングを設定

スタティックルートを追加します。
システム >ネットワーク >ルーティング >新規作成から、以下のルーティングを追加します。

  • VLAN10へのルーティング

  • VLAN20へのルーティング

  • デフォルトルート

▲ルーティングの設定

インターフェースの設定

LAN側、WAN側それぞれにIPアドレスを設定します。
システム >ネットワーク >インターフェースを開き、設定する物理インターフェースを選択します。InternalがLAN側ポートです。ダブルクリックすると、インターフェースの設定画面が開きます。

インターフェース設定

IPアドレスを設定し、不要な設定(DHCP)からチェックを外してください。それ以外はデフォルトの設定で問題ないです。設定後OKを押下してください。

LAN側のIPアドレスを変更したためページが固まります。PC側のIPアドレスを書き換えて再度GUIの接続をする必要があります。同じようにWAN側も設定しましょう。

検証①:ステートフルインスペクションの動作を確認する

さて、ここまでの初期設定を終えたところで、いよいよポリシーの検証に移っていきたいと思います。
実は、FortiGateには初期状態で既にポリシーが2つ設定されています。下記は実際の画面です。
ポリシー>ポリシー >グローバルビューで現在のポリシーが閲覧できます。1行で1ポリシーになり、ACLと同じく上から順番にチェックしていく方式です。

▲初期状態のポリシー

内容としては下記の通りです。

  1. Internal(内側)からwan1(外側)への全ての通信を許可する

  2. それ以外の通信を全て拒否する

勘の良い方はお気づきかと思いますが、この初期状態で既にステートフルインスペクションの機能が働いているということになります。というわけで、さっそくPingを使って動作確認します。

確認観点

  • 社内のPCA及びPCBから、インターネットの外部PCへPing疎通できることを確認します。コマンド『ping 1.1.1.1』を使って確認します。

  • インターネットの外部PCから社内のPCA及びPCBへPing疎通できないことを確認します。コマンド『ping 192.168.10.1』『ping 192.168.20.1』を使って確認します。

社内から発生した通信は許可、その戻りの通信も許可、インターネットから発生した通信は拒否されていることが分かります。
以上の確認ができたら検証①は終了です。

検証②:GUIでポリシーを作成し、通信の許可範囲を小さくする

FortiGateの初期ポリシーは全許可となっているため、セキュリティを高めるために通信の許可範囲を狭くする必要があります。実務においては、お客様からいただいた通信要件に従ってポリシーを作成します。今回は下記としましょう。

通信要件

  • PCA(192.168.10.1/24)のみインターネットの外部PCへ通信可能

ポリシーの作成(GUI)

ポリシーを設定するには2つのステップを踏みます。

  1. アドレスオブジェクトを作成する

  2. 作成したアドレスオブジェクトを使ってポリシーを作成する

アドレスオブジェクトはポリシーを設定するための部品のようなものです。使っていくうちに慣れるものなので、深く考えずに次に進みましょう。

1のポリシーをダブルクリックして設定を変更します。

▲初期のポリシー画面

アドレスオブジェクトを指定しますが、まだ作成してないのでALLとなっています。送信元アドレスに新しいアドレスオブジェクトを追加します。追加するには送信元アドレスの右側の+マークをクリックし、新規作成を押します。

▲「+」ボタンでオブジェクトを追加できる

『PCA』という名前のアドレスオブジェクトを作成します。タイプは『サブネット』、インターフェースは『internal』(内側)として登録します。設定完了後『OK』を押します。

▲アドレスオブジェクト設定

ポリシー設定画面にて、送信元アドレスを『PCA』、サービスを『ALL_ICMP』に変更します。NATは使用しないのでチェックを外しましょう。

ポリシー設定③

ポリシー設定ができたので疎通確認をしてみましょう。

確認観点

  • 社内のPCAから、インターネットの外部PCへPing疎通できることを確認します。コマンド『ping 1.1.1.1』を使って確認します。

  • 社内のPCBから、インターネットの外部PCへPing疎通できないことを確認します。コマンド『ping 1.1.1.1』を使って確認します。

検証①ではPCBからインターネットの外部PCへの通信は可能でしたが、検証②では通信が不可となりました。ポリシーによって制御を受けて拒否されたということが分かります。以上の確認ができたら検証②は終了です。

検証③:CLIでポリシーを作成し、通信の許可範囲を大きくする

最後はCLIでもポリシー作成を試してみます。通信要件は下記の通りです。

通信要件

  • PCA(192.168.10.1/24)及び、PCB(192.168.20.1/24)のみインターネットの外部PCへ通信可能

CLIの基本操作

ポリシーを作成する前にCLIの基本操作を確認します。

■コンソール接続
コンソールケーブルを接続し、ログイン情報を入力します。

▲ログイン画面

■よく使うコマンド

▲基本的なコマンドとその意味

ちなみに、Cisco機器と同様、コンソールで出力される量が決まっているため「-more-」が表示されます。最後まで表示させるには以下コマンドを打ちます。

config system console
set output standard

試しにGUIで設定した内容を表示させてみましょう。

show system interface …………………インターフェースの情報のみ確認
show firewall policy …………………… ポリシーの情報のみ確認

ポリシーの作成(CLI)

それでは、いよいよCLIでポリシーを作成していきます。
ステップはGUIの時と同様です。まずはアドレスオブジェクトを作ります。コマンドは以下の通りです。

config firewall address …アドレスオブジェクトを設定をするモードに変更
edit “[オブジェクト名]” …アドレスオブジェクト名を作成する。「new entry ‘[オブジェクト名]’」と表示される
set subnet [IPアドレス] [サブネットマスク]…オブジェクト名のIPアドレスを設定する
next…設定を保存
end…設定モードの終了

以下は実行例です。

■例
FGT60D4615037230 # config firewall address
FGT60D4615037230 (address) # edit "PCB"
new entry 'PCB' added
FGT60D4615037230 (PCB) # set subnet 192.168.20.1 255.255.255.255
FGT60D4615037230 (PCB) # next

次にポリシーを作成します。コマンドは以下の通りです。

config firewall policy ………………… ポリシーの設定をするモードに変更
edit [任意の数字] …………………………シーケンス番号
set srcintf “[通信元IF]” ………………通信元インターフェース
set dstintf “[通信先IF]” ………………通信先インターフェース
set srcaddr “[オブジェクト名]" …通信元IPアドレス
set dstaddr “[オブジェクト名]” …通信先IPアドレス
set action [accept or deny]…………アクセスルールの設定
set schedule “[時間、曜日等]“……実行のスケジュール
set service “サービス名“………………アクセスルールを適用したいサービス(プロトコル)

以下は実行例です。

■例
FGT60D4615037230 # config firewall policy
FGT60D4615037230 (policy) # edit 2
new entry '2' added
FGT60D4615037230 (2) # set srcintf "internal"
FGT60D4615037230 (2) # set dstintf "wan1"
FGT60D4615037230 (2) # set srcaddr "PCB"
FGT60D4615037230 (2) # set dstaddr “all"
FGT60D4615037230 (2) # set action accept
FGT60D4615037230 (2) # set schedule "always"
FGT60D4615037230 (2) # set service "ALL_ICMP"

ポリシーを作成したら設定を確認します。コマンド『show firewall policy』を使います。検証②で作成したポリシーの下に、今回作成したポリシーが追加されていれば正しく設定されていることが確認できます。
ここまでの設定が確認できたら、通信のテストを行います。

確認観点

  • 社内のPCBから、インターネットの外部PCへPing疎通できることを確認します。コマンド『ping 1.1.1.1』を使って確認します。

検証②ではPCBからインターネットの外部PCへの通信は不可でしたが、検証③では通信が可能となりました。ポリシーによって通信が許可されたことが確認できます。以上の確認ができたら検証③も終了です。お疲れ様でした。

その他の機能

バックアップ

ネットワーク機器は日頃からバックアップを取得しておくことが基本です。
バックアップを取得しておくことで、機器故障やリプレース対応時に設定を再現することが容易となります。

システム >Status >システム情報 >システム設定 >バックアップからバックアップを取得します。

▲バックアップの取得画面

初期化

初期化はCLIでコマンド『execute factoryreset』を実行します。
初期化コマンドを実行すると機器が工場出荷時の状態に戻りますので使用前にバックアップを取得する等、万が一に備えることをオススメします。

まとめ

  • FortiGate60Dを使ってファイアウォールの初期設定とポリシー作成について検証を行いました。

  • 検証①ではステートフルインスペクションの動作を確認しました。

  • 検証②ではGUIでポリシーを作成し、通信の許可範囲を小さくしました。

  • 検証③ではCLIでポリシーを作成し、通信の許可範囲を広くしました。

今回の検証がネットワークセキュリティを学ぶ上での助けになれば幸いです。最後まで読んでいただきありがとうございました。

最後に宣伝 /インフラエンジニア募集中★

筆者が所属する株式会社CAIRN(ケルン)はインフラエンジニアに特化した高還元SES企業です。

・ 契約単価に連動した報酬体系なので評価基準が明確です。
・ITインフラに強い営業網で豊富な案件からプロジェクトを選べます。
・ 独自の研修制が多数あり、学びなおしが出来ます。
・厚生労働省認定のホワイト企業です。

▲給与テーブルの抜粋
▲厚生労働省 安全衛生優良企業認定ホワイトマークを取得

インフラエンジニアにとって良い環境を整えています。ご応募お待ちしております。

株式会社CAIRNの採用ページへジャンプ

▼CAIRNについてさらに詳しく知りたい方はこちら

【Instagram】
ケルンの日常を発信♪
https://www.instagram.com/cairn_recruit/

【代表川嵜のブログ】
インフラエンジニアのキャリアについて週1で発信♪
https://note.com/joyous_cairn1015/
   
【技術ブログ】
月1で発信♪
https://t.co/iInlgn3cfw

【代表川嵜のX】
代表の日常、SES業界について発信♪DM歓迎です!
https://twitter.com/cairndk

【人事花田のX】
人事花田の日常、労務関連について発信♪DM歓迎です!
https://twitter.com/HanadaCAIRN_SES