Категорії:
fortigate cli hotkeys
Автор:
Dasha
28 Квітня, 2021

У цій статті будуть розглянуті особливості роботи з Fortigate CLI для тих, хто тільки починає освоювати це обладнання, тобто для маленьких Єнотиків.

Почнемо з основних команд і гарячих клавіш. Таких гарячих як перше кохання до Fortinet.

Гаряча
клавіша
Дія
? Список доступних команд. Якщо команда складається з декількох складових, то вони виводяться з їх описом.
Tab Доповнити слово з наступним збігом. Натиснути декілька разів, щоб пройтися по всіх збігам по колу.
Up arrow або Ctrl + P Викликати попередню команду. Час життя попередніх команд обмежена поточної сесією.
Down arrow, або Ctrl + N Виклик наступної команди.
Left або Right arrow Перенесення курсору вліво або вправо по командному рядку.
Ctrl + A Перенесення курсора в початок командного рядка.
Ctrl + E Перенесення курсору в кінець командного рядка.
Ctrl + B Перенесення курсору назад на одне слово.
Ctrl + F Перенесення слова на одне слово вперед.
Ctrl + D Видалення поточного символу.
Ctrl + C Скасування поточної команди, якщо ви заглибилися на кілька рівнів CLI вниз. Якщо ви не в режимі config або edit, то це завершить поточну сесію.

Show и Get

Щоб переглянути конфігурацію можна використовувати команди show та show full-configuration.
Команда show показує змінені параметри, тоді як show full-configuration виводить повністю всі можливі параметри.

Також можна використовувати команду get для того, щоб подивитися системну інформацію або налаштування, наприклад:get system status.

Абревіатури

Можна використовувати абревіатури, наприклад:
di de di може бути абревіатурою diag debug disable чи g sy stat може бути скорочено від get system status.

Grep

Вибірка потрібних рядків за допомогою grep:

get hardware nic internal | grep Current_HWaddr

    Current_HWaddr        00:09:0f:cb:c2:75

Tree

Для того, щоб подивитися все дерево команд, можна використовувати tree. Нижче наведений приклад для DHCP server:

config system dhcp server
tree

— [server] –*id (0,4294967295)
            |- status
            |- lease-time (0,4294967295)
            |- mac-acl-default-action
            |- forticlient-on-net-status
            |- dns-service
            |- dns-server1
            |- dns-server2
            |- dns-server3
            |- wifi-ac1
            |- wifi-ac2
            |- wifi-ac3
            |- ntp-service
            |- ntp-server1
            |- ntp-server2
            |- ntp-server3
            |- domain (36)
            |- wins-server1
            |- wins-server2
            |- default-gateway
            |- next-server
            |- netmask
            |- interface (16)
            |- [ip-range] –*id (0,4294967295)
                          |- start-ip
                          +- end-ip
            |- timezone-option
            |- timezone
            |- tftp-server (64)
            |- filename (128)
            |- [options] –*id (0,4294967295)
                         |- code (0,4294967295)
                         |- type
                         |- value (313)
                         +- ip
            |- server-type
            |- ip-mode
            |- conflicted-ip-timeout (0,4294967295)
            |- ipsec-lease-hold (0,4294967295)
            |- auto-configuration
            |- ddns-update
            |- ddns-update-override
            |- ddns-server-ip
            |- ddns-zone (65)
            |- ddns-auth
            |- ddns-keyname (65)
            |- ddns-key
            |- ddns-ttl (60,86400)
            |- vci-match
            |- [vci-string] –*vci-string (256)
            |- [exclude-range] –*id (0,4294967295)
                               |- start-ip
                               +- end-ip
            +- [reserved-address] –*id (0,4294967295)
                                  |- ip
                                  |- mac
                                  |- action
                                  +- description

Screen paging

За замовчуванням командний рядок буде зупинятися після кожної сторінки виведення, якщо вивід команди складається з більше ніж однієї сторінки. Це може бути корисно коли переглядаєте великий вивід.

Коли висновок зупиняється і показує --More--, можна зробити наступне:

  • Натиснути Enter для  відображення наступного рядка,
  • Натиснути Q для зупинки виведення і повернення до командного рядка,
  • Натиснути arrow key, Insert, Home, Delete, End, Page Up, or Page Down або іншу клавішу, щоб відобразити наступні сторінки,
  • Почекати 30 сек, щоб консоль припинила вивід і повернула в командний рядок.

