Friday, October 1, 2021

Introduction to FortiGate Next-Generation Firewall (NGFW)

The FortiGate Next-Generation Firewall (NGFW) are network firewalls powered by purpose-built security processing units (SPUs) including the latest NP7 (Network Processor 7). They enable security-driven networking, and are ideal network firewalls for hybrid and hyperscale data centers.

Fortinet NGFWs reduce cost and complexity by eliminating points products and consolidating industry-leading security capabilities such as secure sockets layer (SSL) inspection including the latest TLS1.3, web filtering, intrusion prevention system (IPS) to provide fully visibility and protect any edge. Fortinet NGFWs uniquely meet the performance needs of hyperscale and hybrid IT architectures, enabling organizations to deliver optimal user experience, and manage security risks for better business continuity.

Below are some of the basic CLI commands and initial configuration tasks in a FortiGate NGFW. Type the get system status to view the Fortigate serial number, operation mode, License status, System uptime, etc.

 

FortiGate-VM64 # get system status

Version: FortiGate-VM64 v6.4.4,build1803,201209 (GA)

Virus-DB: 1.00000(2018-04-09 18:07)

Extended DB: 1.00000(2018-04-09 18:07)

Extreme DB: 1.00000(2018-04-09 18:07)

IPS-DB: 6.00741(2015-12-01 02:30)

IPS-ETDB: 6.00741(2015-12-01 02:30)

APP-DB: 6.00741(2015-12-01 02:30)

INDUSTRIAL-DB: 6.00741(2015-12-01 02:30)

Serial-Number: FGVMEVLBM63ZQG09

IPS Malicious URL Database: 1.00001(2015-01-01 01:01)

License Status: Valid

Evaluation License Expires: Tue May  4 02:20:49 2021

VM Resources: 1 CPU/1 allowed, 2010 MB RAM/2048 MB allowed

Log hard disk: Available

Hostname: FortiGate-VM64

Operation Mode: NAT

Current virtual domain: root

Max number of virtual domains: 1

Virtual domains status: 1 in NAT mode, 0 in TP mode

Virtual domain configuration: disable

FIPS-CC mode: disable

Current HA mode: standalone

Branch point: 1803

Release Version Information: GA

FortiOS x86-64: Yes

System time: Sat Apr 24 17:21:22 2021

 

 

Type ? to list all CLI options.

 

FortiGate-VM64 # show system ?

accprofile                        Configure access profiles for system administrators.

admin                             Configure admin users.

affinity-interrupt                Configure interrupt affinity.

affinity-packet-redistribution    Configure packet redistribution.

alias                             Configure alias command.

api-user                          Configure API users.

arp-table                         Configure ARP table.

auto-install                      Configure USB auto installation.

auto-script                       Configure auto script.

automation-action                 Action for automation stitches.

automation-destination            Automation destinations.

automation-stitch                 Automation stitches.

automation-trigger                Trigger for automation stitches.

autoupdate                        Configure automatic updates.

central-management                Configure central management.

cluster-sync                      Configure FortiGate Session Life Support Protocol (FGSP) session synchronization.

console                           Configure console.

csf                               Add this FortiGate to a Security Fabric or set up a new Security Fabric on this FortiGate.

custom-language                   Configure custom languages.

ddns                              Configure DDNS.

dhcp                              Configure DHCP.

dhcp6                             Configure DHCPv6.

dns                               Configure DNS.

dns-database                      Configure DNS databases.

dns-server                        Configure DNS servers.

dscp-based-priority               Configure DSCP based priority table.

email-server                      Configure the email server used by the FortiGate various things. For example, for sending email messages to users to support user authentication features.

external-resource                 Configure external resource.

fips-cc                           Configure FIPS-CC mode.

fortiguard                        Configure FortiGuard services.

fortisandbox                      Configure FortiSandbox.

fsso-polling                      Configure Fortinet Single Sign On (FSSO) server.

ftm-push                          Configure FortiToken Mobile push services.

geneve                            Configure GENEVE devices.

geoip-override                    Configure geographical location mapping for IP address(es) to override mappings from FortiGuard.

global                            Configure global attributes.

gre-tunnel                        Configure GRE tunnel.

ha                                Configure HA.

ha-monitor                        Configure HA monitor.

interface                         Configure interfaces.

ipip-tunnel                       Configure IP in IP Tunneling.

ips                               Configure IPS system settings.

ips-urlfilter-dns                 Configure IPS URL filter DNS servers.

ips-urlfilter-dns6                Configure IPS URL filter IPv6 DNS servers.

ipsec-aggregate                   Configure an aggregate of IPsec tunnels.

