工具简介
Suricata是一个高性能的网络IDS、IPS和网络安全监控引擎。它是开源的,相比tcpdump等基于pcap捉包的工具,它除了能过进行网络捉包外,还具有更多的扩展功能,我们可以利用它的扩展功能,为我们的开发测试环境提供网络数据的监控能力。
安装:
centos系统安装
yum install epel-release yum-plugin-copr
yum copr enable @oisf/suricata-6.0
yum install suricata
ubuntu系统安装
apt-get install build-essential libpcap-dev \
libyaml-0-2 libyaml-dev pkg-config zlib1g zlib1g-dev \
make libmagic-dev libjansson libjansson-dev libpcre2-dev
应用场景
由于开发测试环境经常出现各种中间件复用或者其它问题,可以利用该工具在网络层面进行监控辅助开发排查,例如:
(1)有时候会出现部分消息丢失而不知道被哪里的主机消费了等问题
(2)python或其它项目,在api被调用抛出了异常但工程代码并未捕获异常
(3)性能压测时网络层面的性能指标监控
安装后,编写自定义规则,支持热加载:
vim /etc/suricata/suricata.yaml
确保你的规则在指定路径下:
default-rule-path: /usr/local/etc/suricata/rules
rule-files:
- suricata.rules
- /path/to/local.rules
例如加入规则(由于是k8s,可以考虑过根据端口区分过滤不同的业务):
alert http any any -> any any (msg:"Do not read gossip during work";
content:"Scarlett"; nocase; classtype:policy-violation; sid:1; rev:1;)
可以监控到告警(可以配置为写入文件):
09/15/2011-16:50:27.725288 [**] [1:1:1] Do not read gossip during work [**]
[Classification: Potential Corporate Privacy Violation] [Priority: 1] {TCP} 192.168.0.32:55604 -> 68.67.185.210:80