Contents
Suricata matches the traffic on a network against rules and records an alert when it finds something suspicious. It is open source software developed by the non-profit OISF, and with a different setup it can also block traffic.
This review is for people who have read packets in Wireshark and now want to try something that watches traffic automatically. After reading it, you can do the following:
- Install Suricata on a test Ubuntu machine and fetch rules
- Trigger an alert with a test rule and read the logs
- Explain the difference between IDS mode and IPS mode
What Suricata is for
The official documentation describes Suricata as a network IDS, IPS, and network security monitoring (NSM) engine.
- It matches traffic against rules and records matches as alerts
- It writes results to
fast.log(one line per alert) andeve.json(detailed records in JSON) - It can read saved pcap files and inspect them later
- In IPS mode, it can block traffic that matches rules
IDS mode and IPS mode
| IDS mode | IPS mode | |
|---|---|---|
| Placement | Receives a copy of the traffic and inspects it | Sits in the path of the traffic (inline) |
| When a rule matches | Records an alert only | Can block traffic with drop or reject rules |
| When TCP data is inspected | After the acknowledgement (ACK) is received | As soon as new data arrives |
| If something goes wrong | Attacks may be missed | Legitimate traffic may be blocked |
To run IPS mode on Linux, for example, you send traffic to NFQUEUE with iptables and start Suricata with the -q option and a queue number. The steps in this review cover IDS mode only.
Try it safely on a test Ubuntu machine
Use a virtual machine you built yourself and inspect only that machine’s own traffic. These steps follow the official quickstart.
-
Add the official PPA and install Suricata and
jq, a tool for reading JSON.sudo add-apt-repository ppa:oisf/suricata-stable sudo apt update sudo apt install suricata jq -
Run
ip addrto find the network interface name and IP address. -
Open
/etc/suricata/suricata.yamland check thatHOME_NETincludes your network. Setinterfacein theaf-packetsection to the name you found in step 2. -
Run
sudo suricata-updateto fetch rules. By default, it installs the ET Open ruleset in/var/lib/suricata/rules. -
Restart Suricata with
sudo systemctl restart suricata. -
In another terminal, run
sudo tail -f /var/log/suricata/fast.log. Then runcurl http://testmynids.org/uid/index.html. This URL returns a response that matches a test rule in ET Open (sid 2100498). -
If an alert line appears in
fast.log, detection is working.
Get and manage rules
Use suricata-update, which ships with Suricata, to fetch and update rules.
| Command | What it does |
|---|---|
sudo suricata-update |
Fetches or updates ET Open |
sudo suricata-update update-sources |
Fetches the index of available rulesets |
sudo suricata-update list-sources |
Lists the available rulesets |
sudo suricata-update enable-source oisf/trafficid |
Enables another ruleset (here, OISF’s TrafficID) |
The official docs recommend updating rules often. You can also add rules you write yourself as a rule file.
Common command line options
| Option | Meaning |
|---|---|
-c <file> |
Use this configuration file |
-i <interface> |
Inspect traffic on this interface |
-r <path> |
Read and inspect a pcap file, or the files in a directory |
-l <directory> |
Write logs to this directory |
-q <queue id> |
Run inline using NFQUEUE (IPS) |
With -r, you can inspect pcap files you recorded yourself in Wireshark.
Cautions
- Only inspect networks you manage or have the administrator’s permission to monitor. Suricata reads the contents of traffic, so don’t inspect other people’s traffic without permission.
- Logs such as
eve.jsoncontain destinations and parts of the traffic. Check the contents before you share them. - IPS mode sits in the path of the traffic, so a wrong setting or rule can block traffic you need. Watch for false positives in IDS mode before you switch.
- The official site offers a 64-bit installer for Windows. On macOS, you build from source.
Read next
Sources
- Docs: What is Suricatadocs.suricata.io/en/suricata-8.0.7/what-is-suricata.html
- Docs: Quickstart guidedocs.suricata.io/en/suricata-8.0.7/quickstart.html
- Docs: Rule Management with Suricata-Updatedocs.suricata.io/en/suricata-8.0.7/rule-management/suricata-update.html
- Docs: IPS Conceptdocs.suricata.io/en/suricata-8.0.7/ips/ips-concept.html
- Docs: Setting up IPS/inline for Linuxdocs.suricata.io/en/suricata-8.0.7/ips/setting-up-ipsinline-for-linux.html
- Docs: Command Line Optionsdocs.suricata.io/en/suricata-8.0.7/command-line-options.html
- Official site: Downloadsuricata.io/download/
Checked on 2026-10-24
Similar tools
Wazuh
Impact Local onlyA free security platform (SIEM/XDR) that collects logs, configuration, and vulnerability data from agents on your endpoints and shows it all in one dashboard.
- Purpose
- Defense
- Type
- Self-hosted server
- Difficulty
- Advanced
- License
- CopyleftGPL-2.0(一部の構成要素は Apache-2.0)
- Category
- Vulnerability scanning / Forensics
Wireshark
Impact Reaches othersA packet analyzer that records network traffic and breaks each packet down by protocol so you can read it.
- Purpose
- Learning
- Type
- Desktop app
- Difficulty
- Beginner
- License
- CopyleftGPL-2.0
- Category
- Network / Forensics