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 笔记(五)的更多相关文章

  1. Snort - manual 笔记(一)

    Chapter 1 Snort Overview This manual is based on Writing Snort Rules by Martin Roesch and further wo ...

  2. Snort - manual 笔记(四)

    1.7 Basic Output Snort可以做很多任务, 并且在任务完成后输出很多有用的统计信息. 一些不用说明就可以看懂, 其他的总结在这里, 不过只是一些基本的 1.7.1 Timing St ...

  3. Snort - manual 笔记(二)

    1.5 Packet Acquisition Snort 2.9 引入 DAQ 代替直接调用 libpcap . 有两种网卡特性会影响 Snort : "Large Receive Offl ...

  4. Snort - manual 笔记(三)

    1.6 Reading pcap files Snort 不仅可以监听interface, 还可以读取和分析已经捕获的数据包. 1.6.1 Command line arguments 下面的命令都可 ...

  5. C#可扩展编程之MEF学习笔记(五):MEF高级进阶

    好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...

  6. 《MFC游戏开发》笔记五 定时器和简单动画

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9332377 作者:七十一雾央 新浪微博:http:// ...

  7. (转)Qt Model/View 学习笔记 (五)——View 类

    Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...

  8. java之jvm学习笔记五(实践写自己的类装载器)

    java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...

  9. Crazyflie笔记五: CRTP 实时通信协议(一)(转)

    源:Crazyflie笔记五: CRTP 实时通信协议(一) 这里详细介绍了 Crazyflie 的 CRTP实时通信协议的相关内容,由于内容很长,分几篇博文来讲述.这里是第一节内容.欢迎交流:301 ...

随机推荐

  1. 解决jquery和prototype库冲突问题

    在项目中同时引入了jquery.js和prototype.js两个文件,在方法调用时启了冲突. 我们在使用 jQuery 的过程中我们会频繁使用 $ 符号,$是JQuery的别名,所有使用$的地方也都 ...

  2. [Node.js] 对称加密、公钥加密和RSA

    原文地址:http://www.moye.me/2015/06/14/cryptography_rsa/ 引子 对于加解密,我一直处于一种知其然不知其所以然的状态,项目核心部分并不倚重加解密算法时,可 ...

  3. Cordova webapp实战开发:(2)认识一下Cordova

    昨天写了第一篇 <Cordova webapp实战开发:(1)为什么选择 Cordova webapp?>,意料中看到大家对这个主题的兴趣,我新建的PhoneGap App开发 34819 ...

  4. Android APP压力测试(一)之Monkey工具介绍

    Android APP压力测试(一) 之Monkey工具介绍 前言 本文主要介绍Monkey工具.Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕.滑动. ...

  5. 在SQL Server里为什么我们需要更新锁

    今天我想讲解一个特别的问题,在我每次讲解SQL Server里的锁和阻塞(Locking & Blocking)都会碰到的问题:在SQL Server里,为什么我们需要更新锁?在我们讲解具体需 ...

  6. 利用getBoundingClientRect方法实现简洁的sticky组件

    补充于2016-03-20: 本文实现有不足,不完美的地方,请在了解本文相关内容后,移步阅读<sticky组件的改进实现>了解更佳的实现. sticky组件,通常应用于导航条或者工具栏,当 ...

  7. C#--访问修饰符

  8. [Asp.net 5] DependencyInjection项目代码分析3-Ninject

    Microsoft.Framework.DependencyInjection.Ninject 该工程内部共包含5个类文件,底层使用Ninject实现依赖注入,工程截图如下: 从文件命名可以看出,Ni ...

  9. 聊一下C#开发者如何过渡到JAVA 开发者

    由于工作需要,最近也开始倒腾Java了.NET的话,从2012年测试版开始玩的,那个时候VB6比较熟悉,还天真的以为VB.NET以后会很火, 事实证明,也只是一厢情愿,有C#了,要VB.NET干什么? ...

  10. HP+MYSQL网站SQL Injection攻防

    WebjxCom提示:程序员们写代码的时候讲究TDD(测试驱动开发):在实现一个功能前,会先写一个测试用例,然后再编写代码使之运行通过.其实当黑客SQL Injection时,同样是一个TDD的过程: ...