suricata程序架构
Suricata是一款高性能网络入侵检测防御引擎。该引擎基于多线程,充分利用多核优势。它支持多种协议,如:ip4、ipv6、tcp、udp、http、smtp、pop3、imap、ftp等。可动态加载预设规则,支持多种文件格式统计数据输出,如pcap、json、unified2等,非常便于与Barnyard2等工具集成。
运行模式
Suricata有多种运行模式,这些模式与抓包驱动和IDS/IPS选择相关联。抓包驱动如:pcap, pcap file, nfqueue,ipfw, dpdk或者一个特有的抓包驱动等。Suricata在启动时只能选择某个运行模式。如-i选项表示pcap, -r表示pcapfile,-q表示nfqueue等。每一种运行模式都会初始化一些threads,queues等。模式的具体任务是由线程模块来完成。根据线程和线程模块的组织方式的不同,运行模式又细分为"autofp", “single”,“wokers”.
从上面的流程图可看出,“autofp”模式属于最高效的模式,但也是最复杂的模式。"worker“适中。