ipv6-neighbor-cache               Configure IPv6 neighbor cache table.

ipv6-tunnel                       Configure IPv6/IPv4 in IPv6 tunnel.

link-monitor                      Configure Link Health Monitor.

lldp                              Configure LLDP.

mobile-tunnel                     Configure Mobile tunnels, an implementation of Network Mobility (NEMO) extensions for Mobile IPv4 RFC5177.

nat64                             Configure NAT64.

nd-proxy                          Configure IPv6 neighbor discovery proxy (RFC4389).

netflow                           Configure NetFlow.

network-visibility                Configure network visibility settings.

ntp                               Configure system NTP information.

object-tagging                    Configure object tagging.

password-policy                   Configure password policy for locally defined administrator passwords and IPsec VPN pre-shared keys.

password-policy-guest-admin       Configure the password policy for guest administrators.

pppoe-interface                   Configure the PPPoE interfaces.

probe-response                    Configure system probe response.

proxy-arp                         Configure proxy-ARP.

replacemsg                        Configure replacement message.

replacemsg-group                  Configure replacement message groups.

replacemsg-image                  Configure replacement message images.

saml                              Global settings for SAML authentication.

sdn-connector                     Configure connection to SDN Connector.

sdwan                             Configure redundant Internet connections with multiple outbound links and health-check profiles.

session-helper                    Configure session helper.

session-ttl                       Configure global session TTL timers for this FortiGate.

settings                          Configure VDOM settings.

sflow                             Configure sFlow.

sit-tunnel                        Configure IPv6 tunnel over IPv4.

sms-server                        Configure SMS server for sending SMS messages to support user authentication.

snmp                              Configure SNMP.

speed-test-server                 Configure speed test server list.

sso-admin                         Configure SSO admin users.

standalone-cluster                Configure FortiGate Session Life Support Protocol (FGSP) cluster attributes.

storage                           Configure logical storage.

switch-interface                  Configure software switch interfaces by grouping physical and WiFi interfaces.

tos-based-priority                Configure Type of Service (ToS) based priority table to set network traffic priorities.

vdom-exception                    Global configuration objects that can be configured independently across different ha peers for all VDOMs or for the defined VDOM scope.

vdom-link                         Configure VDOM links.

virtual-wire-pair                 Configure virtual wire pairs.

vne-tunnel                        Configure virtual network enabler tunnel.

vxlan                             Configure VXLAN devices.

wccp                              Configure WCCP.

zone                              Configure zones to group two or more interfaces. When a zone is created you can configure policies for the zone instead of individual interfaces in the zone.

 

FortiGate-VM64 # show system interface ?

name    Name.

fortilink   static   0.0.0.0 0.0.0.0  169.254.1.1 255.255.255.0  up   disable   aggregate  enable  

port1   static   0.0.0.0 0.0.0.0  192.168.1.160 255.255.255.0  up   disable   physical  enable  

port2   static   0.0.0.0 0.0.0.0  0.0.0.0 0.0.0.0  up   disable   physical  enable  

port3   static   0.0.0.0 0.0.0.0  0.0.0.0 0.0.0.0  up   disable   physical  enable  

ssl.root   static   0.0.0.0 0.0.0.0  0.0.0.0 0.0.0.0  up   disable   tunnel  enable  

 

FortiGate-VM64 # show system interface port1

config system interface

    edit "port1"

        set vdom "root"

        set ip 192.168.1.160 255.255.255.0

        set allowaccess ping ssh http

        set type physical

        set snmp-index 1

    next

end

 

 

The show full-configuration command to all the configuration settings.

 

FortiGate-VM64 # show full-configuration system

accprofile                        Configure access profiles for system administrators.

admin                             Configure admin users.

affinity-interrupt                Configure interrupt affinity.

affinity-packet-redistribution    Configure packet redistribution.

alias                             Configure alias command.

api-user                          Configure API users.

arp-table                         Configure ARP table.

auto-install                      Configure USB auto installation.

auto-script                       Configure auto script.

automation-action                 Action for automation stitches.

automation-destination            Automation destinations.

automation-stitch                 Automation stitches.

automation-trigger                Trigger for automation stitches.

autoupdate                        Configure automatic updates.

central-management                Configure central management.

cluster-sync                      Configure FortiGate Session Life Support Protocol (FGSP) session synchronization.

console                           Configure console.

csf                               Add this FortiGate to a Security Fabric or set up a new Security Fabric on this FortiGate.

custom-language                   Configure custom languages.

 

FortiGate-VM64 # show full-configuration

alertemail             Alert email configuration.

antivirus              AntiVirus configuration.

