snort 开源网络入侵防御系统(ips)

snort 开源网络入侵防御系统(ips)

目录导航

snort简介

Snort 是世界上最重要的开源入侵防御系统 (IPS)。
Snort IPS 使用一系列规则来帮助定义恶意网络活动,并使用这些规则查找与其匹配的数据包并为用户生成警报。

也可以内联部署 Snort 来阻止这些数据包。

Snort 有三个主要用途:

作为 tcpdump 之类的数据包嗅探器,
作为数据包记录器——这对网络流量调试很有用,
或者它可以用作成熟的网络入侵防御系统。

Snort 可以下载和配置用于个人和商业用途。

Snort 支持的操作系统

尽管 Snort 可以在几乎所有基于 *nix 的机器上编译,但不建议您在低功耗或低 RAM 的机器上编译 Snort。Snort 需要内存才能运行并正确分析尽可能多的流量。

Snort 不正式支持任何特定的操作系统。但是,我们确实支持共享对象规则的一些平台,并且 Snort 已被验证可以在以下平台上运行并且运行良好:

Alpine 3.10/i386
Alpine 3.10/x86-64
Centos-6-9/i386
Centos- 6-9/x86-64
Centos-7-4/i386
Centos-7-4/x86-64
Debian-8/i386
Debian-8/x86-64
Debian-9/i386
Debian-9/x86-64
Fedora Core 27 /x86-64
Fedora Core 30/x86-64
FreeBSD-11-1/i386
FreeBSD-11-1/x86-64
FreeBSD-12-0/x86-64
OpenBSD-6-2/i386
OpenBSD-6-2/x86 -64
OpenBSD-6-4/i386
OpenBSD-6-4/x86-64
OpenBSD-6-5/i386
OpenBSD-6-5/x86-64
OpenSUSE LEAP 15.0/x86-64
OpenSUSE LEAP 15.1/x86-64
OpenSUSE LEAP 42.3/x86-64
RHEL-6-0/i386/
RHEL-6 x86-64
RHEL-7-0/x86-64
RHEL-8-0/x86-64
Slackware-14.2/x86-64
Ubuntu 14.04.5/i386
Ubuntu 14/04/5/x86-64
Ubuntu 16.04.3/i386
Ubuntu 16.04.3/x86-64
Ubuntu 17.10.1/i386
Ubuntu 17.10.1/x86-64
Ubuntu 18.04 LTS x86-64
Windows

Snort 3.0

Snort 3版本已发布,接下来将以snort3为例进行介绍

概述

Snort 3.0 是 Snort 入侵防御系统 (IPS) 的更新版本,它采用全新设计,提供 Snort 2.X 功能的超集,具有更好的吞吐量、检测、可扩展性和可用性。

Snort 3.0 的一些主要特性包括:

  • 支持多线程包处理
  • 使用共享配置和属性表
  • 无端口配置的自动检测服务
  • 模块化设计
  • 包含 200 多个插件的插件框架
  • 更具可扩展性的内存配置文件
  • LuaJIT 配置、记录器和规则选项
  • 超扫描支持
  • 重写的 TCP 处理
  • 新的规则解析器和语法
  • 服务规则,如alert http
  • 规则“粘性”缓冲区
  • 更好的 SO 规则
  • 新的 HTTP 检查器
  • 新的性能监视器
  • 新的时间和空间剖析
  • 新的延迟监控和执行
  • snort便于组件测试
  • 检查事件
  • Automake 和 Cmake
  • 自动生成参考文档

附加功能在路线图上:

  • 使用共享网络地图
  • 支持硬件卸载以实现快速模式加速
  • 提供对DPDK和ODP的支持
  • 支持数据包处理流水线
  • 支持代理模式
  • 多租户支持
  • 增量重装
  • 性能数据和事件的新序列化
  • 增强的规则处理
  • windows支持
  • 异常检测
  • 等等….

snort3.0下载地址

libdaq-v3.0.5.tar.gz
snort3_demo-3.1.17.0.tar.gz
snort3_extra-3.1.17.0.tar.gz
snort3-3.1.17.0.tar.gz

snort安装方法

①源码安装

wget https://snort.org/downloads/snort/daq-2.0.7.tar.gz
                      
wget https://snort.org/downloads/snort/snort-2.9.18.1.tar.gz
tar xvzf daq-2.0.7.tar.gz
                      
cd daq-2.0.7
./configure && make && sudo make install
tar xvzf snort-2.9.18.1.tar.gz
                      
cd snort-2.9.18.1
./configure --enable-sourcefire && make && sudo make install

