Snort - manual 笔记(五)
1.9 Miscellaneous
1.9.1 Running Snort as a Daemon
如果你想让Snort作为守护程序运行,你可以在最后加上 -D 选项。清注意如果你想通过发送一个 SIGHUP 信号到守护程序重启Snort,必须指定启动Snort的绝对路径,例如:
/usr/local/bin/snort -d -h 192.168.1.0/24 \
-l /var/log/snortlogs -c /usr/local/etc/snort.conf -s -D
出于安全性考虑,不支持相对路径。
Snort PID File
当Snort作为守护程序(daemon)运行,守护程序在log目录会产生一个PID文件。 在Snort 2.6版本中加入 --pid-path 命令行选项 ,可以指定Snort PID文件生成目录。
此外,--create-pidfile 选项可以用来强制生成PID文件,即使没有以守护程序模式运行。
PID文件将会锁定来阻止其他snort进程启动。使用 --nolock-pidfile 选项取消锁定PID文件。
如果不希望在PID文件中包括接口名(interface name),使用 --no-interface-pidfile 选项。
1.9.2 Running in Rule Stub Creation Mode
如果需要将分享的对象规则村到一个目录,必须使用 -dump-dynamic-rules 命令行选项。这些规则储存文件(stub files)经常和分享的对象规则(shared object rules)连在一起。可以使用绝对路径和相对路径。
/usr/local/bin/snort -c /usr/local/etc/snort.conf \
--dump-dynamic-rules=/tmp
路径也可以在 snort.conf 中配置:
config dump-dynamic-rules-path: /tmp/sorules
通过命令行配置的目录优先级高于配置文件:
/usr/local/bin/snort -c /usr/local/etc/snort.conf \
--dump-dynamic-rules
snort.conf:
config dump-dynamic-rules-path: /tmp/sorules
在上述方案中会将转储目录设为 /tmp/sorules 。
1.9.3 Obfuscating IP Address Printouts
如果需要发送包日志到公共的 mailing lists,也许会用到 -O 选项。这个选项会混淆输出的IP地址。也可以组合使用 -O 和 -h ,这样只会混淆家庭网络(home network)的主机的IP地址。例如,你可以使用以下命令从日志文件中读取并且输出到屏幕,混淆 192.168.1.0/24 网段的ip地址。
./snort -d -v -r snort.log -O -h 192.168.1.0/24
1.9.4 Specifying Multiple-Instance Identifiers
在Snort v2.4 中加入了 -G 命令行选项。可以给事件日志指定一个实例的标识符。这个选项可以在snort运行多实例(multiple instances)使用,可以在不同的CPU上或者一个CPU上不同的接口使用。每个Snort实例都会使用指定的值去生成唯一的事件ID。用户可以指定一个十进制值 -G 1 或者十六进制值 -G 0x11。同时支持通过长选项 --logid。
1.9.5 Snort Modes
Snort 可以运行在3中不同的模式: tap(passive), inline, inline-test. Snort的策略也可以用于这三种模式。
Explanation of Modes
Inline
当Snort工作在Inline模式,Snort作为IPS运行,允许触发drop规则。Snort可以通过命令行 -Q 选项和配置文件选项 policy_modes 工作inline模式:
snort -Q
config policy_mode:inline
Passive
当Snort工作在Passive模式,Snort作为IDS运行,drop规则没有加载(不使用 -treat-drop-as-alert的情况下)。Snort可以通过配置文件选项 policy mode 工作passive模式:
config policy_mode:tap
Inline-Test
Inline-test模式会模拟Snort的inline模式,允许在不影响流量的情况下评估inline行为。drop规则会被加载而且将会触发为 Wdrop(Would Drop) 告警。Snort 可以用命令行选项 –enable-inline-test 或者配置文件选项 policy_modes 工作inline-test模式:
snort --enable-inline-test
config policy_mode:inline_test
注意:
--enable-inline-test不可以和 -Q 一起使用。
不同模式的规则选项行为:

不同模式的规则动作行为:

1.10 Control socket
Snort可以配置提供一个可以被用来发命令到运行中的进程的Unix socket。必须在build时使用 --enable-control-socket 选项。目前只支持 linux 。
Snort可以使用命令行选项 --cs-dir <path> 和配置文件选项 cs_dir 配置:
snort --cs-dir <path>
config cs_dir:<path>
<path> 指定snort生成socket的目录。如果使用相对路径,是相对pid的路径,如果没有指定pid路径,就是相对当前目录的路径。
用 --enable-control-socket build后,在snort的bin目录下会增加 snort control 命令。
1.11 Configure signal value
在一些其他的系统中,snort用的一些信号也被其他的函数使用了。为了避免冲突,用户可以通过 ./configure 选项改变默认的信号值。
以下信号可以改变:
- SIGNAL SNORT RELOAD
- SIGNAL SNORT DUMP STATS
- SIGNAL SNORT ROTATE STATS
- SIGNAL SNORT READ ATTR TBL
语法:
./configure SIGNAL_SNORT_RELOAD=<value/name> SIGNAL_SNORT_DUMP_STATS=<value/name>\
SIGNAL_SNORT_READ_ATTR_TBL=<value/name> SIGNAL_SNORT_ROTATE_STATS=<value/name>
可以将这些信号改为用户定义的值或者系统中已知的信号名。下面这个例子是将 rotate stats 信号改为 31 和 重载 表属性信号 SIGUSR2 :
./configure SIGNAL_SNORT_ROTATE_STATS=31 SIGNAL_SNORT_READ_ATTR_TBL=SIGUSR2
如果相同的信号被指定多次警告,将会在snort初始化时记录。如果一个信号处理不能安装,将会记录一个警告而且需要修复,否则将会失去功能。
Snort中用到的信号:

