snort 安装步骤
1:预装daq(数据采集器)。依赖flex、bison、libpcap
本次安装daq-2.0.7
apt-get install flex、bison、libpcap
下载daq安装包。
tar -zxvf daq-2.0.7.tar.gz
cd daq-2.0.7
./configure
make
make install
2:安装snort软件。依赖libpcre3-dev、libdumbnet-dev、zlib1g-dev
本次安装snort2.9.16
apt-get install libpcre3-dev、libdumbnet-dev、zlib1g-dev
tar -zxvf snort2.9.16.tar.gz
cd snort2.9.16
./configure --enable-sourcefire
make
make install
安装过程遇到的问题:
由于网络原因:需要将本地静态ip地址更改为动态获取的dhcp模式,可以先将/etc/network/interface文件中的static屏蔽,然后开启dhcp
这样子就可以通过外网直接使用apt-get包管理工具直接安装数据采集器和snort的依赖软件
3: 查找snort的可执行文件所在路径,然后加入到环境变量中
whereis snort
vim /etc/profile 在文本最后加入export PATH=$PATH:/usr/local/bin/snort
source /etc/profile 重启环境变量
4:报错信息
4.1 root@ubuntu:~# snort -v
snort: error while loading shared libraries: libsfbpf.so.0: cannot open shared object file: No such file or directory
解决方案:执行 ldconfig 即可
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
数据包记录器:
如果要把所有的包记录到硬盘上,需要指定一个日志目录,该路径一定要存在,使用下面的命令
snort -d(应用层数据) -e(链路层信息) -v(TCP/IP/ICMP包头信息到控制面板) -l ./snortLog
网络入侵检测系统:
snort -d -l ./snortLog -h 172.171.16.0/24 -c snort.conf
snort.conf 是规则集合,snort会对每个包的规则集进行匹配,发现这样的包就采取相应的措施。如果你不指定输出路径,snort会默认输出到/var/log/snort目录
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
snort 规则体中字段说明
1、 msg - 在报警和包日志中打印一个消息
2、 logto - 把包记录到用户指定的文件中而不是记录到标准输出
3、 ttl - 检查ip头的ttl的值
4、 tos- 检查ip头的tos域的值
5、 id - 检查ip头的分片id值
6、 ipoption- 检查ip头的option域
7、 fragbits- 检查ip头的分片标志位
8、 dsize - 检查包的数据部分大小
9、 content - 在包的数据部分中搜索指定的样式
10、 offset - content选项的修饰符,设定开始搜索的位置
11、 depth - content选项的修饰符,设定搜索的最大深度
12、 nocase - 指定对content字符串大小写不敏感
13、 content-list – 在数据包中搜索多种可能匹配
14、 flags -检查tcp flags的值
15、 seq - 检查tcp顺序号的值
16、 ack - 检查tcp应答(acknowledgement)的值
17、 itype - 检查icmp type的值
18、 icode - 检查icmp code的值
19、 session - 记录指定会话的应用层信息的内容
20、 icmp_id - 检查ICMP ECHO ID的值
21、 icmp_seq - 检查ICMP ECHO 顺序号的值
22、 ipoption - 监视IP option的特定代码
23、 rpc - 监视特定应用/进程调用的RPC服务
24、 resp - 主动反应(切断连接等)
25、 reference- 外部参考id
26、 sid- snort的规则id
27、 rev- 规则的修正号
28、 classtype- 规则的分类号
29、 priority- 规则的优先级
30、 uricontent- 在数据包的URI部分搜索指定的匹配
31、 tag- 高级记录动作
32、 ip_proto- ip头的协议值
33、 sameip- 源地址和目标地址相同
34、 stateless- 无状态连接
35、 regex- 通配符模式匹配