0

我有一项任务要求我将以下规则放入 Snort。

drop tcp any any -> 192.168.1.0/24 any (msg:"TCP DoS"; flow: 已建立, to_server; flags:A; threshold: type threshold, track by_src, count 10, seconds 10;)

该规则应该阻止 HC 在 SVR 上执行 DoS。我的印象是,这条规则将阻止前往. .1.0/24 子网停止了前往 .1.0/24 的“SYN”回复.1.0/24 子网,这将允许服务器继续运行

我看到规则的方式是行不通的。它将阻止前往错误位置的交通。服务器在. .2.0/24 和. .3.0/24 网络,应阻止流量朝该方向前进。

我的网络设置如下:

系统/LAN 网段/IP 地址

管理客户端 (AC) / IT / 192.168.100.3/24

用户客户端 (UC) / 企业 / 192.168.101.25/24

黑客客户端 (HC) / 流氓 / 192.168.13.37

pfSense 路由器/防火墙 (3 NICS) / fwNet / 192.168.1.2

                           IT                     192.168.100.1
                           Corporate              192.168.101.1

Ubuntu 路由器 (3 NICS) / fwNet / 192.168.1.1

                           idsNet                 192.168.2.1
                           Rogue                  192.168.13.1

Snort IDS/IPS (2 NICS) (IDS) idsNet 192.168.2.2

                           sNet                   192.168.3.1

服务器 (SRV) / sNet / 192.168.3.2

上面的表格看起来很难看,但我现在无法修复它。我试过了,这个系统上没有截图工具,这是我现在能做的最好的。

基本上,谁是正确的?

在此先感谢您的帮助。这是信息性的。作业已上交并正在评分。我需要了解这是如何工作的。

再次感谢。

4

1 回答 1

2

此规则将丢弃发往 192.168.1.0/24 范围内的任何 IP 的每个 tcp 数据包,在该范围内建立了连接并设置了 Ack 标志,并且将 ..1.0/24 范围内的主机视为服务器。
如果规则在 10 秒内触发 10 次,它只会生成一个事件,这并不意味着它不会丢弃流量,阈值仅限制您获得的事件数量,因此它会丢弃所有数据包并且仅如果它在 10 秒内匹配 10 次,则生成一个事件。如果它旨在阻止 DOS,则您可能希望使用rate_filter关键字,否则它只会丢弃所有内容,阻止 DOS,是的,但也阻止任何人访问服务器。

在 tcp 中,在 3whs 之后从客户端到服务器的所有数据包都应该设置 Ack 标志,因此这将丢弃在 3whs 之后进入服务器的每个数据包。(我相信在流程之前在 snort 中使用了“flags:A”:添加了已建立的功能,所以这些功能几乎完全相同,这是一个额外的不必要的检查)

如果您的服务器不在 ..1.0/24 范围内,则此规则不会执行任何操作,因为它是单向规则。在这种情况下,不可能有一个数据包到达 192.168.1.0/24 被视为流向服务器。既然你说你的服务器在 ..2.0/24 和 ..3.0/24 范围内,这条规则根本不会做任何事情。

例子:

Client: 192.168.1.1
Server: 192.168.3.2

在这种情况下,规则永远不会匹配,因为服务器不在 192.168.1.0/24 范围内。

把上面的例子反过来:

Client: 192.168.3.2
Server: 192.168.1.1

在 3 次握手之后,会话中从 192.168.3.2 到 192.168.1.1 的任何数据包都将被丢弃。如果在 10 秒内从客户端到服务器发送了 10 个数据包,则会生成一个事件。

于 2014-12-03T02:40:02.730 回答