snort.conf分析(中文)

snort.conf分析

此文件包含一个snort配置样例。
共分五步骤:
1 设置你的网络变量
2 配置动态加载库
3 配置预处理器
4 配置输出插件
5 增加任意的运行时配置向导
6 自定义规则集

step1:设置你的网络变量1 其中针对本地网络给出3种方式:

a) 清晰指定你的本地网络
var HOME_NET 192.168.1.0/24
(如果希望构建的Snort支持IPV6支持,则这里定义网段的类型就
应该改为pvar)

b) 使用全局变量
var HOME_NET $eth0_ADDRESS

c) 也可一定义一个地址列表,中间用逗号隔开:
var HOME_NET [10.1.1.0/24,192.168.1.0/24] (列表中不能有空格)

d) 定义任意的IP地址
var HOME_NET any

2 针对外部网络
a) 全部
var EXTERNAL_NET any

b) 除了HOME_NET之外的
var EXTERNAL_NET !$HOME_NET

3 配置你的服务器列表
(如果你都没有运行一个web server,干嘛还要检测HTTP 攻击呢?这样可以基于IP地址进行快速的过滤,这些配置必须保持和$HOME_NET相同的配置框架)

DNS服务:
var DNS_SERVERS $HOME_NET

SMTP服务:
var SMTP_SERVERS $HOME_NET

Web 服务:
var HTTP_SERVERS $HOME_NET

SQL服务:
var SQL_SERVERZ $HOME_NET

Telnet服务:
var TELNET_SERVERS $HOME_NET

FTP服务:
var FTP_SERVERS $HOME_NET

SNMP服务:
var SNMP_SERVERS $HOME_NET

4 配置你的服务端口
这使得snort去跟踪针对特点端口应用的攻击,如你的web server在端口8180上,则你应这样配置:

portvar HTTP_PORTS 8180

不过这个值通常为80,因此定义为:
portvar HTTP_PORTS 80

如果你希望定义多HTTP端口,语法是这样的:
portvar HTTP_PROTS [80,8080] 或者
portvar HTTP_PROTS[80,8000:8080]

但是在rule中只能定义$HTTP_PORTS一次,之前曾有方法对此变量进行重定义,包含了两次定义,这种做法已经不再使用。

eg:
定义你希望发现SHELLCODE的端口:
portvar SHELLCODE_PORTS !80

可能发想对ORACLE的攻击:
portvar ORACLE_PORTS 1521

针对FTP服务的端口:
portvar FTP_PORTS 21

AIM 服务(聊天服务):
AOL公司有增加新的AIM 服务的习惯,我们将他们都增加到服务列表中,而不是修改它们的签名(这一句话,我还理解的不够透彻,原文是: AOL has a habit of adding new AIM servers, so instead of modifying signatures when they do, we add them to this list of servers.)
var AIM_SERVERS [64.12.24.0/23, ....]

5 配置你的rules文件路径
这个可以是一个相对路径(不过对于windows用户,最好给绝对路径)

var RULE_PATH /etc/snort/rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules6 配置你的解码器
说明:snort的解码器会因为很多事情而产生警报,如报文头截断、不正常的长度和不经常使用的tcp 选项。

关闭一般解码事件:
config disable_decode_alerts

关闭针对实验TCP选项的警告
config disable_tcpopt_experimental_alerts

关闭针对失效TCP选型的警告
config disable_tcpopt_obsolete_alerts

关闭针对T/TCP警告的相应
config disable_tcpopt_ttcp_alerts

关闭针对所有TCP选项类型事件的相应
config disable_tcpopt_alerts

关闭针对非法ip选型的警告
config disable_ipopt_alerts

开启警告:如果(IP,TCP,UDP)的长度域中的值要比真实捕获数据包的长度值要大,则发出警告:
config enable_decode_oversized_alerts

同上面场景但是,但如果在inline模式中,将直接drop此包,但需保证上面的config: enable_decode_oversized_alerts已经开启:
config enable_decode_oversized_drops

7 配置你的检测引擎
如果你的电脑只有非常限定的资源,则需使用不同模式匹配:
config detection: search-method lowmem

8 配置inline重置(resets)
如果你在snort的inlineMode()模式中运行iptables防火墙,我们现在可以通过物理设备执行重置操作。我们从iptables中获取indev,然后使用此作为发送resets的接口。这个配置将使用源mac地址来作为你想重置包的参数。这种方式bridge将会继续保持stealthy. 如果源mac地址选项没有设置,我们默认将通过raw socket发送resets,但需要ip地址。
config layer2resets: 00:06:76:DD:5F:E3


**********************************************
Step2: 配置动态加载库

如果snort配置了使用动态加载库,则库将会在这里加载。
下面的配置选型都可以通过command行执行。

1 从安装路径加载所有动态预处理器
(=在命令行选型:--dynamic-preprocessor-lib-dir)
dynamicpreprocessor directory /usr/lib/snort_dynamicpreprocessor/

2 从安装路径加载指定的动态预处理器
(=命令行选型: --dynamic-preprocessor-lib)
dynamicpreprocessor file /usr/lib/snort_dynamicpreprocessor/libdynamicexample.so

3 从安装路径加载动态引擎
(=命令行选项:--dynamic-engine-lib)
dynamicengine /user/lib/snort_dynamicengine/libsf_engine.so

4 从安装路径加载所有动态规则库
(--dynamic-detection-lib-dir)
dynamicdetection directory /usr/lib/snort_dynamicrule/

5 加载指定动态规则库
(--dynamic-detection-lib)
dynamicdetection file

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值