Ubuntu下snort的使用

前言

snort是一个强大的轻量级的NIDS/NIPS(网络入侵检测/防御系统),它具有实时数据流量分析和日志IP网络数据包的能力,能够进行协议分析,对内容进行搜索、匹配,能够检测各种不同的攻击方式,受到攻击进行实时报警。此外,snort还具有很好的扩展性和移植性

安装

环境:Ubuntu18.04

安装命令:

sudo apt-get install snort

验证安装成功:

snort --version

验证配置文件是否正确:

snort -T -c /etc/snort/snort.conf

正确时左下角会显示Successfully的字样:

相关参数可用--help查看解释

  • -T:Test and report on the current Snort configuration
  • -c:Use Rules File

设置一个简单的ICMP检测规则

1.编写规则。首先编辑:

sudo vi /etc/snort/rules/local.rules

写入:

alert icmp any any -> $HOME_NET any (msg: "ICMP Test!!!";classtype:not-suspicious;sid:1000001;rev:1;)

2.在主配置文件中将这个local.rules包含进去:

sudo vi /etc/snort/snort.conf

写入:

include $RULE_PATH/local.rules

3.启动监听模式。命令:

sudo snort -A console -q -u snort -g snort -c /etc/snort/snort.conf -i lo

这里我监听的是本地环回网卡lo。开始监听后什么都不会显示,因为没有流量通过127.0.0.1这个ip,为了验证规则是否设置成功,这里边监听,边另起一个窗口进行ping 127.0.0.1

除了自定义规则,snort还自带了一些规则模板,放在/etc/snort/rules目录下

理解规则描述语言

snort的每条规则必须在一行中,每条规则可分为两部分:

规则头 (规则选项)

例如上面的:

alert icmp any any -> $HOME_NET any (msg: "ICMP Test!!!";classtype:not-suspicious;sid:1000001;rev:1;)

规则头包括:

  • 规则行为
  • 协议
  • 源/目的IP地址、子网掩码
  • 源/目的端口

规则选项包括:

  • 报警信息
  • 异常包信息

规则选项中冒号前面的词叫做选项关键词

每条规则中规则选项不是必须的,他们是为了更加详细的定义应该收集或报警的数据包

可以认为组成一条规则的元素之间是逻辑与(AND)的关系,不同规则之间是逻辑或(OR)关系

有空再填。。。


参考:

https://blog.csdn.net/qq_37865996/article/details/85088090