Snort - manual 笔记(五)的更多相关文章
- Snort - manual 笔记(一)
Chapter 1 Snort Overview This manual is based on Writing Snort Rules by Martin Roesch and further wo ...
- Snort - manual 笔记(四)
1.7 Basic Output Snort可以做很多任务, 并且在任务完成后输出很多有用的统计信息. 一些不用说明就可以看懂, 其他的总结在这里, 不过只是一些基本的 1.7.1 Timing St ...
- Snort - manual 笔记(二)
1.5 Packet Acquisition Snort 2.9 引入 DAQ 代替直接调用 libpcap . 有两种网卡特性会影响 Snort : "Large Receive Offl ...
- Snort - manual 笔记(三)
1.6 Reading pcap files Snort 不仅可以监听interface, 还可以读取和分析已经捕获的数据包. 1.6.1 Command line arguments 下面的命令都可 ...
- C#可扩展编程之MEF学习笔记(五):MEF高级进阶
好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...
- 《MFC游戏开发》笔记五 定时器和简单动画
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9332377 作者:七十一雾央 新浪微博:http:// ...
- (转)Qt Model/View 学习笔记 (五)——View 类
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...
- java之jvm学习笔记五(实践写自己的类装载器)
java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...
- Crazyflie笔记五: CRTP 实时通信协议(一)(转)
源:Crazyflie笔记五: CRTP 实时通信协议(一) 这里详细介绍了 Crazyflie 的 CRTP实时通信协议的相关内容,由于内容很长,分几篇博文来讲述.这里是第一节内容.欢迎交流:301 ...
随机推荐
- golang在Windows下Sublime Text开发调试环境的配置
一.前言 近期本人有工作调动,进入了一个全新的领域[golang]服务端开发.在此写下本文,希望给那些没接触过golang开发调试环境及还在犹豫选择那家golang IDE而纠结的朋友们一点点帮助,如 ...
- Datatables 在asp.net mvc中的使用
前言 最近使用ABP(ASP.NET Boilerplate)做新项目,以前都是自己扩展一个HtmlHelper来完成同步/异步分页,但是有个地方一直不满意,排序太费劲. 以前接触过一点点的Datat ...
- 小meta的大作用
meta是用来在HTML文档中模拟HTTP协议的响应头报文.meta 标签用于网页的<head>与</head>中,meta 标签的用处很多.meta 的属性有两种:name和 ...
- elasticsearch 文档
elasticsearch 文档 文档格式 索引中最基本的单元叫做文档 document. 在es中文档的示例如下: { "_index": "questions&quo ...
- MVC中的默认Model绑定者DefaultModelBinder
一.题外话 接续上一篇: MVC中Action参数绑定的过程 public IModelBinder DefaultBinder { get { if (this._defaultBinder == ...
- SQL Server时间粒度系列----第4节季、年时间粒度详解
本文目录列表: 1.SQL Server季时间粒度2.SQL Server年时间粒度 3.总结语 4.参考清单列表 SQL Serve季时间粒度 季时间粒度也即是季度时间粒度.一年每3 ...
- The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value. 错误的原因及解决方案
异常描述: 数据访问用EF,在数据库中用getdate()设置的默认值,程序中没有赋值. 出现异常. 此错误在百度上在我写此文之前没有多少解决方案,谷歌之等到以下两个有用的页: http://stac ...
- .Net Task<T>的一种比较神奇的卡死情况(Wait/Result卡死, await能得到结果)
出现的环境.Net4.0 + WebApi1(4.0.30506.0) + Microsoft.Bcl.Async.1.0.168 自己死活看不出原因, 分享出来给大家看看,希望有人能找到问题的关键 ...
- 改进网站设计的免费jQuery插件Top 7
Animate Scroll.js是一个简单的jQuery插件,它用来为滚动增加延迟效果.同时你还可以自定义滚动样式(30多种滚动效果)和滚动速度,还有一个可以操纵”滚动结束位置”的”padding” ...
- DES加密解密
加密后生成Base64字符串,并去除'='字符. 加密后替换掉'+',这样加密后的字符串可以作为url参数传递. using System; using System.IO; using System ...