②fedora安装

yum install https://snort.org/downloads/snort/
                      
yum install https://snort.org/downloads/snort/snort-2.9.18.1-1.f34.x86_64.rpm

③centos安装

yum install https://snort.org/downloads/snort/
                      
yum install https://snort.org/downloads/snort/snort-2.9.18.1-1.centos8.x86_64.rpm

④FreeBSD安装

pkg install snort

⑤Windows安装

下载Snort安装包:

官网下载: Snort_2_9_18_1_Installer.x64.exe

云中转网盘:

https://yzzpan.com/#sharefile=qEZ07FB0_20400
解压密码:www.ddosi.org

⑥kali linux安装(Debian安装)

apt install snort -y
snort 开源网络入侵防御系统(ips)

snort参数列表

┌────(root?ddosi.org)-[~]
└─# snort -h                                                                                                                                                                                                           
   ,,_     -*> Snort! <*-
  o"  )~   Version 2.9.15.1 GRE (Build 15125) 
   ''''    By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
           Copyright (C) 2014-2019 Cisco and/or its affiliates. All rights reserved.
           Copyright (C) 1998-2013 Sourcefire, Inc., et al.
           Using libpcap version 1.10.1 (with TPACKET_V3)
           Using PCRE version: 8.39 2016-06-14
           Using ZLIB version: 1.2.11

用法: snort [-options] <filter options>
选项:
        -A         设置警报模式:fast, full, console, test或none(仅警报文件警报)
                   “unsock”启用UNIX套接字日志记录(实验性)。
        -b         以tcpdump格式记录数据包(快多了!)
        -B <mask>  使用CIDR掩码混淆警报和包转储中的IP地址
        -c <rules> 使用规则文件<规则>
        -C         只使用字符数据打印有效载荷(不使用十六进制)
        -d         转储应用层
        -D         在后台(守护进程)模式下运行Snort
        -e         显示第二层头部信息
        -f         在写入二进制日志后关闭fflush()调用
        -F <bpf>   从文件< BPF >中读取BPF过滤器
        -g <gname> 初始化后以<gname>组(或gid)的形式运行snort gid</gname>
        -G <0xid>  日志标识符(用于为多个snort唯一标识事件)
        -h <hn>    设置家庭网络=<hn>
                   (用于-l或-B,在IDS模式下不会更改$HOME_NET)
        -H         使哈希表具有确定性。
        -i <if>    监听接口<if>
        -I         添加接口名称以警告输出
        -k <mode>  校验模式(all,noip,notcp,noudp,noicmp,none)
        -K <mode>  日志记录模式 (pcap[default],ascii,none)
        -l <ld>    日志目录 <ld>
        -L <file>  记录这个tcpdump文件
        -M         将消息记录到syslog(不是警报)
        -m <umask> umask设置 = <umask>
        -n <cnt>   收到<cnt>包后退出</cnt>
        -N         关闭日志记录(警报仍然有效)
        -O         混淆记录的IP地址
        -p         禁用混杂模式嗅探
        -P <snap>  设置数据包的显式snaplen(默认为1514)
        -q         安静。不显示横幅和状态报告
        -Q         启用内联模式操作。
        -r <tf>    读取并处理tcpdump文件<tf>
        -R <id>    在snort_intf<id>中包含'id'pid文件名称
        -s         将警报消息记录到syslog
        -S <n=v>   设置规则文件变量n等于值v
        -t <dir>   初始化后chroot进程到<dir>
        -T         测试并报告当前Snort配置
        -u <uname> 初始化后,以<uname>用户(或uid)的形式运行snort uid
        -U         使用UTC作为时间戳
        -v         详细信息
        -V         显示版本号
        -X         从链路层开始转储原始数据包数据
        -x         如果发生Snort配置问题,则退出
        -y         在警报和日志文件中以时间戳形式包含年份
        -Z <file>  设置performonitor预处理器文件路径和名称
        -?         显示这个信息
<过滤选项>是标准的BPF选项,如TCPDump中所示
Longname选项及其对应的单字符版本
   --logid <0xid>                  Same as -G
   --perfmon-file <file>           Same as -Z
   --pid-path <dir>                指定Snort PID文件的目录
   --snaplen <snap>                Same as -P
   --help                          Same as -?
   --version                       Same as -V
   --alert-before-pass             Process alert, drop, sdrop, or reject before pass, default is pass before alert, drop,...
   --treat-drop-as-alert           Converts drop, sdrop, and reject rules into alert rules during startup
   --treat-drop-as-ignore          Use drop, sdrop, and reject rules to ignore session traffic when not inline.
   --process-all-events            Process all queued events (drop, alert,...), default stops after 1st action group
   --enable-inline-test            启用内联测试模式操作
   --dynamic-engine-lib <file>     加载动态检测引擎
   --dynamic-engine-lib-dir <path> 从目录加载所有动态引擎
   --dynamic-detection-lib <file>  加载动态规则库
   --dynamic-detection-lib-dir <path> 从目录加载所有动态规则库
   --dump-dynamic-rules <path>     创建所有已加载规则库的存根规则文件
   --dynamic-preprocessor-lib <file>  加载一个动态预处理器库
   --dynamic-preprocessor-lib-dir <path> 从目录加载所有动态预处理器库
   --dynamic-output-lib <file>  加载一个动态输出库
   --dynamic-output-lib-dir <path> 从目录加载所有动态输出库
   --create-pidfile                创建PID文件,即使不是在Daemon模式
   --nolock-pidfile                不尝试锁定Snort PID文件
   --no-interface-pidfile          在Snort PID文件中不包含接口名称
   --disable-attribute-reload-thread 不创建一个线程来重新加载属性表
   --pcap-single <tf>              Same as -r.
   --pcap-file <file>              包含一个pcaps的列表读文件-读模式是隐含的。
   --pcap-list "<list>"            使用一个空格分隔的pcap列表来读取-读取模式。
   --pcap-dir <dir>                一个可以递归查找pcaps - read模式的目录是隐含的。
   --pcap-filter <filter>          从文件或目录获取pcaps时应用的过滤器。
   --pcap-no-filter                重置为在从文件或目录获取pcaps时不使用过滤器。
   --pcap-loop <count>             该选项将连续读取命令行中指定的pcaps。
                                   <count>次。值0将被读取,直到Snort终止。
   --pcap-reset                    如果读取多个pcap,在读取下一个pcap之前,将snort重置为配置后状态。
   --pcap-reload                   如果读取多个pcaps,则在pcaps之间重新加载snort配置。
   --pcap-show                     打印一行说明当前正在读取的pcap。
   --exit-check <count>            从DAQ_Acquire()回调<count>后信号终止,显示它的时间
                                   从信令获取,直到调用DAQ_Stop()。
   --conf-error-out                Same as -x
   --enable-mpls-multicast         允许多播MPLS
   --enable-mpls-overlapping-ip    处理MPLS云中重叠的ip
   --max-mpls-labelchain-len       指定最大MPLS标签链
   --mpls-payload-type             指定MPLS封装的协议(ipv4、ipv6、ethernet)
   --require-rule-sid              要求所有snort规则都指定了SID。
   --daq <type>                    选择数据包采集模块(默认为pcap)。
   --daq-mode <mode>               选择DAQ运行模式。
   --daq-var <name=value>          指定额外的DAQ配置变量。
   --daq-dir <dir>                 告诉snort去哪里找想要的DAQ。
   --daq-list[=<dir>]              列出在目录中可用的数据包获取模块。默认仅为静态模块。
   --dirty-pig                     在关机时不要刷新数据包并释放内存。
   --cs-dir <dir>                  用于控制套接字的目录。
   --ha-peer                       激活实时的高可用性状态共享。
   --ha-out <file>                 将高可用性事件写入该文件。
   --ha-in <file>                  在启动时从该文件中读取高可用性事件(warm-start)。
   --suppress-config-log           禁止输出配置信息。

snort规则列表

社区规则

免费规则,无需登录注册即可查看

wget https://snort.org/downloads/community/community-rules.tar.gz -O community-rules.tar.gz
tar -xvzf community-rules.tar.gz -C /etc/snort/rules

或者直接下载

开源.gz
snort3-community-rules.tar.gz
社区规则.tar.gz

注册规则

此规则注册用户才可以查看

修改为你自己的 oinkcode

wget https://snort.org/rules/snortrules-snapshot-31150.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-31150.tar.gz
wget https://snort.org/rules/snortrules-snapshot-31110.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-31110.tar.gz
wget https://snort.org/rules/snortrules-snapshot-3190.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-3190.tar.gz
wget https://snort.org/rules/snortrules-snapshot-3170.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-3170.tar.gz
wget https://snort.org/rules/snortrules-snapshot-3150.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-3150.tar.gz
wget https://snort.org/rules/snortrules-snapshot-3140.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-3140.tar.gz
wget https://snort.org/rules/snortrules-snapshot-3130.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-3130.tar.gz
wget https://snort.org/rules/snortrules-snapshot-3110.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-3110.tar.gz
wget https://snort.org/rules/snortrules-snapshot-3101.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-3101.tar.gz
wget https://snort.org/rules/snortrules-snapshot-3100.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-3100.tar.gz
wget https://snort.org/rules/snortrules-snapshot-3034.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-3034.tar.gz
wget https://snort.org/rules/snortrules-snapshot-3031.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-3031.tar.gz
wget https://snort.org/rules/snortrules-snapshot-2983.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-2983.tar.gz
wget https://snort.org/rules/snortrules-snapshot-3000.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-3000.tar.gz
wget https://snort.org/rules/snortrules-snapshot-29111.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-29111.tar.gz
wget https://snort.org/rules/snortrules-snapshot-29130.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-29130.tar.gz
wget https://snort.org/rules/snortrules-snapshot-29141.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-29141.tar.gz
wget https://snort.org/rules/snortrules-snapshot-29151.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-29151.tar.gz
wget https://snort.org/rules/snortrules-snapshot-29160.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-29160.tar.gz
wget https://snort.org/rules/snortrules-snapshot-29161.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-29161.tar.gz
wget https://snort.org/rules/snortrules-snapshot-29170.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-29170.tar.gz
wget https://snort.org/rules/snortrules-snapshot-29171.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-29171.tar.gz
wget https://snort.org/rules/snortrules-snapshot-29180.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-29180.tar.gz
wget https://snort.org/rules/snortrules-snapshot-29181.tar.gz?oinkcode=www.ddosi.org -O snortrules-snapshot-29181.tar.gz
tar -xvzf snortrules-snapshot-<version>.tar.gz -C /etc/snort/rules

或者直接下载

Talos_LightSPD.tar.gz
snortrules-snapshot-31150.tar.gz
snortrules-snapshot-31110.tar.gz
snortrules-snapshot-3190.tar.gz
snortrules-snapshot-3170.tar.gz
snortrules-snapshot-3150.tar.gz
snortrules-snapshot-3140.tar.gz
snortrules-snapshot-3130.tar.gz
snortrules-snapshot-3110.tar.gz
snortrules-snapshot-3101.tar.gz
snortrules-snapshot-3100.tar.gz
snortrules-snapshot-3034.tar.gz
snortrules-snapshot-3031.tar.gz
snortrules-snapshot-2983.tar.gz
snortrules-snapshot-3000.tar.gz
snortrules-snapshot-29111.tar.gz
snortrules-snapshot-29130.tar.gz
snortrules-snapshot-29141.tar.gz
snortrules-snapshot-29151.tar.gz
snortrules-snapshot-29160.tar.gz
snortrules-snapshot-29161.tar.gz
snortrules-snapshot-29170.tar.gz
snortrules-snapshot-29171.tar.gz
snortrules-snapshot-29180.tar.gz
snortrules-snapshot-29181.tar.gz

订阅规则

订阅规则就是收费规则,

个人使用为29.99美元/年

商业使用为399美元/年

snort 开源网络入侵防御系统(ips)

使用示例

入侵防御检测模式

snort 开源网络入侵防御系统(ips)

需要在当前文件夹下新建 ddosi.org 文件夹

 snort -dev -l ddosi.org -h 192.168.1.0/24 -c /etc/snort/snort.conf
snort 开源网络入侵防御系统(ips)

Snort 启动脚本

直接点击即可下载

snort 开源网络入侵防御系统(ips)

CentOS 的 Snort 启动脚本

NetBSD 6.x 的 Snort 启动脚本

NetBSD 5.x 的 Snort 启动脚本

OpenSuSE 12.x 的 Snort 启动脚本

OpenSuSE 11.4 的 Snort 启动脚本

OpenBSD 5.x 的 Snort 启动脚本

Fedora 的 Snort 启动脚本

snort文档

snort_user.pdf
snort_user.html
snort_upgrade.pdf
snort_upgrade.html
snort_reference.pdf
snort_reference.html
snort_devel.html

问题及解决办法

例如出现这样的错误

"No preprocessors configured for policy 0"

此消息表明未加载 snort 预处理器。为了摆脱这个警告,请使用以下命令:

snort -v -c /etc/snort/snort.conf

请确保配置文件/etc/snort/snort.conf存在并且在配置文件中启用了预处理器。

或者查看官方文档:

https://snort.org/documents

snort官网地址

https://snort.org/

下一页:snort3.0用户手册中文翻译版本(未进行校验)

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注