Author: geneblue
Blog: https://geneblue.github.io/
suricata
是一款免费,开源的 IDS
入侵检测引擎,而且支持
ips
(入侵防御系统),nsm
(网络安全监控)和离线
pcap
处理。另一款知名的开源 IDS
是
Snort
,网络上的一般说法是 suricata
相较于
Snort
最大优势是支持多线程,另外支持 ipv6
并兼容 Snort
规则。
安装
ppa 安装
安装当前最新版本 1
2
3
4sudo apt-get install software-properties-common
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update
sudo apt-get install suricata jq
debug 版本 1
sudo apt-get install suricata-dbg
查看编译信息和运行状态 1
2
编译安装
安装包下载 1
2wget https://www.openinfosecfoundation.org/download/suricata-5.0.0.tar.gz
tar -zxvf suricata-5.0.0.tar.gz
ubuntu16.04 下编译依赖: 1
2
3
4
5sudo apt-get install libpcre3 libpcre3-dbg libpcre3-dev build-essential libpcap-dev \
libnet1-dev libyaml-0-2 libyaml-dev pkg-config zlib1g zlib1g-dev \
libcap-ng-dev libcap-ng0 make libmagic-dev libjansson-dev \
libnss3-dev libgeoip-dev liblua5.1-dev libhiredis-dev libevent-dev \
python-yaml rustc cargo
编译: 1
2
3
4cd suricata-5.0.0
./configure
make
make install
生成的可执行文件在 src/.libs/suricata
简单使用
安装完后,来认识一些基本目录:
/var/log/suricata
:存储 suricata
日志信息
/etc/suricata
:suricate
配置文件目录
/var/log/suricata
下: 1
2
3
4
5
6
7
8certs #
core #
eve.json #
fast.log #
files #
stats.log #
suricata.log #
suricata-start.log #
/etc/suricata
下: 1
2
3
4
5classification.config # 存放报警分类信息
reference.config # reference 规则引用信息
rules # 存放大量自带规则集目录
suricata.yaml # suricata 配置文件
threshold.config #
suricata.yaml
为主要配置文件,包含:网络信息配置,输出信息配置,抓包配置,应用层协议配置
更改配置,指向我们的测试规则文件 1
2
3default-rule-path: /media/psf/LinuxVolume/IDS/rules
rule-files:
- test.rules
一条简单的策略如下,表示任何 ip
地址的任意端口发送到本网段(数据流经网卡即可)任意端口的
"HELLO"
消息,将会记录在 fast.log
文件中
1
alert ip any any -> any any (msg: "HELLO"; content: "HELLO"; )
启动 suricata ids 1
sudo suricata -c /media/psf/LinuxVolume/IDS/suricata.yaml -i enp0s5
发送数据如下: 1
2
3from scapy.all import *
pkg = IP(dst="10.211.55.4") / TCP(dport=1234) / "HELLO"
pkg.send()
可以看到 fast.log 中记录了这条 alert 日志: 1
2$cat /var/log/suricata/fast.log
12/05/2019-17:16:59.407436 [**] [1:0:0] HELLO [**] [Classification: (null)] [Priority: 3] {TCP} 10.211.55.2:20 -> 10.211.55.4:1234
以此,我们可以根据自己的需要编写规则文件,记录告警日志。