snort只报警ARP协议的命令
时间: 2023-10-09 16:17:58 浏览: 41
我理解您的问题是关于Snort仅报警ARP协议上的命令的问题。Snort默认情况下会监视并报告所有协议的活动,但是可以通过使用规则来限制其监视和报告活动。要限制ARP协议上的命令报告,请在Snort规则中使用相应的字词过滤器。例如,使用以下规则将仅报告ARP协议上的PING命令:
alert arp any any -> any any (msg:"ARP ping detected";)
这将在ARP协议上报告任何PING命令,而忽略其他协议的活动。希望这能回答您的问题。
相关问题
snort想识别ARP协议,应该在修改哪些文件和怎么添加函数
要在Snort中识别ARP协议,需要进行如下操作:
1. 在`src/detection-plugins`目录下添加一个新的检测插件,例如`arp.c`文件。
2. 在`arp.c`文件中添加一个新的检测函数,例如`DetectArp()`函数。该函数可以使用libpcap库监听网络接口,获取ARP数据包,并进行解析和识别。
3. 在`arp.c`文件中定义一个`DetectionPlugin`结构体变量,用于存储插件的相关信息,例如插件名称、协议名称、检测函数指针等。
4. 在`detection-plugins.h`文件中添加一个新的检测插件类型,例如`DETECTION_ARP`。
5. 在`detect.h`文件中添加一个新的检测函数声明,例如`void DetectArp(Packet *p, DetectionPlugin *dp);`。
6. 在`detect.c`文件中注册新的检测插件和检测函数,例如:
```
DetectionPlugin arpPlugin = {
.name = "ARP",
.protocol = PROTO_ARP,
.detectionFunc = DetectArp,
};
void DetectArp(Packet *p, DetectionPlugin *dp)
{
// ARP识别代码
}
void RegisterDetectionPlugins(void)
{
...
// 注册ARP插件
RegisterDetectionPlugin(&arpPlugin);
}
```
7. 在Snort配置文件中启用新的检测插件,例如:
```
config detection: search-method ac-split search-optimize max-pattern-len 20
config detection: arp
```
以上是添加ARP协议识别的大致流程,具体实现可能会因版本和环境而有所不同。需要注意的是,Snort的协议识别和检测需要遵循一定的规范和流程,如果不熟悉Snort的源代码和插件机制,建议先阅读相关文档和示例代码,再进行相关改动。
snort怎么检测ARP数据包
要检测ARP数据包,可以使用Snort规则中的Ether proto字段来指定以太网协议类型为ARP,例如:
```
alert arp any any -> any any (msg:"ARP packet detected"; sid:1000001;)
```
这条规则将检测所有的ARP数据包,并生成一个名为"ARP packet detected"的警告消息,sid为1000001。
另外,还可以使用更具体的ARP字段,例如:
```
alert arp any any -> any any (msg:"ARP request detected"; arp_opcode:1; sid:1000002;)
```
这条规则将检测ARP请求数据包,并生成一个名为"ARP request detected"的警告消息,sid为1000002。其中arp_opcode字段用于指定ARP操作码,1表示ARP请求,2表示ARP应答。
需要注意的是,在使用Snort检测ARP数据包时,需要在抓包时开启混杂模式,否则无法检测到ARP数据包。