Snort Fedora Install

简介

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

Snort 也可以内联部署以阻止这些数据包。Snort 具有三个主要用途:作为数据包嗅探器(如 tcpdump),作为数据包记录器——这对网络流量调试很有用,或者它可以用作成熟的网络入侵防御系统。

Snort的安装我认为还是比较麻烦的,大部分都是要用到编译安装,Snort的前置库也非常的多,因此我打算系统整理一下Snort的安装方法。

安装过程

Dnf源配置

[root@localhost ~]# wget -O /etc/yum.repos.d/fedora.repo http://mirrors.aliyun.com/repo/fedora.repo

[root@localhost ~]# wget -O /etc/yum.repos.d/fedora-updates.repo http://mirrors.aliyun.com/repo/fedora-updates.repo

# 下载阿里源

[root@localhost ~]# dnf makecache && dnf update && reboot
# 生成缓存并更新软件包并重启设备

这里使用的系统版本为是Fedora 37,DNF源为阿里源。

前期准备

基于 Red Hat 的操作系统在链接器缓存路径中不包含 /usr/local/lib/usr/local/lib64,这将导致构建错误,这是因为链接器无法找到引用的库。

那么我们通过在 /etc/ld.so.conf.d 下创建包含所需路径的配置文件并更新缓存来纠正此问题。

[root@localhost ~]# vi /etc/ld.so.conf.d/local.conf
# 修改文件添加如下内容 [root@localhost ~]# cat /etc/ld.so.conf.d/local.conf
/usr/local/lib
/usr/local/lib64

填写完配置文件后,我们执行ldconfig来刷新缓存。

接下来我们安装LibDAQ所需的软件来为构建LibDAQ做准备。

[root@localhost ~]# dnf install git vim flex bison gcc gcc-c++ make cmake automake autoconf libtool

安装Snort依赖软件

下表总结了构建 Snort 和 LibDAQ 所需的和可选的包。

安装必需的依赖项

[root@localhost ~]# dnf install libpcap-devel pcre-devel libdnet-devel hwloc-devel openssl-devel zlib-devel luajit-devel pkgconf libmnl-devel libunwind-devel

如果需要构建支持NAQ的LibDAQ则需要安装额外的包。

[root@localhost ~]# dnf install libnfnetlink-devel libnetfilter_queue-devel
安装LibDAQ

Snort3需要的LibDAQ(>=3.0.0),通过Git进行Clone并使用其中脚本进行安装。

 [root@localhost ~]# git clone https://github.com/snort3/libdaq.git
[root@localhost ~]# cd libdaq/
[root@localhost libdaq]# ./bootstrap

如果需要通过选项自定义LibDAQ的构建模块,我们可以通过 --disable--module 进行设置。

例如 ./configure --disable-netmap-module --disable-divert-module

 [root@localhost libdaq]# ./configure

它会输出如下的内容

...
Build AFPacket DAQ module.. : yes
Build BPF DAQ module....... : yes
Build Divert DAQ module.... : no
Build Dump DAQ module...... : yes
Build FST DAQ module....... : yes
Build NFQ DAQ module....... : yes
Build PCAP DAQ module...... : yes
Build netmap DAQ module.... : no
Build Trace DAQ module..... : yes

然后安装LibDAQ。

[root@localhost libdaq]# make
[root@localhost libdaq]# make install
[root@localhost libdaq]# ldconfig
[root@localhost libdaq]# cd ../

可选的依赖项

LZMA and UUID

lzma 用于解压缩SWF和PDF文件,而 uuid 是一个用于生成/解析通用唯一ID的库,用于标记/识别网络中的对象。

[root@localhost ~]# dnf install xz-devel libuuid-devel
Hyperscan

尽管 Hyperscan 是可选项,但还是非常建议安装它的。

[root@localhost ~]# dnf install hyperscan hyperscan-devel
Flatbuffers

Flatbuffers 是一个用于内存受限应用程序的跨平台序列化库。它允许直接访问序列化数据而无需先解包/解析它。

[root@localhost ~]# curl -Lo flatbuffers-v23.3.3.tar.gz https://github.com/google/flatbuffers/archive/refs/tags/v23.3.3.tar.gz
[root@localhost ~]# tar xf flatbuffers-v23.3.3.tar.gz
[root@localhost ~]# mkdir fb-build && cd fb-build
[root@localhost fb-build]# cmake ../flatbuffers-23.3.3
[root@localhost fb-build]# make -j$(nproc)
[root@localhost fb-build]# make -j$(nproc) install
[root@localhost fb-build]# ldconfig
[root@localhost fb-build]# cd ../
Safec

Safec用于对某些遗留C库调用进行运行时边界检查。 Safec包在EPEL存储库中可用。

