1.CLIの設定
1.1 CLIの設定方法
FortiGateはGUIが充実しており、GUIでの設定が推奨である。
ただ、GUIですべての設定ができるわけではなく、CLIでしかできない設定もある。
その場合は、GUIとCLIを組み合わせることになる。
▼CLIの設定方法
以下の方法があります。
❶CONSOLEポートの接続してCLIを設定する
❷SSHやTelnetで接続する
❸GUI画面から設定する
GUI右上の >_ のボタンから行います。
1.2 基本コマンド
(0)コマンド体系
CLIを実行すると、以下の画面になります。
FGT #
ここで、#の状態が第一階層で、以下を実行すると、第二階層であるinterfaceの階層になります。
FGT # config system interface FGT (interface) #
第一階層の#で、?を押すと、以下のコマンドが表示されます。つまり、実行できるコマンドには以下があるということです。
FGT # config Configure object. get Get dynamic and system information. show Show configuration. diagnose Diagnose facility. execute Execute static commands. alias Execute alias commands.
項番 | コマンド | 内容 |
---|---|---|
1 | config | Configを設定したり確認をする |
2 | get | システムの情報を確認する。保存された設定情報(Config)ではなく、動的に変化するStatus情報も取得 |
3 | show | 設定情報(Config)を表示 |
4 | diagnose | Diagnose(診断)のコマンド。ダイアグノースと発声します |
5 | execute | pingコマンドなど、実行するコマンド |
6 | alias | alias(別名)に関するコマンド |
(1)config : Configを設定したり確認をする
コマンド | 使い方 | 例 | 説明 |
---|---|---|---|
config | Config "階層" | config system interface | Configを設定する階層を指定 |
edit | edit "設定項目" | edit wan1 | 設定する項目を指定 |
set | set "設定値" | set ip 192.168.1.99/24 | 実際の設定を入力 |
next | - | next | 保存(設定している階層を維持) |
end | - | next | 保存(設定している階層から上位へ移動) |
例)wan1 インターフェースに IPアドレスを設定する
FGT # config system interface FGT(interface)# edit wan1 FGT (wan1)# set mode static FGT (wan1)# set ip 192.168.1.99/24 FGT (wan1)# end FGT #
(2)show:設定情報(Config)を表示
a)階層に移動してからshow
FGT # config system interface FGT (interface) # show
b)階層に移動せずにshow
FGT # show system interface
c) show full-configurationを使うと、初期値の設定情報も確認できる。
FGT # show full-configuration system interface
いくつか実行例を紹介します。
❶wan1インターフェースの状態(IPアドレスなどを出力) config system interface
FortiGate-60E (interface) # show config system interface edit "wan1" set vdom "root" set mode dhcp set allowaccess ping fgfm set type physical set role wan set snmp-index 1 next edit "wan2" set vdom "root" set mode dhcp set allowaccess ping fgfm set type physical set role wan set snmp-index 2 next edit "dmz" set vdom "root" set ip 172.16.1.99 255.255.255.0 set allowaccess ping https http fgfm fabric set type physical set device-identification enable set lldp-transmission enable set role lan set snmp-index 3 next ・・・
❷Firewallポリシーを表示 config firewall policy
FortiGate-60E # config firewall policy FortiGate-60E (policy) # show config firewall policy edit 1 set uuid 0d367dda-c757-51ee-aa7e-0013a28fd81f set srcintf "internal" set dstintf "wan1" set action accept set srcaddr "all" set dstaddr "all" set schedule "always" set service "ALL" set nat enable next edit 2 set name "dmz-->wan1" set uuid ef302cea-c757-51ee-9a9d-3f03fab81518 set srcintf "dmz" set dstintf "wan1" set action accept set srcaddr "all" set dstaddr "all" set schedule "always" set service "ALL" set utm-status enable set ssl-ssh-profile "certificate-inspection" set av-profile "default" set ips-sensor "all_default" set logtraffic all set nat enable next end
(3)get:システムの情報を確認する
繰り返しですが、show コマンドはConfigを表示するが、getはステータス情報を出力する。
a)階層に移動してからget
FGT # config system interface FGT (interface) # edit wan1 FGT (wan1) # get name : wan1 vdom : root vrf : 0 cli-conn-status : 2 fortilink : disable (後半略)
b)階層に移動せずにget
表示される内容が、physicalなので、先とは変わっている。
FGT # get system interface physical wan1 == [onboard] ==[wan1] mode: dhcp ip: 192.168.1.78 255.255.255.0 ipv6: ::/0 status: up speed: 1000Mbps (Duplex: full)
・get system statusでOSやライセンス情報、時刻情報などを取得
FGT # get system status Version: FortiGate-VM64-AWS v7.4.3,build2573,240201 (GA.F) ・・・ AV AI/ML Model: 2.14973(2024-03-01 12:45) IPS-DB: 6.00741(2015-12-01 02:30) IPS-ETDB: 27.00741(2024-02-28 03:41) ・・・ System time: Sat Mar 2 06:48:01 2024 Last reboot reason: shutdown
(4)execute:実行コマンド
・ARPのクリア、DHCP、PPPoEの再接続、VPNなど作業時に必要なものから時刻設定などメンテナンスに利用できるものなど多岐にわたります。
・即時実行されます。
・例)ARPテーブルのクリア
FGT # execute clear system arp table
(5)diagnose:Diagnose(診断)のコマンド
a)DNSのキャッシュ
・確認
diag test application dnsproxy 7
・クリア
diag test application dnsproxy 1
b)物理ポートの確認
diag hardware deviceinfo nic ”インターフェース名”
※MACアドレスや各カウンターを確認できます。
c)セッション、Flowの確認
diag sys session list
※filterで出力結果を制御することもできます。
filterの vdで VDOM番号を指定できます。
設定した filterで任意のセッションのみ、クリアすることもできます。
d)通信の一連の流れを確認
diag debug flow
e)トラブル時に取得するコマンド
diag debug report
※このコマンドは tech-support と同義です。Configは一部(HA、Admin関連など)しか含まれませんので Configの Backupは必ず併せて
実施してください。
1.3 設定の削除
設定の削除は、削除する場所が全体なのか、1行かだけなのかによってコマンドが違う。
コマンド | 説明 |
---|---|
unset | 1行だけを削除 |
delete | まとまった部分を削除 |
a)設定の表示
show user saml config user saml edit azure set user-name username set group-name group end
b)1行だけ、つまりsetの内容を消すときはunset
config user saml edit azure unset group-name end
c)editでまとまっている全部を消すときは、delete
config user saml delete azure end
d)設定の確認をしよう
show user saml
1.4 便利コマンド系
(1)検索
各コマンドでは grep を利用し検索をかけることができます。
例えば Showコマンドで Configの内容を確認したい場合に、以下のように Internal に関連した Config階層を一覧で出力させることができます。
show | grep -f "internal"
grepすると、その文字の情報だけの表示になる。そうではなく、その項目に関連する情報も知りたい場合に-fを付ける。
■オプション一覧
オプション | 説明 |
---|---|
-i | 大文字小文字の区別を無視(Ignore) |
-n | 行番号(line number)も表示 |
-v | 一致しない行を選択 |
-f | fortinet configのコンテキスト情報を体系的に表示 |
-c | 行数(count)のみ表示 |
-A | -fに関連して、指定した文字数だけ先頭から表示 例)grep -A 3 wan |
-B | -Aとは違い、後ろから表示 |
-C | 上下を表示 |
これは show コマンド以外にも get、diag と利用できます。
(2)Ciscoでいうter len 0
デフォルトでは、CLIで長い表示をする場合に--More--で区切って表示される。
それは、以下のようにoutputが more になっているからである
a)状態の確認
FGT1 # get system console mode : line baudrate : 9600 output : more login : enable fortiexplorer : enable
b)設定をstandardに変更する
FGT1 # config system console FGT1 (console) # set output standard FGT1 (console) # end
c)再度状態の確認
FGT1 # get system console mode : line baudrate : 9600 output : standard login : enable fortiexplorer : enable
するとmore がなくなる。
たとえば、FGT1 # show full-configurationとすると、一気にすべての
Configが流れ出す。
(3)コマンドの階層確認、最大入力文字数確認コマンド
・ 各階層で tree
・例)wan1 インターフェースで実行した出力例
FGT # config system interface FGT (interface) # edit wan1 FGT (wan1) # tree -- [interface] --*name (16) |- vdom (12) |- cli-conn-status (0,0) |- mode |- distance (1,255) |- priority (0,0) |- dhcp-relay-service |- dhcp-relay-ip |- dhcp-relay-type |- ip
※( )内の数字が最大入力文字数、最大値の数値になります。
1.5 ネットワーク関連
❶pingでの疎通確認
・単純なping実行
execute ping 8.8.8.8
・ping-option で実行回数、送信元アドレス、データーサイズの調整可能。
以下は、実行回数を3回に変更する
execute ping-option repeat-count 3
option | 内容 |
---|---|
adaptive-ping | Adaptive ping |
data-size | Integer value to specify datagram size in bytes. |
df-bit | Set DF bit in IP header |
interface | Auto |
interval | Integer value to specify seconds between two pings. |
pattern | Hex format of pattern, e.g. 00ffaabb. |
repeat-count | Integer value to specify how many times to repeat PING. |
reset | Reset settings. |
source | Auto |
timeout | Integer value to specify timeout in seconds. |
tos | IP type-of-service option. |
ttl | Integer value to specify time-to-live. |
use-sdwan | Use SD-WAN rules to get output interface |
validate-reply | Validate reply data |
view-settings | View the current settings for PING option. |
❷ルーティングテーブルを見る
get router info routing-table all
❸ARP
・ARPテーブルを見る
FGT $ get system arp
・ARPテーブルのクリア
FGT # execute clear system arp table
❹MACアドレスの変更
FortiGateの物理ポートは MACアドレスが個別に設定されていますし、必要に応じて MACアドレスを書き換えることもできます。
config system interface edit "インターフェース名" set macaddr "MACアドレス" end
1.6 インターフェース関連
❶インターフェースの設定を確認
FortiGate-60E # config system interface FortiGate-60E (interface) # edit wan1 FortiGate-60E (wan1) # show config system interface edit "wan1" set vdom "root" set mode dhcp set allowaccess ping fgfm (略) next end
❷設定を変更
・IPアドレスの設定
# set ip 10.1.1.1/24
・管理アクセスの内容を変更。以下は、fgfmをやめてpingだけにする
FortiGate-60E (wan1) # set allowaccess ping
❸インターフェースの情報を見る
FortiGate-60E # get system interface
1.7 管理系
❶adminパスワード変更
FGT#config system admin FGT(admin)#edit admin FGT(admin)#set password パスワード
❷TIME Zoneの設定
#config system global # set timezone 60 #end
❸時間の確認
FGT # execute time current time is: 11:17:34 last ntp sync:Sat Feb 17 10:29:15 2024
❹CPU、メモリの利用率確認
get system performance status
・定期的に確認するには
get system performance top
2.パケットキャプチャ
FortiGateでは2つの方法でパケットをキャプチャさせることができます。
① pcap ファイルで取得
② CLI上に Debugとして出力
2.1 GUIからpcap ファイルに出力
a)ネットワーク > 診断 を開き、上部のタブが「パケットキャプチャ」になっていることを確認。
b)インターフェースを選択
このとき、「保存する最大パケット数」にて、 取得するパケット数を設定できる。制限に達したときにパケットを停止する。
「フィルタ」では、ホストやポートなどでフィルタができる
c)「キャプチャを開始」を押す
すると、以下のようにパケットを取得することができる。
d)pcapで保存することが可能
このファイルを Wireshark で開きキャプチャ内容を確認します。
注意点は、ASIC(NP)に学習されたトラフィックは CPUで処理をされません。
よってパケットキャプチャでそのトラフィックを取得できません。
厳密にキャプチャを行うには、該当される Firewall Policyで以下を実施します。
※対象のトラフィックは限定した方が良いです。
config firewall policy (policy) # edit XX (XX) # unset auto-asic-offload end
”unset auto-asic-offload ” で ASIC処理を無効にできます。
2.2 CLIで取得
tcpdumpと同じイメージです。以下のコマンドで実行します。
diagnose sniffer packet <interface> '<filter>' <level> <count> <tsformat>
設定項目は以下
項目 | 設定例 | 内容 |
---|---|---|
interface | internal | インターフェースを指定 |
filter | 'host 203.0.113.159 and tcp' | IPアドレスやプロトコルを指定 |
level | 1 | ログレベル。レベル1~6まであり、1はIPパケットヘッダのみ。2はヘッダとペイロード。3はそれに加えてEhthernetヘッダ 1: print header of packets (default) 2: print header and data from ip of packets 3: print header and data from ethernet of packets (if available) 4: print header of packets with interface name 5: print header and data from ip of packets with interface name 6: print header and data from ethernet of packets (if available) with intf name |
count | 1000 | 件数 |
tsformat | a | 時刻表記。何もつけないか、1かaである。aがUTCなので一番見やすい。ただ、本体の設定で日本のGMT+9にしておいても、ログだとこの設定が反映されず、9時間早い時間で表示される。 a: absolute UTC time, yyyy-mm-dd hh:mm:ss.ms l: absolute LOCAL time, yyyy-mm-dd hh:mm:ss.ms otherwise: relative to the start of sniffing, ss.ms |
※ログレベルに関しては、以下に記載がある。
https://community.fortinet.com/t5/FortiGate/Technical-Tip-Packet-capture-sniffer/ta-p/198313
※構文に関する詳細は、以下に記載がある。
https://help.fortinet.com/fa/cli-olh/5-6-1/Document/1600_diagnose/sniffer.htm
例は以下。ログの量が多いので、IPを制限した方がいいでしょう。ただし、srcとdstで指定すると、戻りパケットが取れないので、hostで指定する。
今回は、203.0.113.159を含むIPアドレスでTCPの通信を、ログレベル1で、10行、時刻表記を変更して表示している。
FGT# diag sniffer packet internal 'host 203.0.113.159 and tcp' 1 10 a interfaces=[internal] filters=[host 203.0.113.159 and tcp] 2018-01-01 01:12:48.025764 192.168.1.111.64005 -> 203.0.113.159.80: syn 148305027 2018-01-01 01:12:48.026162 192.168.1.111.64006 -> 203.0.113.159.80: syn 1691563316 2018-01-01 01:12:48.041343 203.0.113.159.80 -> 192.168.1.111.64006: syn 465222532 ack 1691563317 2018-01-01 01:12:48.041486 203.0.113.159.80 -> 192.168.1.111.64005: syn 3092072803 ack 148305028 2018-01-01 01:12:48.041654 192.168.1.111.64006 -> 203.0.113.159.80: ack 465222533 2018-01-01 01:12:48.042560 192.168.1.111.64005 -> 203.0.113.159.80: ack 3092072804
3.トラブルシューティング
3.1 FortiCloudでの認証エラーの不具合について
FortiCloudで無料アカウントを作成したのですが、すこしトラブったので記載します。
以下にログインおよびアカウント作成のページがあります。
https://login.forticloud.com/servicelist
ここでログインに成功するアカウントで、何度FortiGateでログインしてもエラーになりました。
※アカウントはダミー
日本専用のJPサーバでのアカウントと、別のようでした。
https://jplogin.forticloud.com/login
こちらでログインできるアカウントであれば、無事に成功しました。