Щоб відключити зупинку виведення в CLI:

config system console
  set output standart
end

Щоб включити зупинку виведення в CLI:

config system console
  set output more
end

Runtime-only режим конфігурації

Runtime-only режим це «тимчасовий» режим, де введені команди не стають автоматично частиною збереженої конфігурації Fortigate-a. Це дає можливість повернутися до попередньої збереженої конфігурації при виникненні якої-небудь проблеми.

Слід зауважити, що класичні бекапи конфігурації ніхто не відміняв, тому перед тим як експериментувати з фічами які впливають на всю систему варто зробити черговий бекап.

За замовчуванням Fortigate записує в збережену конфігурацію всі зміни як тільки були прописані команди end або next. Для того, щоб використовувати ручний режим збереження і відновлення конфігурації слід зробити наступні налаштування:

config system global
  set cfg-save { automatic | manual | revert }
  set cfg-revert-timeout <seconds>
end

automatic – режим за замовчуванням.

manual – режим ручного збереження конфігурації.

revert – режим при якому після певного часу очікування конфігурація повертається в останній збережений стан за допомогою перезавантаження і відновленням останнього збереженого конфіга. cfg-revert-timeout відноситься до цього пунктку і дає можливість задавати таймаут.

При використанні ручного режиму конфігурації внесені зміни вступають в силу, але не стають частиною збереженої конфігурації системи. Наприклад, якщо відключити інтерфейс, то інтерфейс піде в режим down до тих пір, поки пристрій не перезавантажити або поки не зробити execute cfg reload. Зміни, які не були збережені, будуть втрачені. Це дає можливість протестувати команди перед тим, як внести їх в основний збережений конфіг, якщо потрібно.

Ця фіча присутня на всіх прошивках починаючи з версії 3.0.

Workspace Режим

Цей режим дозволяє робити набір змін, які вступлять в силу тільки після того, як будуть закоментовані. До коментування зміни можуть бути відновлені або замінені без впливу на поточні процеси системи.

Коли якийсь об’єкт в Workspace режимі змінюється, то він стає «заблокуваним» для інших адміністраторів, які можуть спробувати його змінити одночасно з ще одним адміністратором пристрою.
Всі адміністратори можуть використовувати Workspace Режим, їх дозволи на доступ в цьому режимі такі ж, як і в їх профілі адміністратора.

Тайм-аут Workspace Режиму дорівнює п’яти хвилинам при відсутності активності. Коли тайм-аут добігає кінця, то всі зміни втрачаються. І будуть виведені попереджувальні повідомлення для адміністратора:

config transaction id=1 will expire in 30 seconds

config transaction id=1 will expire in 20 seconds

config transaction id=1 will expire in 10 seconds

config transaction id=1 has expired

Наступні об’єкти не є змінними в Workspace Режимі:

system.console
system.resource-limits
system.elbc
config system global
            set split-port
            set vdom-admin
            set management-vdom
            set wireless-mode
            set internal-switch-mode
end
config system settings
end
system.npu
system.np6
config system wireless
            set mode
end
system.vdom-property
system.storage

Для того, щоб використовувати Workspace Режим:

  1. Почати Workspace Режим:

execute config-transaction start

Всі внесені зміни будуть зроблені в локальному процесі командного рядка і не будуть видимі для інших процесів в системі.

2. Коментувати зміни конфігурації:

execute config-transaction commit

Після коментування всі зміни стають видимі для інших процесів і також вносяться в ядро.

3. Скасування внесених змін:

execute config-transaction abort

Якщо зміни були скасовані, то вони не зберігаються в поточну конфігурацію і також не вносяться в ядро.

Корисною буде команда перевірки статусу змін:

diagnose sys config-transaction status

Workspace Режим присутній на прошивках починаючи з версії 6.2.

Висновки

У цьому невеликому cheat sheet були розглянуті невеликі хитрощі як можна управлятися з Fortigate CLI. Сподіваюся, що це допоможе зробити роботу більш зручною та продуктивною.

Використані ресурси:

docs.fortinet.com/document/fortigate/6.4.0/administration-guide/896276/cli-basics
help.fortinet.com/cli/fos50hlp/54/Content/FortiOS/fortiOS-cli-ref-54/3200_tree.htm
kb.fortinet.com/kb/documentLink.do?externalID=11850
docs.fortinet.com/document/fortigate/6.2.0/new-features/688647/workspace-mode