[root@localhost ~]# dnf install libsafec libsafec-devel
[root@localhost ~]# ln -s /usr/lib64/pkgconfig/safec-3.3.pc /usr/lib64/pkgconfig/libsafec.pc
Tcmallo

tcmalloc 是 Google (PerfTools) 创建的一个库,用于改进线程程序中的内存处理。使用该库可能会提高性能并减少内存使用量。

[root@localhost ~]# dnf install gperftools-devel

Snort3安装

现在所有依赖项都已安装,从GitHub克隆Snort3存储库。

[root@localhost ~]# git clone https://github.com/snort3/snort3.git
[root@localhost ~]# cd snort3

在配置Snort之前,声明 PKG_CONFIG_PATH 变量来包含 LibDAQ pkgconfig 路径,以及其他包的 pkgconfig 路径,否则构建过程可能会失败。

[root@localhost snort3]# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
[root@localhost snort3]# export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH

如果 LibDAQ 或其他包安装到自定义的非系统路径,则需要将该路径导出到 PKG_CONFIG_PATH,例如:

export PKG_CONFIG_PATH=/opt/libdaq/lib/pkgconfig:$PKG_CONFIG_PATH

在启用Tcmalloc支持的同时继续构建Snort3。在构建Snort之前导出的编译器标志用于帮助改进编译时间、生成代码的性能和最终Snort的二进制图像大小。

[root@localhost snort3]# export CFLAGS="-O3"
[root@localhost snort3]# export CXXFLAGS="-O3 -fno-rtti"
[root@localhost snort3]# ./configure_cmake.sh --prefix=/usr/local/snort --enable-tcmalloc

上面的命令应该产生类似于下面的输出(部分省略)。

-------------------------------------------------------
snort version 3.1.0.0
...
Feature options:
DAQ Modules: Static (afpacket;bpf;dump;fst;nfq;pcap;trace)
Flatbuffers: ON
Hyperscan: ON
ICONV: ON
Libunwind: ON
LZMA: ON
RPC DB: Built-in
SafeC: ON
TCMalloc: ON
UUID: ON

接下来安装Snort。

[root@localhost snort3]# cd build/
[root@localhost build]# make -j$(nproc)
[root@localhost build]# make -j$(nproc) install
[root@localhost build]# cd ../../

安装完成后,验证Snort 3是否报告了预期的版本和库名称

