snort的特性:
Snort 是 Martin Roesch 开发,能够检测不同的攻击行为,如缓冲区溢出、端口扫描、DoS攻击。
轻量级: 没有整合很多模块,主要靠各个插件集成使用如mysql
具有实时数据流量分析和IP数据包分析能力
跨平台: Windows, Linux。
snort的三种工作方式
1.嗅探器模式(sniffer mode):
仅从网络上读取数据包并作为连续不断的流显示在终端上,常用命令snort -dev。
2.数据包记录模式:
数据包记录器模式是把数据包记录到硬盘上,常用命令snort -b。
3.网络入侵检测模式:
我们可以让Snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。
Snort IDS体系结构
(1)数据包嗅探模块——负责监听网络数据包,对网络进行分析;
(2)预处理模块——该模块用相应的插件来检查原始数据包,从中发现原始数据的“行为”,如端口扫描,
IP碎片等,数据包经过预处理后才传到检测引擎;
(3)检测模块——该模块是Snort的核心模块。当数据包从预处理器送过来后,检测引擎依据预先设置的
规则检查数据包,一旦发现数据包中的内容和某条规则相匹配,就通知报警模块;
(4)报警/日志模块——经检测引擎检查后的Snort数据需要以某种方式输出。如果检测引擎中的某条规则
被匹配,则会触发一条报警,这条报警信息会通过网络、UNIXsocket、WindowsPopup(SMB)、SNMP协
议的trap命令传送给日志文件,甚至可以将报警传送给第三方插件(如SnortSam),另外报警信息也
可以记入SQL数据库.
snort规则
Snort使用一种简单的规则描述语言,这种描述语言易于扩展,功能也比较强大。Snort规则是基于文本的,
规则文件按照不同的组进行分类。Snort的每条规则必须在一行中,它的规则解释器无法对跨行的规则进行解析。
Snort的每条规则都可以分成逻辑上的两个部分:规则头和规则体。规则头包括4个部分:规则行为;协议;源信
息;目的信息。
规则头:
描述流的行为及基本特征,描述串为固定格式信息 [行为][协议][IP地址][端口号][流方向][IP地址][端口号]
七类信息。
规则体:
描述流的精确匹配信息,包括:HTTP 首部、Cookie、UA、特定偏移的字串等等,这是 Snort 最强大最核心部分。
Snort预置的5中动作:
(1)pass—将忽略当前的包,后继捕获的包将被继续分析。
(2)log—log将按照自己配置的格式记录包。
(3)alert—将按照自己配置的格式记录包,然后进行报警。它的功能强大,但是必须恰当的用,因为如果报警记录过多,
从中攫取有效信息的工作量增大,反而会使安全防护工作变得低效。
(4)dynamic— 比较独特的一种,它保持在一种潜伏状态,直到activate类型的规则将其触发,之后它将像log动作一样记
录数据包。
(5)activate— 功能强大,当被规则触发时生成报警,并启动相关的dynamic类型规则。在检测复杂的攻击,或对数据进行
归类时,该动作选项相当有用。
(6)动作实例
snort的安装及使用
1.在kali或ubuntu中安装snort
sudo apt-get install snort
- 使用其他主机ping 装有snort的主机,使用 packet logger mode 记录网络活动 .
3.选择icmp包查看
snort -dvr packet.log icmp
4.自定义snort 规则,配置snort.conf 文件。 当有人使用22号端口时报警
5.自定义snort 规则,当有人在局域网中ping 的时候报警,并保存记录,写出命令,并展示结果。