概述
Snort是入侵检测和预防系统。它可以将检测到的网络事件记录到日志并阻止它们。Snort使用称为规则的检测签名进行操作。 Snort规则可以由用户自定义创建,或者可以启用和下载几个预打包规则集中的任何一个。 最常用的是Snort VRT(漏洞研究团队)的规则。 Snort VRT规则提供两种形式。一个是免费的注册用户版本,但需要在http://www.snort.org注册。免费版本仅提供最近的30天以内的规则。付费用户则提供每周两次的更新规则。 下面,我将在pfsense2.34系统中介绍Snort的安装和配置。
第一步、到www.snort.org网站进行注册,并得到OinkCode代码。
创建一个免费的Snort.org帐户并获得OinkCode。 可以在登录后单击用户名,然后在左侧菜单中选择Oinkcode,即可找到这个信息。
Oinkcode将用于pfSense自动下载snort规则定义。
第二步,安装和运行snort
导航到系统 -插件管理 - 可用插件,找到 Snort。
点击“+”按钮进行安装
运行snort。导航到服务 - Snort,进入Snort配置界面。
第三步,配置snort
Snort有很多设置,一开始可能无从下手。我将只介绍使IDS / IPS正常运行所需的功能。本篇教程只讨论最常见的设置。没有提到的设置,请保留默认值。
第四步、(Global Settings)全局设置
Enable Snort VRT- 选中。
Snort Oinkmaster Code -输入你在Snort.org注册帐户获得OinkCode。
Enable Snort GPLv2-选中。
此选项从社区中下载附加的Snort规则。 这些规则与Snort VRT付费用户相同,但是它们是延迟发布的。 如果是VRT付费用户,则可以在可用时立即获得这些规则。
Enable ET Open-选中。
ETOpen是一个开源的Snort规则集,其覆盖范围比ETPro更受限制。
Enable ET Pro-不选,这是付费的。
Enable OpenAppID-选中。
OpenAppID包包含AppID预处理器所需的应用程序签名。
Enable RULES OpenAppID-选中。
Update Interval(更新间隔)-设为12小时。
Update Start Time(更新时间)-设为00:05。
Remove Blocked Hosts Interval-1小时。
选择希望主机被阻止的时间。 这里设置为1小时。
Keep Snort Settings After Deinstall-选中。
选中这个选项可以在删除插件后保留Snort设置。
其他设置使用默认值。
第五步,(Pass Lists)通行列表选项
可以在此创建自定义文件,将IP存储在通行列表中。 如果编辑通行列表,底部有一个功能ssigned Aliases(分配别名),允许你创建要包含在通行列表中的别名。 你可以通过别名将所需的IP添加到通行列表中。
这个步骤是可选的,也不是开放互联网IP的最佳方法(更多的是在管理部分)。对于初次使用的用户,建议不要设置,保留默认值就可以了。
1、导航到防火墙 - 别名管理
2、创建别名= passlist_5719
3、将IP地址添加到这个别名
4、回到通行列表选项卡,并将此别名添加到通行列表。
5、导航到系统服务 - Snort - 通过列表 - 编辑 - 分配的别名
6、将IP添加到别名,并将其包含在通行列表中。
第六步,(Suppress)抑制列表选项
在抑制列表编辑页面上,可以手动添加或编辑新的抑制列表条目。 通过单击“增加”按钮来添加抑制条目。 这里,我们给一个名称(suppress_list)和一个描述。 在后面我们将在处理接口时引用这个抑制列表。 任何被抑制的规则都会显示在底部的空白处。
第七步,(Snort Interfaces)接口设置
在这个选项卡上,我们将指定Snort要监视的接口。 当我们添加一个接口时,我们将看到子选项卡也同时被创建。
点击‘增加‘来添加一个接口。
_________________________________________________________
LAN设置子选项卡
Enable = 选中
Interface = LAN
推荐设置选WAN,但是建议使用LAN。 推荐WAN的原因是:如果只监控1个接口,则设备资源密集度较低。 如果有多个本地接口(LAN1,LAN2,Voice等),通过监控WAN,只能以1个接口监视为代价监视所有流量。 这样做的缺点是无法看到这个流量涉及到哪些内部IP, 只会看到违规的外网地址和WAN IP两个地址。 如果要知道哪些内部电脑连接到违规的外网地址时,建议选择LAN,并根据需要为任何其他内部接口创建其他监视。比如有两个子网的情况(LAN1,LAN2)。
Block Offenders =选中
Kill States = 选中
Which IP to Block = both (你的内部网络默认已经在通行列表中,这里只是阻止外部地址)
Search Method = AC-BNFA (这是默认的,在我的系统上正常工作)
Search Optimize = 选中
Stream Inserts = 选中
Checksum Check Disable = 选中
Home Net = 默认
External Net = 默认
Pass List = 默认 (如果您创建了自定义通行列表文件,则可以在此处选择)
Alert Suppression and Filtering = suppress_list(这是前面创建的抑制列表文件)
保存设置(在移动到下一个子标签之前必须保存每个子选项卡的设置)
_________________________________________________________
LAN Categories子选项卡
Resolve Flowbits = 选中
Use IPS Policy = 选中
这个选项将显示下一个“IPS Policy Selection(策略选择)”下拉列表。 如果不选中,则必须从页面底部的列表中手动选择规则集类别。
IPS Policy Selection = Balanced
这个选项将选择关联的类别。 分别为:Connectivity, Balanced, Security。 不同的选项代表不同的策略。
Snort GPLv2 Community Rules (VRT certified) =选中
根据需要选中其他的规则集。
滚动到页面底部保存设置。
对于其他子选项卡上的Snort接口,可以参照这个进行自定义操作。
第八步,Snort配置管理
通过以上步骤,Snort已经完成了基本的配置,下面我们要进行详细的设置。
导航到系统服务- Snort - Snort接口
在这个选项卡上,将会看到我们开始创建的Snort接口。 单击运行图标,将开始这个接口的监视,单击停止图标将停止该接口的监视。
“Blocking”列可以告知我们是否启用了阻止。 如果禁用阻止,我们将在“警报”选项卡中看到所有检测到的条目。 如果启用阻止,我们将在“Blocked”选项卡中看到这些被阻上的条目。
如果建立抑制列表,则应该阻止禁用,以便用户不受影响。 可以通过编辑Snort接口并取消选中“Block Offenders”选项来关闭这个功能。
第九步,更新
在此选项卡上,可以更新规则,并查看订阅的规则。 如果在某些时间看到规则还未下载,则需要强制更新,另外必须检查一下OinkCode是否有问题。
第十步,Alerts(警报)
下面的列表显示了Snort创建的警报记录条目,其中包含源和目标地址以及触发警报的特定规则(SID列)信息。
源和目的IP列:
“”符号将尝试为你解析主机。这就是我在设置接口时首选LAN而不是WAN的原因。如果有可疑传输发生,我们可以查询到涉及的内部设备。
“+”符号会抑制这个特定的规则来源或目的地。
SID列:
“+“将禁止这个规则,无论来源或目的地。
“x”将禁用该规则并将其从规则集中删除。
第十一步,Blocked(阻止)
当触发警报时,违规的IP会被阻止,同时显示警报描述和事件发生时间。 根据前面的设置,这里的条目将在1个小时内解除封锁。 也可以从这个页面手动删除条目。
在创建抑制列表时,“警报”和“阻止”选项卡之间存在一些杂乱无章的信息,其中显示哪些警报被触发并且IP被阻止。研究抑制规则,并重新加载网页,以查看它是否正确加载而不触发规则。
第十二步,Suppress(抑制)
当禁止规则时,它将显示在禁止文件中。 你可以在白色的空间看到它。 也可以手动直接删除或添加规则。如果监控多个Snort接口,则从每个接口引用相同的抑制列表可以节省大量的工作。
Snort 配合pfSense功能非常强大,是一个高度可定制的IDS / IPS解决方案。 这个教程只介绍了基本的设置,用户可以根据自己的实际需要进行更多的定制设置。
2017-7-4