application            Application control configuration.

authentication         authentication

credential-store       credential-store

dlp                    DLP configuration.

dnsfilter              DNS filter configuration.

dpdk                   FortiOS DPDK Helper configuration.

emailfilter            AntiSpam configuration.

endpoint-control       Endpoint control configuration.

extender-controller    FortiExtender controller configuration.

file-filter            file-filter

firewall               Firewall configuration.

ftp-proxy              FTP proxy configuration.

icap                   ICAP client configuration.

ips                    IPS configuration.

log                    Log configuration.

nsxt                   NSX-T configuration.

report                 Report configuration.

router                 Router configuration.

ssh-filter             SSH filter configuration.

switch-controller      External FortiSwitch configuration.

system                 System operation configuration.

user                   Authentication configuration.

voip                   VoIP configuration.

vpn                    VPN configuration.

waf                    Web Application Firewall configuration.

wanopt                 WAN optimization configuration.

web-proxy              Web proxy configuration.

webfilter              Web filter configuration.

wireless-controller    Wireless access point configuration.

 

FortiGate-VM64 # show full-configuration system

accprofile                        Configure access profiles for system administrators.

admin                             Configure admin users.

affinity-interrupt                Configure interrupt affinity.

affinity-packet-redistribution    Configure packet redistribution.

alias                             Configure alias command.

api-user                          Configure API users.

arp-table                         Configure ARP table.

auto-install                      Configure USB auto installation.

auto-script                       Configure auto script.

automation-action                 Action for automation stitches.

automation-destination            Automation destinations.

automation-stitch                 Automation stitches.

automation-trigger                Trigger for automation stitches.

autoupdate                        Configure automatic updates.

central-management                Configure central management.

cluster-sync                      Configure FortiGate Session Life Support Protocol (FGSP) session synchronization.

console                           Configure console.

csf                               Add this FortiGate to a Security Fabric or set up a new Security Fabric on this FortiGate.

custom-language                   Configure custom languages.

ddns                              Configure DDNS.

dhcp                              Configure DHCP.

dhcp6                             Configure DHCPv6.

dns                               Configure DNS.

dns-database                      Configure DNS databases.

dns-server                        Configure DNS servers.

dscp-based-priority               Configure DSCP based priority table.

email-server                      Configure the email server used by the FortiGate various things. For example, for sending email messages to users to support user authentication features.

external-resource                 Configure external resource.

fips-cc                           Configure FIPS-CC mode.

fortiguard                        Configure FortiGuard services.

fortisandbox                      Configure FortiSandbox.

fsso-polling                      Configure Fortinet Single Sign On (FSSO) server.

ftm-push                          Configure FortiToken Mobile push services.

geneve                            Configure GENEVE devices.

geoip-override                    Configure geographical location mapping for IP address(es) to override mappings from FortiGuard.

global                            Configure global attributes.

gre-tunnel                        Configure GRE tunnel.

ha                                Configure HA.

ha-monitor                        Configure HA monitor.

interface                         Configure interfaces.

ipip-tunnel                       Configure IP in IP Tunneling.

ips                               Configure IPS system settings.

ips-urlfilter-dns                 Configure IPS URL filter DNS servers.

ips-urlfilter-dns6                Configure IPS URL filter IPv6 DNS servers.

ipsec-aggregate                   Configure an aggregate of IPsec tunnels.

ipv6-neighbor-cache               Configure IPv6 neighbor cache table.

ipv6-tunnel                       Configure IPv6/IPv4 in IPv6 tunnel.

link-monitor                      Configure Link Health Monitor.

lldp                              Configure LLDP.

mobile-tunnel                     Configure Mobile tunnels, an implementation of Network Mobility (NEMO) extensions for Mobile IPv4 RFC5177.

nat64                             Configure NAT64.

nd-proxy                          Configure IPv6 neighbor discovery proxy (RFC4389).

netflow                           Configure NetFlow.

network-visibility                Configure network visibility settings.

ntp                               Configure system NTP information.

object-tagging                    Configure object tagging.

password-policy                   Configure password policy for locally defined administrator passwords and IPsec VPN pre-shared keys.

password-policy-guest-admin       Configure the password policy for guest administrators.

pppoe-interface                   Configure the PPPoE interfaces.

probe-response                    Configure system probe response.

proxy-arp                         Configure proxy-ARP.

replacemsg                        Configure replacement message.

replacemsg-group                  Configure replacement message groups.

replacemsg-image                  Configure replacement message images.

saml                              Global settings for SAML authentication.

sdn-connector                     Configure connection to SDN Connector.

