上篇文章我们已经完成了snort全部的下载和编译过程,,那么snort的运行不仅需要二进制程序,还需要配置文件,现在我们来在源代码目录下/etc目录下查看配置文件。
etc下文件结构
ls /etc和ls /etc/snort/下的文件其实是非常相似的
源代码多了makefile文件,也少了rules目录,需要大家去官网上下载。但在缺省状态下,rules内容很少,apt-get下rules非常少。
缺省状态==系统默认状态
-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。
snort.conf下很多是要变化,修改的东西。其他的文件相对固定。
attribute_table.dtd
我们简单看一下第一行的attribute_table.dtd,这个文件是一个xml文件的格式定义,要定义里面的object,property,class属性包含是什么,相当于类的定义,可以看见里面有很多属性表
classification.config
该文件和规则相关
可以看出冒号后有三列,分类,分类解释,优先级
分类依据有攻击方式,检测方式,因此很容易理解它并不正交,互相间有包含
file_magic.conf
在文件重组时用到
Magic Number是什么?
简单来说就是看似毫无意义的数值,却能在程序中完成某种功能,例如:
// 位元反序
// magic number - 0x00082082、0x01122408、255
// input: 0123456
// output: 6543210
// unsigned char 的高两位无意义
unsigned char revert(unsigned char i){
return ((i * 0x00082082) & 0x01122408) % 255;
}
可以看这篇文章https://blog.csdn.net/qq_35980805/article/details/106725455
每个文件类型都有这样的数字组成
比如MOV文件,分类是多媒体文件,特征是|66 72 65 65 ,从文件的第四个字节开始
gen-msg.map
定义generator是谁,从哪产生的 100以上比较特殊,可能是一些动态的预处理器产生,用来确定警报的发起者
reference
哈哈,学过的CVE这种漏洞字典,这种库,你需要有一个ID,跟在不完整的URL后,就可以得到完整的需要的reference
threshold
原先用来做警报聚合,现在不用了,废弃这个关键字了
警报聚合可以防止警报数量(几十万个)爆炸
Unicode
用不到,编码字段的
snort.conf
上述的文件几乎不需要做改动,所以可以从snort抽出,现在我们来看可以编辑的snort.conf
开头有解释,设置了相应的9块功能
翻译如下
# 1)设置网络变量。
# 2)配置解码器
# 3)配置基本检测引擎
# 4)配置动态加载库
# 5)配置预处理器
# 6)配置输出插件
# 7)自定义规则集
# 8)自定义预处理器和解码器规则集
# 9)定制共享对象规则集
5)和6)有什么区别
5定义有什么功能 6)给这些功能一个参数