Platform and capture prerequisites
Prepare a measurable observation point before selecting a capture mode.
Examples target Suricata 8.0.1 on a prepared Linux lab host. Constructed outputs are illustrative, not live sensor results. Commands are lesson examples; no sensor or enforcement is started by this page.
Define the lab boundary
Use a dedicated Linux lab host with Suricata 8.0.1, its matching packaged configuration, local rule files and sufficient disk space. This course assumes those components are already installed. Interface names are examples: adapt them from the actual host, not from the router labels. Containers need access to the relevant interfaces and capture capabilities; a container alone does not create a mirror feed.
Check the build and interfaces
suricata --build-info
ip -br link
Suricata version 8.0.1
AF_PACKET support: yes
NFQueue support: yes
mon0 UP
mgmt0 UPThis selected-field example establishes the engine version, compiled capture support and interface names. A supported feature is not proof that traffic is reaching it. Keep the management interface outside the monitored data path.
Choose capture for the job
| Goal | Input | Prerequisite |
|---|---|---|
| Passive Linux IDS | AF_PACKET on mon0 | Authorized mirror/TAP feed |
| Repeatable analysis | PCAP file | Readable complete lab capture |
| Layer-2 IPS | Paired data NICs | Two dedicated interfaces and supported offload settings |
| Routed IPS | NFQUEUE | Supported build plus scoped Netfilter queue |
Do not run a service capture and a second manual capture on the same interfaces without deliberately separating their resources. Confirm which configuration and service unit the distribution starts.
Check the observation chain
Compare source-link rate and mirror capacity, NIC errors, capture drops, CPU load and storage. Packet rate and rule complexity matter as well as bandwidth. Receive aggregation and checksum offload can change what a host capture presents; review the documented settings for the selected backend rather than disabling every feature indiscriminately.
ip -s link show mon0
RX: bytes packets errors dropped
98000 1000 0 0These interface counters only cover this host. A switch may have lost mirrored packets before they arrived. Use a known bidirectional flow to validate the entire chain.
Gate the next step
Record version, capture method, selected interface, monitored networks, time synchronization, log location and rollback owner. Confirm the lab feed and storage permissions, then validate configuration syntax before processing packets. A successful syntax check cannot demonstrate mirror coverage or throughput.
suricata -T -c /etc/suricata/suricata.yaml --init-errors-fatal
Configuration provided was successfully loaded. Exiting.The configuration can load in this example. The next lesson defines the monitored address groups; offline processing later verifies a harmless marker without touching live traffic.
Further reading
Key Takeaways
- Match the installed engine and configuration version.
- Capture support must exist in the selected build.
- A mirror or TAP feed must deliver the intended traffic.
- Separate management, capture resources and concurrent instances.
- Validate capacity and packet visibility before tuning detection.