pfSense配置Snort

概述

Snort是攻击检测和预防系统。它可以将检测到的网络事件记录到日志并阻止它们。Snort使用称为规则的检测签名进行操作。 Snort规则可以由用户自定义创建,或者可以启用和下载几个预打包规则集中的任何一个。 最常用的是Snort VRT(漏洞研究团队)的规则。 Snort VRT规则提供两种形式。一个是免费的注册用户版本,但需要在http://www.snort.org注册。免费版本仅提供30天以前的规则。付费用户则提供每周两次的更新规则。 下面,我将在pfsense2.34系统中介绍Snort的安装和配置。

第一步、到www.snort.org网站进行注册,并得到OinkCode代码
wKioL1lbP2DRZ0siAABdZhPstLA148.png

创建一个免费的Snort.org帐户并获得OinkCode。 可以在登录后单击用户名,然后在左侧菜单中选择Oinkcode,即可找到这个信息。

Oinkcode将用于pfSense自动下载snort规则定义。

第二步,安装和运行snort

导航到系统 -插件管理  – 可用插件,找到 Snort。

点击“ ”按钮进行安装

wKioL1lbQD-D7cYMAABPV_jXhjg516.png

运行snort。导航到服务 – Snort,进入Snort配置界面。

wKioL1lbQJfjkqwWAACa_Qy9gNk637.png

第三步,配置snort

Snort有很多设置,一开始可能无从下手。我将只介绍使IDS / IPS正常运行所需的功能。本篇教程只讨论最常见的设置。没有提到的设置,请保留默认值。

第四步、(Global Settings)全局设置

wKiom1lbRJuiULtjAAN94EfRokc389.png

  • 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)通行列表选项

wKiom1lbRxmTAtxaAAEv7c79BFg327.png

可以在此创建自定义文件,将IP存储在通行列表中。 如果编辑通行列表,底部有一个功能ssigned Aliases(分配别名),允许你创建要包含在通行列表中的别名。 你可以通过别名将所需的IP添加到通行列表中。

这个步骤是可选的,也不是开放互联网IP的最佳方法(更多的是在管理部分)。对于初次使用的用户,建议不要设置,保留默认值就可以了。

  1. 导航到防火墙 – 别名管理
  2. 创建别名= passlist_5719
  3. 将IP地址添加到这个别名
  4. 回到通行列表选项卡,并将此别名添加到通行列表。
  5. 导航到系统服务 – Snort – 通过列表 – 编辑 – 分配的别名
  6. 将IP添加到别名,并将其包含在通行列表中。

第六步,(Suppress)抑制列表选项

wKiom1lbSXKSte24AABl1xM4-VM948.png

在抑制列表编辑页面上,可以手动添加或编辑新的抑制列表条目。 通过单击“增加”按钮来添加抑制条目。 这里,我们给一个名称(suppress_list)和一个描述。 在后面我们将在处理接口时引用这个抑制列表。 任何被抑制的规则都会显示在底部的空白处。

第七步,(Snort Interfaces)接口设置

wKiom1lbTXmC_8vpAANQ5PvT4OE899.png

在这个选项卡上,我们将指定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子选项卡

wKioL1lbUemyJDFTAAI5kbP_NIE938.png

Resolve Flowbits = 选中
Use IPS Policy = 选中

这个选项将显示下一个“IPS Policy Selection(策略选择)”下拉列表。 如果不选中,则必须从页面底部的列表中手动选择规则集类别。

IPS Policy Selection = Balanced

这个选项将选择关联的类别。 分别为:Connectivity, Balanced, Security。 不同的选项代表不同的策略。

Snort GPLv2 Community Rules (VRT certified) =选中

根据需要选中其他的规则集。

滚动到页面底部保存设置。

对于其他子选项卡上的Snort接口,可以参照这个进行自定义操作。

第八步,Snort配置管理

通过以上步骤,Snort已经完成了基本的配置,下面我们要进行详细的设置。

wKiom1lbVRiwrIMvAAB02Q6voO4697.png

导航到系统服务- Snort – Snort接口

在这个选项卡上,将会看到我们开始创建的Snort接口。 单击运行图标,将开始这个接口的监视,单击停止图标将停止该接口的监视。

“Blocking”列可以告知我们是否启用了阻止。 如果禁用阻止,我们将在“警报”选项卡中看到所有检测到的条目。 如果启用阻止,我们将在“Blocked”选项卡中看到这些被阻上的条目。

如果建立抑制列表,则应该阻止禁用,以便用户不受影响。 可以通过编辑Snort接口并取消选中“Block Offenders”选项来关闭这个功能。

第九步,更新

wKiom1lbVsHwd8e8AAExlifFFF8965.png

在此选项卡上,可以更新规则,并查看订阅的规则。 如果在某些时间看到规则还未下载,则需要强制更新,另外必须检查一下OinkCode是否有问题。

第十步,Alerts(警报)

wKioL1lbV4qA51Z3AAD24V8-SKs645.png

下面的列表显示了Snort创建的警报记录条目,其中包含源和目标地址以及触发警报的特定规则(SID列)信息。

源和目的IP列:

wKiom1lbWDbBX8-mAAACXzbAwHo300.png”符号将尝试为你解析主机。这就是我在设置接口时首选LAN而不是WAN的原因。如果有可疑传输发生,我们可以查询到涉及的内部设备。

“+ ”符号会抑制这个特定的规则来源或目的地。

SID列:

“+ “将禁止这个规则,无论来源或目的地。

“x”将禁用该规则并将其从规则集中删除。

第十一步,Blocked(阻止)

wKioL1lbWQ3y3qeZAAD2c8h7JIU903.png

当触发警报时,违规的IP会被阻止,同时显示警报描述和事件发生时间。  根据前面的设置,这里的条目将在1个小时内解除封锁。 也可以从这个页面手动删除条目。

在创建抑制列表时,“警报”和“阻止”选项卡之间存在一些杂乱无章的信息,其中显示哪些警报被触发并且IP被阻止。研究抑制规则,并重新加载网页,以查看它是否正确加载而不触发规则。

第十二步,Suppress(抑制)

wKioL1lbWb7QJo3CAABMQkGe5kA837.png

当禁止规则时,它将显示在禁止文件中。 你可以在白色的空间看到它。 也可以手动直接删除或添加规则。如果监控多个Snort接口,则从每个接口引用相同的抑制列表可以节省大量的工作。

Snort 配合pfSense功能非常强大,是一个高度可定制的IDS / IPS解决方案。 这个教程只介绍了基本的设置,用户可以根据自己的实际需要进行更多的定制设置。

点击这里播放视频教程。