Snort是一个入侵检测和预防系统。 它可以配置为简单地将检测到的网络事件记录到日志中并将其阻止。 借助OpenAppID检测器和规则,Snort软件包支持应用程序检测和过滤。 该软件包可以通过系统>插件管理进行安装。 Snort使用称为规则的检测签名进行操作。 Snort规则可以由用户自定义创建,或者可以启用和下载几个预先打包的规则集中的任何一个。
Snort软件包目前提供对这些预包装规则的支持:
-
Snort VRT(漏洞研究小组)规则
-
Snort GPLv2社区规则
-
Emerging Threats Open规则
-
Emerging Threats Pro规则
-
OpenAppID开放应用程序检测器和规则
Snort GPLv2社区规则和Emerging Threats Open规则都是免费提供的,无需注册。 Snort VRT规则有两种形式。 一个是免费的注册用户版本,但需要在http://www.snort.org注册。 注册用户的免费版本只能提供30天以前的规则。 可以购买Snort VRT付费订阅,并且每周更新两次(有时更频繁)。 Emerging Threats Pro规则仅向付费用户提供,几乎每天都会提供更新以应对快速变化的威胁。
对于用于商业应用,我们强烈建议从Snort或Emerging Threats获得付费订阅,以便下载最新的规则。
目录
-
启动Snort配置GUI -
首次配置Snort -
更新规则 -
添加Snort接口 -
选择保护网络的规则类型 -
启用Snort接口 -
选择保护网络的签名类型 -
定义服务器以保护和提高性能 -
管理阻止的主机 -
管理通行列表 -
警报阈值和抑制 -
了解警报
-
使用OpenApp ID进行应用程序ID检测
启动Snort配置GUI
要启动Snort配置应用程序,请导航到pfSense菜单系统服务> Snort。
首次配置Snort
点击Global Settings(全局设置)标签,并启用规则集下载使用。 如果选中了Snort VRT或Emerging Threats Pro规则,将显示一个文本框输入通过订阅或注册获得的唯一订购用户代码。
可以启用多个规则集来进行下载,但请注意: 如果付费订阅适用于Snort VRT规则,则所有Snort GPLv2社区规则都将自动包含在使用Snort VRT规则下载的文件中;因此,如果付费用户帐户用于Snort VRT规则,则不要启用GPLv2社区规则。 所有Emerging Threats Open规则都包含在Emerging Threats Pro规则的付费订阅中。 如果启用Emerging Threats Pro规则,则会自动禁用Emerging Threats Open规则。
一旦启用了所需的规则集,接下来设置Snort规则包的Update Interval(更新间隔)。 在大多数情况下,可以选择12小时。 当然也可以根据需要进行定制。时间格式采用24小时制, 默认开始时间是当地时间零点3分。 因此,如果选择12小时的更新间隔,Snort将在每天零点3分和每天12点3分检查Snort VRT和Emerging Threats网站,以便更新发布的规则包。
更新规则
Updates(更新)选项卡用于检查下载的规则包的状态并下载新的更新。 它显示了可用的规则包及其当前状态(未启用,未下载或有效的MD5校验和以及下载日期)。
点击update Rules(更新规则)按钮下载最新的规则包, 如果供应商网站上有更新,它将被下载并安装。 通过比较本地文件与供应商网站上的远程文件的MD5, 如果不匹配,则下载新文件。 无论MD5哈希值如何检测,FORCE(强制)按钮都可用于强制从供应商网站下载规则包。
在下面的截图中,Snort VRT和Emerging Threats Open规则包已经成功下载。 显示计算出的MD5哈希值和文件下载日期和时间。 另外要注意,上次更新的时间和结果显示在页面的中心。
添加Snort 接口
单击Snort Interfaces 选项卡,然后点击 图标添加Snort接口。
接口设置选项卡将打开,并自动选择可用接口。 也可以根据需要,使用接口下拉菜单更改接口。可以为接口输入一个描述说明。 其他接口参数也可以在此页面上设置。 完成后,请务必点击页面底部的SAVE(保存)按钮。
保存后,浏览器将返回到Snort Interfaces选项卡。 请注意下图中的警告图标,显示新的Snort接口没有选择规则。 那些规则将在下面配置。 点击图标可以再次编辑已建立的Snort接口。
选择保护网络的规则类型
点击新接口的Categories(类别)标签。
如果获得了Snort VRT Oinkmaster代码(免费注册用户或付费订阅),启用了Snort VRT规则,并在Global Settings (全局设置)选项卡中输入了Oinkmaster代码,则可以从三个预配置的IPS策略中进行选择。这极大地简化了在检查流量时选择Snort使用强制规则的过程。 IPS策略只有在启用了Snort VRT规则时才能使用。
三种Snort VRT IPS策略分别是:(1) Connectivity(连接)、(2)Balanced(平衡)和(3)Security安全。这些是按照安全性越来越高的顺序排列的,但是,如果对Snort不熟悉,建议选(1)。在更安全的策略下,会经常出现误报,并且需要有经验的管理员进行仔细的调整。所以对Snort不熟悉,那么建议在非阻止模式下使用限制性较低的连接策略。一旦在此网络环境中获得了使用Snort的经验,可以启用阻止模式,然后升级到更严格的IPS策略。
如果未启用Snort VRT规则,或者要使用任何其他规则包,则通过选中要使用的规则类别旁边的复选框来选择规则类别。
完成后单击SAVE(保存)选择并构建Snort使用的规则文件。
在接口上启用Snort
单击Snort Interfaces选项卡显示已配置的Snort接口。 单击 图标在接口上启用Snort。
Snort启动需要几秒钟的时间。 一旦开始,图标将显示为 。 要停止接上的Snort运行,单击
图标。
选择保护网络的签名类型
单击接口的Rule(规则)选项卡,在启用的类别中配置单个规则。 通常这个页面只是用来禁用特定的规则,可能会在特定的网络环境中产生较多的误报。 确保它们实际上是真正的误报,然后再禁用Snort规则!
从Category(类别)下拉列表中选择一个规则类别以查看所有分配的规则。 单击行最左侧的图标可以将规则的状态从启用变为禁用或从禁用变为启用。 该图标将改变颜色以提示采取的操作。 页面底部是一个图例,显示了用于指示规则当前状态的四种图标颜色。
定义服务器以保护和提高性能
管理阻止主机
Blocked(已阻止)选项卡显示Snort当前正在阻止的主机(当在Interface Settings(接口设置)选项卡上选择阻止选项时)。 阻止的主机可以通过几个预先定义的时间间隔被Snort自动清除。 接口的阻止选项在接口的Snort Interface Settings(接口设置)选项卡上进行配置。
管理通行列表
通行列表是Snort不阻止的IP地址列表。 这些可以在Pass Lists(通行列表)选项卡上创建和管理。 当出现在通行列表中列出的IP地址时,即使检测到恶意通信,Snort也不会阻止该IP。
要创建通行列表,单击 。编辑一个已存在的通行列表,单击
。删除一个通行列表,单击
。请注意,如果当前通行列表分配给一个或多个Snort接口,则不能删除。
Snort会为每个接口自动生成一个默认的通行列表,当没有指定其他列表时,将使用此默认列表。通行列表自动分配给接口设置选项卡上设置的接口。
可以创建自定义通行列表并分配给一个接口。当有不在直连到防火墙网络上的可信外部主机时,可以这样做。要以这种方式添加外部主机,必须先在防火墙>别名管理下创建一个别名,然后将可信外部主机IP地址添加到别名中。在下面的例子中,别名“Friendly_ext_hosts”已被分配。该别名将包含可信外部主机的IP地址。
创建自定义通行列表时,请在Add auto-generated IP addresses(添加自动生成的IP地址)部分中选中所有自动生成的IP地址。不选中这部分可能会导致阻止包括防火墙接口本身的关键地址,这可能会将自己锁定在防火墙之外!只有在绝对必要的情况下,才能取消选中框。
点击ALIASES(别名)按钮打开一个窗口,显示以前定义的别名供选择。 选择后请记住点击保存以应用更改。
注意:简单地创建一个通行列表只是第一步! 必须通过转到Snort接口的Interface Settings(接口设置)选项卡并选择新创建的通行列表,如下所示。 分配并保存新的通行列表后,在受影响的接口上重新启动Snort以使应用生效。
警报阈值和抑制
抑制列表允许控制由Snort规则生成的警报。当警报被抑制时,Snort不再记录警报条目(或者在阻止违规者被启用的情况下阻止IP地址)。 Snort仍然根据规则检查所有网络流量,但即使流量符合规则签名,也不会生成警报。这与禁用规则不同。当禁用规则时,Snort不再尝试将其与任何网络流量进行匹配。只能根据源IP或目标IP停止警报时,可以用抑制规则来代替禁用规则。例如,要抑制来自特定可信IP地址的流量来源时的警报,如果有任何其他IP流量的来源,则规则仍然会触发。为了消除规则中的所有警报,简单地禁用规则而不是抑制规则会更有效。禁用该规则将从Snort的匹配规则列表中删除它,因此Snort所做的工作会更少。
在Suppress List Edit(抑制列表编辑)页面上,可以手动添加或编辑新的抑制列表条目。 通过单击 Alerts(警报)选项卡上的警报条目显示的来添加抑制列表更方便。在手动编辑抑制列表条目后,必须单击SAVE(保存)按钮以应用更改。
了解警报
Alerts(警报)选项卡是查看由Snort生成的警报的位置。 如果Snort在多个接口上运行,请在下拉选择器中选择要查看警报的接口。
单击DOWNLOAD(下载)按钮将下载包含所有记录警报的gzip .tar文件到本地电脑。 CLEAR(清除)按钮用于清除当前警报日志。
警报详情
Date (日期)列显示警报生成的日期和时间。 其余的列显示来自生成警报规则的数据。
在Source和Destination列,f和
图标用于对IP地址执行反向DNS查找,
图标用于为使用IP的警报添加自动Suppress List(抑制列表)条目和SID(签名ID)。 这将防止仅由该特定IP地址规则以后生成的警报。 如果源地址或目标地址中的任何一个被Snort阻止,则还会显示一个
图标。 点击该图标将解除对该IP地址的阻止。
SID列包含两个图标。 图标会自动将该SID添加到接口的Suppress List(抑制列表)中,并禁止所有IP地址签名的未来警报。 SID列中的
图标将禁用该规则,并将其从执行规则集中移除。 当手动禁用规则时,SID列中的图标变为
。
使用OpenApp ID进行应用程序ID检测
OpenAppID是用于开源入侵检测系统Snort的应用层网络安全插件。 点击此处了解详情。
启用OpenAppID及其规则是从Global Settings(全局设置)完成的。 选中下图中的两个复选框并保存页面后将启用检测器和规则下载。
启用检测器和规则后,进入Snort Updates选项卡并单击update Rules更新规则, 等待所有的规则更新。 完成后,页面将显示OpenAppID检测器和规则已更新。
以下步骤假设已经将Snort接口添加到LAN接口。 编辑LAN接口并导航到LAN categories(LAN类别)选项卡。 确保右栏中的Snort OPENAPPID Rules(规则)都被选中,然后点击保存。
最后,在编辑Snort接口的同时,导航至 LAN Preprocessor(LAN预处理器)选项卡。
向下滚动到Application ID Detection(应用程序ID检测)部分,并选中Enable (启用)和 AppID Stats Logging(AppID统计信息)复选框, 保存页面,在Snort接口上激活OpenApp ID。
可以从 Alerts(警报)选项卡查看检测到的应用程序。 以下屏幕截图是已识别的服务和应用程序的示例:
Netflix
Amazon Web Services
iCloud