sdwan                             Configure redundant Internet connections with multiple outbound links and health-check profiles.

session-helper                    Configure session helper.

session-ttl                       Configure global session TTL timers for this FortiGate.

settings                          Configure VDOM settings.

sflow                             Configure sFlow.

sit-tunnel                        Configure IPv6 tunnel over IPv4.

sms-server                        Configure SMS server for sending SMS messages to support user authentication.

snmp                              Configure SNMP.

speed-test-server                 Configure speed test server list.

sso-admin                         Configure SSO admin users.

standalone-cluster                Configure FortiGate Session Life Support Protocol (FGSP) cluster attributes.

storage                           Configure logical storage.

switch-interface                  Configure software switch interfaces by grouping physical and WiFi interfaces.

tos-based-priority                Configure Type of Service (ToS) based priority table to set network traffic priorities.

vdom-exception                    Global configuration objects that can be configured independently across different ha peers for all VDOMs or for the defined VDOM scope.

vdom-link                         Configure VDOM links.

virtual-wire-pair                 Configure virtual wire pairs.

vne-tunnel                        Configure virtual network enabler tunnel.

vxlan                             Configure VXLAN devices.

wccp                              Configure WCCP.

zone                              Configure zones to group two or more interfaces. When a zone is created you can configure policies for the zone instead of individual interfaces in the zone.

 

FortiGate-VM64 # show full-configuration system interface port1

config system interface

    edit "port1"

        set vdom "root"

        set vrf 0

        set fortilink disable

        set mode static

        set dhcp-relay-service disable

        set ip 192.168.1.160 255.255.255.0

        set allowaccess ping ssh http

        set fail-detect disable

        set pptp-client disable

        set arpforward enable

        set broadcast-forward disable

        set bfd global

        set l2forward disable

        set icmp-send-redirect enable

        set icmp-accept-redirect enable

        set vlanforward disable

        set stpforward disable

        set ips-sniffer-mode disable

        set ident-accept disable

        set ipmac disable

        set subst disable

        set substitute-dst-mac 00:00:00:00:00:00

        set status up

        set netbios-forward disable

        set wins-ip 0.0.0.0

        set type physical

        set dedicated-to none

        set ring-rx 0

        set ring-tx 0

        set netflow-sampler disable

        set sflow-sampler disable

        set src-check enable

        set sample-rate 2000

        set polling-interval 20

        set sample-direction both

        set explicit-web-proxy disable

        set explicit-ftp-proxy disable

        set proxy-captive-portal disable

        set tcp-mss 0

        set inbandwidth 0

        set outbandwidth 0

        set egress-shaping-profile ''

        set ingress-shaping-profile ''

        set disconnect-threshold 0

        set spillover-threshold 0

        set ingress-spillover-threshold 0

        set weight 0

        set external disable

        set description ''

        set alias ''

        set security-mode none

        set device-identification disable

        set lldp-reception vdom

        set lldp-transmission vdom

        set estimated-upstream-bandwidth 0

        set estimated-downstream-bandwidth 0

        set measured-upstream-bandwidth 0

        set measured-downstream-bandwidth 0

        set bandwidth-measure-time 0

        set monitor-bandwidth disable

        set vrrp-virtual-mac disable

        set role undefined

        set snmp-index 1

        set secondary-IP disable

        set preserve-session-route disable

        set auto-auth-extension-device disable

        set ap-discover enable

        set ip-managed-by-fortiipam disable

        set switch-controller-mgmt-vlan 4094

        set switch-controller-igmp-snooping-proxy disable

        set switch-controller-igmp-snooping-fast-leave disable

        set swc-first-create 0

        config ipv6

            set ip6-mode static

            set nd-mode basic

            set ip6-address ::/0

            unset ip6-allowaccess

            set icmp6-send-redirect enable

            set ip6-reachable-time 0

            set ip6-retrans-time 0

            set ip6-hop-limit 0

            set dhcp6-prefix-delegation disable

            set dhcp6-information-request disable

            set vrrp-virtual-mac6 disable

            set vrip6_link_local ::

            set ip6-send-adv disable

            set autoconf disable

            set dhcp6-relay-service disable

        end

        set speed auto

        set mtu-override disable

        set wccp disable

        set drop-overlapped-fragment disable

        set drop-fragment disable

    next

end

 

Configuration Backups

I've changed the FortiGate hostname: FG-1 to perform a configuration backup and restore.

 

FortiGate-VM64 # config sys global

 

FortiGate-VM64 (global) # set hostname FG-1

 

FortiGate-VM64 (global) # end

 

FG1 #

 

 

