Description |
This article describes how to run IPS engine debug. |
Scope |
FortiGate. |
Solution |
The old 'diagnose debug application ipsmonitor -1' command is obsolete (used for the versions prior to 6.4) and does not show useful data.
Do not use it unless specifically requested.
Run the following command instead to debug IPSengine in FortiOS v6.4 or above:
diagnose ips debug enable ?
Select the appropriate categories to filter the outputs, or select 'All' example:
diagnose ips debug enable ssl diagnose ips debug enable dissector diagnose debug console timestamp enable diagnose debug enable
To verify which debug parameters are enabled, run the command below:
diagnose ips debug status show
If all parameters are enabled, the output will be shown as below (depending on how many IPS Engine counters are running on the device, 8 of the IPS engines are running on the device in the example).
IPS Engine <00333> Enabled debug actions: init packet packet_detail error warn parse detect session log dissector tcp http mail dns rpc im p2p ssh ssl voip content urlfilter av mime content_detail smb proxy packet_dump ipsa state dac sctp quic
If only one parameter is enabled, the output will be shown as below:
diagnose ips debug enable ssl diagnose ips debug status show
In the case of the production environment, run this debug only during low traffic hours, especially if 'ALL' is used, due to CPU usage impact.
To filter the traffic, use the command below:
diagnose ips filter set
This filter is a Berkeley filter which allows to use of many parameters such as source, destination, and TCP/UDP ports.
Example 1:
Filter the traffic from source IP 1.1.1.1 and TCP port 443:
diagnose ips filter set 'src 1.1.1.1 and tcp port 443'
Verify the filter with the following command:
diagnose ips filter status DEBUG FILTER:
Example 2: To filter the traffic from source IP 192.168.10.10 and destination IP 8.8.8.8 and port UDP 5060.
diagnose ips filter set 'src 192.168.10.10 and dst 8.8.8.8 and udp port 5060'
Verify the filter with the command below:
diagnose ips filter status
Example 3:
Verify the filter with the following command:
diagnose ips filter status
To capture IPS debug using a virtual IP as the destination, use the mapped IP/ports as a filter instead of the external IP/ports, or else there will be no output.
To stop debugging:
diagnose debug disable diagnose ips debug disable all diagnose ips filter clear
Note: For IPS related issue, the IPS Engine version with the command:
diagnose autoupdate versions | grep -A6 "IPS Attack Engine"
Related article: |
The Fortinet Security Fabric brings together the concepts of convergence and consolidation to provide comprehensive cybersecurity protection for all users, devices, and applications and across all network edges.
Copyright 2025 Fortinet, Inc. All Rights Reserved.