问你何时曾看见,这世界为人们而改变。
Suricata简介
Suricata是一款开源高性能的入侵检测系统,并支持IPS(入侵防御)与NSM(网络安全监控)模式,用来替代原有的Snort入侵检测系统,完全兼容Snort规则语法和支持Lua脚本。
Suricata 部署
安装与编译
参考地址: https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Suricata_Installation
安装环境: 本项目测试环境为Ubuntu 17.04 Zesty,其他OS请参考上述网址中的安装说明。
说明:首次安装时推荐使用方式一自动编译,改动源码或自己下载指定版本时必须使用方式二进行手动编译。
- 安装方式一(自动编译): Personal Package Archives(PPA):
1 | 下载最新稳定版本的suricata |
- 安装方式二(手动编译):
1 | 预装suricata需要的外部依赖库 |
配置
参考地址: http://suricata.readthedocs.io/en/latest/configuration/suricata-yaml.html#suricata-yaml
配置文件: 默认路径: /etc/suricata/suricata.yaml
注意:此部分仅对每个配置模块做简介,还有很多详细配置没有列出,具体请参考配置文件中的注释说明
- 网络配置:
1 | Step 1: inform Suricata about your network |
- 规则配置:
1 | Step 2: select the rules to enable or disable |
- 输出配置:
请注意:其中outputs中的子配置项eve-log为关键配置
1 | Step 3: select outputs to enable |
- 常用捕获设置
1 | Step 4: configure common capture settings |
- 应用层协议设置
1 | Step 5: App Layer Protocol Configuration |
- 高级设置
高级配置项主要有如下七大类,详细设置请参考配置文件里的注释说明
1 | # Advanced settings below ## |
1.3 规则编写
参考地址: http://suricata.readthedocs.io/en/latest/rules/index.html
规则目录: /etc/suricata/rules
- 编写本地规则文件
1 | 进入规则文件路径并且创建本地规则 |
1 | 在文件内写入规则 |
flowbits规则说明: 通过flowset实现标记记录双向流量包。
1 | alert: action |
- 在配置中添加文件
每添加一个新的规则文件,都需要在配置中设置。
1 | rule-files: |
- 指定配置运行
1 | sudo suricata -c /etc/suricata/suricata.yaml -i eth0 |
1.4 启动引擎
参考地址: http://suricata.readthedocs.io/en/latest/command-line-options.html
所有cmd line指令请参考以上地址,在此仅罗列常用命令
使用预录制的pcap:
1 | sudo suricata -r filepath.pcap |
使用网卡real-time:
1 | sudo suricata -i eth0 |
使用指定配置文件:
1 | sudo suricata -c /etc/suricata/suricata.yaml -i eth0 |
1.5 输出日志
参考地址: http://suricata.readthedocs.io/en/latest/output/index.html
输出目录: /var/log/suricata
ex: 一条alert警报在eve.json的输出
1 | { |