Suricata IDS/IPS na Linuxe v roku 2026: Inštalácia, pravidlá a IPS režim
Praktický sprievodca nasadením Suricaty 7.0 LTS ako IDS a IPS na Linuxe. Pokrýva inštaláciu, NFQUEUE, AF_PACKET bridge, ET Open pravidlá, EVE JSON aj ladenie výkonu.
Suricata je open-source sieťový systém detekcie a prevencie narušení (IDS/IPS), ktorý analyzuje prevádzku v reálnom čase pomocou viacvláknového engine, podpisových pravidiel a JA4 TLS fingerprintingu. Vo verzii 7.0 LTS, ktorá je v roku 2026 stále podporovaná, prináša natívnu integráciu s eBPF, výrazne lepší výkon na 25/100 Gbit rozhraniach a strojovo čitateľný EVE JSON výstup pre SIEM systémy ako Wazuh alebo ELK. V tomto sprievodcovi si prejdeme inštaláciu, prevádzku v režime IDS aj inline IPS, správu pravidiel a integráciu do existujúcej bezpečnostnej infraštruktúry.
Suricata 7.0 LTS je odporúčaná produkčná verzia s podporou do roku 2027 a obsahuje natívne JA4 fingerprinting, HTTP/2 dekódovanie a vylepšený DPDK zachytávač.
V režime IDS pracuje pasívne cez SPAN port alebo TAP; v režime IPS sa zaraďuje inline cez NFQUEUE alebo AF_PACKET IPS bridge.
Hlavným zdrojom podpisov sú pravidlá Emerging Threats Open spravované nástrojom suricata-update s podporou viacerých feedov.
EVE JSON výstup je natívne podporovaný vo Filebeate, Wazuhu, Logstash a Splunk Universal Forwarderi.
Pre 10 Gbit+ linky je nutné zapnúť AF_PACKET v3 s RSS, prípadne použiť DPDK alebo eBPF zachytávač s viacvláknovým spracovaním.
Suricata sa v roku 2026 stáva de facto štandardom v open-source IDS svete. Snort 2 dosiahol EOL a Snort 3 nemá porovnateľnú adopciu v komunite.
Čo je Suricata a ako funguje
Suricata je viacvláknový sieťový engine, ktorý súčasne plní úlohu IDS (Intrusion Detection System), IPS (Intrusion Prevention System), NSM (Network Security Monitoring) a parsera pre L7 protokoly. Vývoj zastrešuje neziskové konzorcium Open Information Security Foundation (OISF) a kód je distribuovaný pod licenciou GPLv2. Na rozdiel od klasických paketových filtrov Suricata neanalyzuje len hlavičky, ale rekonštruuje TCP toky, dekóduje HTTP, TLS, SMB, DNS, DHCP, FTP, SNMP a desiatky ďalších protokolov, a nad nimi aplikuje signatúry, ktoré dokážu zistiť napríklad pokus o exploit CVE-2024-3094 (XZ backdoor) alebo command-and-control komunikáciu malvéru.
Engine je rozdelený na zachytávacie vlákno (capture), dekódovacie vlákno (decode), vlákno na sledovanie tokov (flow), spracovanie pravidiel (detect) a výstupné vlákno (output). Vďaka tomu škáluje lineárne s počtom CPU jadier a na bežnom serveri s 16 vláknami a 64 GB RAM zvládne analyzovať 10 Gbit/s prevádzky s plnou sadou ET Open pravidiel. V roku 2026 je produkčne odporúčaná vetva 7.0 LTS, ktorá pridáva podporu HTTP/2, QUIC, JA4 fingerprintingu a má rozšírený dataset pre IoC korelácie.
Aký je rozdiel medzi Suricata a Snort?
Suricata a Snort sú dva najznámejšie open-source IDS engine, no líšia sa architektúrou, výkonom aj formátom pravidiel. Snort 2.x bol jednovláknový a v roku 2025 dosiahol koniec životnosti; Snort 3 priniesol viacvláknovosť, ale v komunite ho rýchlo predbehla Suricata, najmä vďaka kompatibilite s pôvodnými Snort pravidlami a bohatšiemu logovaniu. Pre väčšinu nasadení v roku 2026 odporúčam Suricatu, najmä ak plánujete export do SIEM alebo už používate pravidlá Emerging Threats.
Vlastnosť
Suricata 7.0
Snort 3.1
Architektúra
Natívne viacvláknové (worker model)
Viacvláknové, ale len 1 vlákno na zachytávanie
Maximálna priepustnosť (single host)
≈ 40 Gbit/s s DPDK
≈ 10 Gbit/s
Formát pravidiel
Snort-kompatibilné + rozšírenia (lua, ja4)
Snort 3 vlastný DSL, čiastočne spätná kompatibilita
Štruktúrovaný výstup
EVE JSON (natívne)
JSON cez plugin
TLS fingerprint
JA3, JA3S, JA4, JA4S
JA3 (cez plugin)
Komunita pravidiel
ET Open, ET Pro, vlastné feedy
Talos VRT, Snort Subscriber
Licencia
GPLv2
GPLv2
Inštalácia Suricaty 7.0 na Debiane a RHEL
Na Debiane 12 a Ubuntu 24.04 LTS býva v oficiálnych repozitároch často staršia verzia, takže odporúčam PPA udržiavané priamo OISF, kde nájdete vždy aktuálnu LTS vetvu. Inštalácia trvá zhruba dve minúty a okrem samotného démona pridá aj nástroj suricata-update a štandardné systemd jednotky.
Na RHEL 9, Rocky Linux a AlmaLinux použite EPEL alebo OISF COPR repozitár, ktorý prináša najnovšiu 7.0.x verziu vrátane DPDK podpory. Postup je takmer identický s Debianom, len menažér balíkov je iný:
V režime IDS Suricata pasívne číta kópiu prevádzky z mirror portu prepínača (SPAN) alebo z hardvérového TAP zariadenia. Najdôležitejším krokom je správne nastavenie premennej HOME_NET, aby pravidlá vedeli rozlíšiť internú a externú sieť. Pri jednom nasadení som tento krok podcenil a výsledkom bolo, že nám chýbali desiatky upozornení na laterálny pohyb. Nerobte tú istú chybu.
Po uložení konfigurácie spustite configtest, ktorý overí syntax a načítanie pravidiel pred reštartom služby. Pri produkčnom nasadení sa oplatí pridať --init-errors-fatal, aby sa služba nespustila s pokazeným pravidlom (raz mi takto Suricata bežala dva dni s chybnou regulárnou frázou a nevidela polovicu HTTP alertov).
V režime IPS sa Suricata zaraďuje priamo do dátovej cesty a aktívne zahadzuje pakety, ktoré zodpovedajú pravidlám s akciou drop alebo reject. Najčastejšie sa používajú dva spôsoby: NFQUEUE (paketové fronty z netfiltru) alebo AF_PACKET IPS bridge medzi dvoma rozhraniami. NFQUEUE je flexibilnejší a hodí sa pre menšie inštalácie do 1 Gbit/s, kým AF_PACKET bridge je rýchlejší a vie zvládať line-rate prevádzku.
# /etc/nftables.conf (výňatok pre IPS bridging)
table inet ips {
chain forward {
type filter hook forward priority 0; policy accept;
ct state established,related accept
counter queue num 0 bypass
}
}
# spustenie Suricaty v NFQUEUE móde
sudo suricata -q 0 -c /etc/suricata/suricata.yaml --pidfile /run/suricata-ips.pid -D
Pre AF_PACKET bridge potrebujete dve rozhrania (napríklad ens1f0 a ens1f1) a v konfigurácii af-packet nastavíte copy-mode: ips a copy-iface. Tým Suricata replikuje pakety medzi rozhraniami a zahadzuje len tie, ktoré zodpovedajú IPS pravidlám.
Suricata sa dodáva bez akýchkoľvek pravidiel. Najpopulárnejším bezplatným zdrojom sú Emerging Threats Open, ktoré obsahujú vyše 60 000 podpisov pre malvér, exploity, scenériu C2 a politicky citlivú prevádzku. Nástroj suricata-update ich stiahne, vyhodnotí závislosti a vyprodukuje finálny suricata.rules. Tak, poďme na to.
# jednorazové pridanie ET Open
sudo suricata-update enable-source et/open
sudo suricata-update enable-source tgreen/hunting
sudo suricata-update enable-source sslbl/ssl-fp-blacklist
sudo suricata-update
# vytvorenie cron joba pre nočnú aktualizáciu
echo "30 3 * * * root /usr/bin/suricata-update --quiet && /usr/bin/suricatasc -c reload-rules" \
| sudo tee /etc/cron.d/suricata-update
Po aktualizácii pravidiel netreba reštartovať službu. Cez unix socket suricatasc sa pravidlá načítajú za behu bez straty stavu tokov. Vlastné firemné pravidlá ukladajte do samostatného súboru a pridajte ho cez --local, aby pri ďalšej aktualizácii neboli prepísané.
EVE (Extensible Event Format) je natívny štruktúrovaný výstup Suricaty v JSON formáte. Každý alert, HTTP požiadavka, TLS handshake, DNS dotaz, FileInfo udalosť či NetFlow tok je zapísaný ako samostatný JSON objekt, čo zjednodušuje parsovanie v ELK, Wazuhu, Splunku alebo Grafane Loki. V /etc/suricata/suricata.yaml povolíte EVE výstup nasledovne:
Wazuh agent dokáže EVE súbor automaticky parsovať pomocou localfile dekódera. Postup spárovania s centrálnou Wazuh inštanciou je popísaný v našom článku Wazuh ako open-source SIEM a XDR pre Linux. Pre ELK nasadenie použite Filebeat modul suricata, ktorý obsahuje hotové Kibana dashboardy.
Pri linkách nad 1 Gbit/s sa rýchlo prejavia limity jednovláknového zachytávania. Suricata 7 podporuje tri zachytávače: AF_PACKET v3 (kernel, bez špeciálnych ovládačov), DPDK (poll-mode, vyžaduje uvoľnenie portu z kernelu) a eBPF/XDP, ktorý umožňuje pred-filtrovanie paketov priamo v kernely. Pre väčšinu nasadení postačuje AF_PACKET v3 s RSS rozdelením tokov na hardvérovej úrovni. Honestly, na 10 gigabitovej linke som AF_PACKET v3 vystačil bez problémov, no nad 25 Gbit/s sa už oplatí investovať čas do DPDK.
# zapnúť RSS, RPS a aktivovať tuning jadier
sudo ethtool -L ens1f0 combined 8
sudo ethtool -K ens1f0 gro off lro off tso off gso off
# pripínanie Suricata vlákien na konkrétne jadrá
threading:
set-cpu-affinity: yes
cpu-affinity:
- management-cpu-set: { cpu: [ 0 ] }
- receive-cpu-set: { cpu: [ 1 ] }
- worker-cpu-set: { cpu: [ "2-15" ], mode: exclusive, prio: { default: high } }
Užitočným nástrojom je suricatasc -c uptime a iface-stat ens1f0, ktoré zobrazia počet zahodených (drop) paketov priamo v ringbufferi. Ak hodnota kernel_drops narastá, zvýšte ring-size v AF_PACKET sekcii alebo prejdite na DPDK. Pre dôslednejšie spevnenie operačného systému pod sieťovým senzorom použite naše odporúčania v článku spevnenie linuxového jadra pomocou sysctl parametrov, najmä parametre net.core.netdev_max_backlog a net.core.rmem_max.
Monitorovanie prevádzky a detekcia hrozieb
Aj keď Suricata generuje obrovské množstvo telemetrie, skutočná hodnota vzniká až vtedy, keď alerty dokážete triediť a korelovať. Pre rýchle ad-hoc analýzy je ideálny jq, ktorý EVE súbor filtruje na úrovni JSON polí. Nasledujúci príkaz vám napríklad ukáže top 10 hostiteľov s najvyšším počtom alertov za posledných 24 hodín:
Pre dlhodobé monitorovanie zoradíme Suricatu medzi ostatné detekčné vrstvy: na hraniciach sa stará o CrowdSec ako kolaboratívne IPS proti útokom, v sieti samotná Suricata, na hostiteľoch Wazuh agent a na úrovni jadra eBPF Tetragon. Tým získate viacúrovňovú obranu, kde každá vrstva pokrýva slepé miesto tej predchádzajúcej. Pre tlmenie nadmernej zaťaže odporúčam nastaviť threshold.config s pravidlami typu rate_filter, ktoré pri vysokej frekvencii alertov dočasne zvýšia prah.
V roku 2026 sa oplatí kombinovať Suricatu s detekciou JA4 odtlačkov, ktoré identifikujú nezvyčajné TLS klienty (napríklad Cobalt Strike, Sliver alebo Mythic). Aktiváciou tls.ja4: yes a importom datasetu ja4_malicious získate v alertoch presné identifikátory známych útočníckych nástrojov.
Časté otázky
Aké hardvérové požiadavky má Suricata pre produkčné nasadenie?
Pre 1 Gbit/s linku stačí 4 vlákna CPU a 8 GB RAM. Pre 10 Gbit/s odporúčam minimálne 16 fyzických jadier, 64 GB RAM a sieťovú kartu s podporou RSS (Intel X710, Mellanox ConnectX-5 a vyššie). Pri 40 Gbit/s a viac je nutné použiť DPDK zachytávač a CPU s aspoň 32 jadrami.
Môže Suricata bežať v cloude bez prístupu k SPAN portu?
Áno. V AWS sa používa VPC Traffic Mirroring, v Azure Virtual Network TAP a v GCP Packet Mirroring. Suricata prijíma zrkadlenú prevádzku cez VXLAN alebo ERSPAN tunel, ktorý dešifruje natívnym dekodérom decoder.vxlan.
Ako často aktualizovať pravidlá Emerging Threats?
ET Open feed sa publikuje denne, väčšinou medzi 02:00 a 04:00 UTC. Preto je optimálne spustiť suricata-update raz za 24 hodín cez cron a následne reloadnúť pravidlá cez suricatasc -c reload-rules, aby ste nestrácali stav existujúcich tokov.
Je Suricata vhodná na šifrovanú HTTPS prevádzku?
Bez TLS inšpekcie Suricata nevidí obsah šifrovaných paketov, ale stále dokáže detekovať škodlivé správanie pomocou TLS metadát: SNI, JA3/JA4 fingerprintov, dĺžkových profilov a reputácie certifikátov. Pre plný DPI vstup je potrebné kombinovať s TLS proxy ako mitmproxy alebo nginx s SSL bumpingom.
Aký je rozdiel medzi alert a drop akciou v pravidle?
alert iba zaznamená udalosť do EVE logu a paket prepustí. drop funguje len v IPS režime a paket zahodí, zatiaľ čo reject navyše pošle TCP RST alebo ICMP unreachable iniciátorovi spojenia. V testovacej fáze používajte výlučne alert, kým neoveríte mieru falošných pozitív.
Mateusz spent eight years on the Red Hat consulting bench before going independent in 2024, embedded with banks and telcos rolling out RHEL 8 and 9 across regulated estates. Most of that work was SELinux policy debugging, FIPS-mode enablement, and cleaning up the kind of sudoers files that grow organically over a decade.
He holds OSCP and RHCE, and maintains a small set of Ansible roles for STIG-hardened RHEL builds that a few European credit unions now run in production. Before Red Hat he was a junior sysadmin at Allegro in Poznan, mostly babysitting Postfix and learning why you don't run updatedb on an NFS root.
Mateusz writes about the boring half of Linux security: package signing, audit daemon tuning, and the unglamorous work of actually reading journalctl output before paging anyone.
Praktický sprievodca spevnením systemd unitov v roku 2026: sandbox direktívy, systemd-analyze security, drop-in overrides a walkthrough nginx z 9.6 UNSAFE na 3.1 OK.
Praktický návod ako keyless podpisovať kontajnery cez Sigstore Cosign 2.x. Zahŕňa GitHub Actions OIDC, Fulcio, Rekor, SLSA provenance, overenie podpisov a vynútenie v Kubernetes cez Kyverno admission controller, s príkladmi z pentestov.
Praktický návod, ako Trivy 0.58 integrovať do CI/CD pipeline pre skenovanie kontajnerov, IaC manifestov a generovanie SBOM v CycloneDX a SPDX. Vrátane GitHub Actions, GitLab CI, Trivy Operatora a porovnania s Grype a Snyk.