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.
Naučte sa spevniť linuxové jadro pomocou sysctl parametrov — od ochrany sieťového zásobníka cez ASLR a BPF reštrikcie až po súborové systémové ochrany. Kompletný sprievodca s pracovnými príkladmi pre produkčné servery v roku 2026.
Praktický sprievodca auditd v roku 2026: audit pravidlá mapované na MITRE ATT&CK, výkonové ladenie, analýza cez ausearch/aureport a integrácia so SIEM (Wazuh, Elastic).
CrowdSec na Linuxe 2026: prečo Fail2ban už nestačí, kompletný návod na inštaláciu s nftables bouncerom, behaviorálne scenáre, paralelná migrácia bez výpadku a kolaboratívne threat intelligence.