[root@localhost ~]# /usr/local/snort/bin/snort –V
,,_ -*> Snort++ <*-
o" )~ Version 3.1.60.0
'''' By Martin Roesch & The Snort Team
http://snort.org/contact#team
Copyright (C) 2014-2023 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using DAQ version 3.0.11
Using LuaJIT version 2.1.0-beta3
Using OpenSSL 3.0.8 7 Feb 2023
Using libpcap version 1.10.4 (with TPACKET_V3)
Using PCRE version 8.45 2021-06-15
Using ZLIB version 1.2.12
Using Hyperscan version 5.4.1 2023-04-14
Using LZMA version 5.4.1

在最后

那么Snort的安装过程就到此为止了,后续Snort的使用与配置,会在后续的文章中提到。

如果想要交流网安知识可以发送邮件到Richardminrui@gmail.com。

或者加入我的Discord频道https://discord.gg/v2Q9WKKQ。

Snort的安装——Fedora的更多相关文章

  1. 安装Fedora 24后必要的设置

    安装Fedora 24后必要的设置 导读 Fedora 是一个 Linux 发行版,是一款由全球社区爱好者构建的面向日常应用的快速.稳定.强大的操作系统.它允许任何人自由地使用.修改和重发布,无论现在 ...

  2. 如何从硬盘安装fedora 19 (How to install fedora 19 from hard drive, Fedora-19-i386-DVD.iso)

    现在fedora 19出来了, 它的安装界面与跟fedora 18相同,都是metro UI. 不过现在官方已经不再推荐下载i386,而是x86-64位了,是不是现在x86-64已经把兼容性做得很好了 ...

  3. Unix/Linux环境C编程入门教程(6) 安装Fedora C/C++开发环境

    安装Fedora  C/C++开发环境 1 Fedora 是一个开放的.创新的.前瞻性的操作系统和平台,基于 Linux. 2.选择自定义配置 3.设置版本为10.0 4.选择稍后安装 5.选择64位 ...

  4. 刚安装Fedora 23工作站后,你必须要做的24件事

    [51CTO.com快译]Fedora 23工作站版本已发布,此后我们就一直在密切关注它.我们已经为新来读者介绍了一篇安装指南:<Fedora 23工作站版本安装指南> 还有一篇介绍如何从 ...

  5. 安装Fedora 21工作站后要做的10件事情

    教程]安装Fedora 21工作站后要做的10件事情 2015-01-07 13:32 CSDN CODE 作者CSDN CODE 1 755 FedoraGNOMELinux Fedora 21已经 ...

  6. VMware Workstation/Fusion 中安装 Fedora 23/24 及其他 Linux 系统时使用 Open VM Tools 代替 VMware Tools 增强工具的方法

    VMware Workstation/Fusion 分别是 Windows/Linux 和 macOS 下面对应的桌面虚拟化软件.过去,在 VMware 中安装了操作系统虚拟机后,需要在虚拟机中再安装 ...

  7. 双显卡安装Fedora 20

    电脑CPU上有核芯显卡,独立显卡是Nvidia的GeForce.在安装Fedora 20 64位的时候,通常会有一个优先级.在电脑BIOS中有一个显卡的启动选项,PCIe或者IGFX,PCIe是独立显 ...

  8. 安装指南【win10下安装fedora】

    系统安装 安装准备 系统:fedora .Win 10 硬件:U盘一枚.PC一台 软件:UltraISO 安装步骤 使用UltraISO将镜像写入U盘 window10使用磁盘管理,空出一个未分配的区 ...

  9. 安装Fedora(附镜像下载地址)

    近期又试着装了一遍Fedora,强迫症迫使我写一些简单的教程,方便以后有用 先把VM配置好,然后进入Fedora 点击Skip 这几按照提示一步一步来 选个人桌面 手工分区 分区的时候注意下每个区的容 ...

  10. 安装fedora 16 之后

    电脑换了windows 8 系统之后,再装fedora,发现只有16可以正常安装而且是在win8里安装easyBCD,才能正常启动windows,这是我反复装了很多次才发现此情况的.无奈只能继续使用1 ...

随机推荐

  1. [扫描工具]dirsearch简单使用

    [扫描工具]dirsearch简单使用 dirsearch是一个python开发的目录扫描工具.和我们平时使用的dirb.御剑之类的工具一样,就是为了扫描网站的敏感文件和目录从而找到突破口. 安装: ...

  2. Fiddler之常用的操作

    Fiddler操作 一.首次安装 1.设置https Tools → Options → https 第一次选择安装证书,如图 2.无法正常显示https请求 重置所有证书,重置后会重新提示安装证书, ...

  3. flask orm 操作方法

    数据库操作 常用的查询过滤器 过滤器 说明 filter() 把过滤器添加到原查询上,返回一个新查询 filter_by() 把等值过滤器添加到原查询上,返回一个新查询 limit() 使用指定的值限 ...

  4. 问道Golang,6月龄必知必会(二)

    在我看来,golnag有许多反直观的设计,而且这些设计通常不能自圆其说,导致gohper一而再再而三的调入陷阱. 网上也有很多gohper总结了一些笔记,我再提炼精简一下,挂在脑图树上便于记忆. 值类 ...

  5. ROS节点开机自启的方法

    ROS节点开机自启的方法(Ubuntu- melodic) 一. 使用命令 sudo apt install ros-melodic-robot-upstart 安装 robot-upstart工具包 ...

  6. Qt 学习笔记 - 第五章 - Qt 时间编程 - Qt 时钟

    原文地址:Qt 学习笔记 - 第五章 - Qt 时间编程 - Qt 时钟 Qt 学习笔记全系列传送门: Qt 学习笔记 - 第一章 - 快速开始.信号与槽 Qt 学习笔记 - 第二章 - 添加图片.布 ...

  7. [数据分析与可视化] Python绘制数据地图1-GeoPandas入门指北

    本文主要介绍GeoPandas的基本使用方法,以绘制简单的地图.GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口.GeoPandas扩展了Pandas的数据类型, ...

  8. ElasticSearch的常用API

    ElasticSearch的常用API 1.在服务器上怎么查ES的信息 # 通过使用_cat可以查看支持的命令 ### curl localhost:9200/_cat eg: /_cat/alloc ...

  9. 【微信网页授权】SpringBoot+uniapp实现网页授权获取用户基本信息

    前言 缘由 起因于本狗上一个项目本打算采用微信公众号网页授权登录做用户鉴权,但最终因公众号是未认证的订阅号,无权限获取用户信息,所以改变思路,采用登录注册方式实现用户区分.但在开发中,学习了微信网页授 ...

  10. C# 通过StreamWriter输出的TXT流文件,前缀带EF BB BF

    好久没有动笔写博客了,这个小天地被我闲置的放了好久好久,接下来要慢慢捡起来了. 备注:通过C#的StreamWriter类输出一个TXT流文件,供下位机工程师使用,发现打开的16进制文件中,默认添加了 ...