To backup the FortiGate configuration in the GUI, go to admin > Configuration > Backup.

 

Select Backup to: Local PC > leave Encryption deselected (gray toggle) > Save File > click OK.

It's good practice to always perform routine backup on the FortiGate device. An encrypted backup file hampers Fortinet support in their troubleshooting since they won't be able to read the backup file (and if you also forget the password). Consider saving backup files in plain-text and store them in a secure server instead.

I changed again the hostname to: FORTIGATE-1

 

FG-1 # config sys global

 

FG-1 (global) # set hostname FORTIGATE-1

 

FG-1 (global) # end

 

FORTIGATE-1 #

 

 

To restore the configuration from backup, go to admin > Configuration > Restore.

 

Select Restore from: Local PC > search/select the config file (.conf) > Upload > OK.

A confirmation message will be presented. Click OK to continue.

The FortiGate will auto reboot.

The web page will time out. Refresh the web GUI and re-login.


Notice the hostname: FG-1 was reverted back and displayed in the web page tab and under Dashboard > Status > System Information.

 

Configuring Administrator Accounts

To configure a new user administrator profile with read-only access, go to System > Admin Profiles > Create New.

 

Notice there are two Admin Profiles created by default: prof_admin and super_admin.

 

Below are the Access Permissions in the prof_admin profile.

Below are the Access Permissions in super_admin profile.

 

Notice none of the Access Control Permissions are configurable (grayed out).

 

For the new Admin Profile, type a Name: Sec_Admin_Prof > optionally type a Comment > set all Access Control Permissions to: Read except for Security Profile: Read/Write > click OK.

Create a new administrator account and assign to the Admin Profile just created, go to System > Administrators > Create New > Administrator.

 

Notice the admin with Admin Profile: super_admin is created by default.

 


Type the username: sec-admin > select Type: Local User > type Password: fortinet (type twice to confirm and click the eye icon to view clear text password) > select Administrator Profile: Sec_Admin_Prof > leave the other settings in default (deselected) > click OK.



Logout the current admin account (upper right corner) and login using the new sec-admin account.


I explored the web GUI options and noticed it can only view (read-only) some of the FortiGate options, i.e. Interfaces, System Settings while some options are configurable (read-write), i.e. Hostname, Time zone, Security Profiles.





You can restrict certain trusted subnets to manage the FortiGate. I was initially able to SSH from 192.168.1.140 (Cisco CSRv router).

 

CSRv#show ip interface brief

Interface              IP-Address      OK? Method Status                Protocol

GigabitEthernet1       192.168.1.140   YES NVRAM  up                    up     

GigabitEthernet2       unassigned      YES TFTP   administratively down down   

 

 

CSRv#ssh -l admin 192.168.1.160

Password:

FG-1 # 

 

 

Login using the admin account, go to System > Administrators > select admin > click Edit (with pencil icon).

 

 

Enable/toggle: Restrict login to trusted hosts > type Trusted Host 1: 192.168.1.100/32 (Windows 10) > click OK.

 

You can add more host IP or subnet by clicking the plus (+) icon.

 

 

I wasn't able to SSH from CSRv router afterwards.

 

CSRv#ssh -l admin 192.168.1.160

[Connection to 192.168.1.160 aborted: error status 0]

 

 

I added the CSRv IP address 192.168.1.140 via the FortiGate CLI.

 

FG-1 # config system admin

 

FG-1 (admin) # edit admin

 

FG-1 (admin) # set trusthost2 192.168.1.140/32

 

FG-1 (admin) # end

 

 

To view the current users, issue a get system info admin status command.

 

FG-1 # get system info

admin    admin

 

FG-1 # get system info admin

ssh       Show SSH status.

status    Show logged in administrators.

 

FG-1 # get system info admin status

Index  User name   Login type  From

Logged in users: 3

USERNAME        TYPE    FROM             TIME

admin           http    192.168.1.100    Mon May  3 19:29:15 2021

 

admin           ssh     192.168.1.100    Mon May  3 19:40:26 2021

 

admin           ssh     192.168.1.140    Mon May  3 19:41:49 2021

 

If you get an Evaluation license has expired error, just perform a factory reset and re-configure the FortiGate VM.

FG-1 # exec factoryreset    // NO SPACE IN factoryreset

This operation will reset the system to factory default!

Do you want to continue? (y/n)y


Once the initial management interface and HTTPS access is configured, perform a configuration restore. Go to admin (upper right corner) > Configuration > Restore.

 

Select Restore from: Local PC > click Upload > select .conf file > click OK.


The FortiGate will auto reboot and will get disconnected. Just refresh the web browser after 5 minutes.