当前位置: 首页 > article >正文

Linux Snort检测

CentOS 中 Snort 检测的实现

安装前准备

安装依赖包:

Snort 在 CentOS 上安装需要一些基础的开发工具和库。使用以下命令安装相关依赖:

yum install -y gcc gcc-c++ flex bison zlib-devel libpcap-devel pcre-devel openssl-devel

安装 Snort

下载 Snort 源代码:

可以从 Snort 官方网站下载最新版本的 Snort 源代码包。

https://www.snort.org

也可以使用wget命令直接从命令行下载,例如(版本号可能会更新):

wget https://www.snort.org/downloads/snort/snort-3.1.61.0.tar.gz

解压下载的文件:

tar -zxvf snort-3.1.61.0.tar.gz

配置和编译安装:

进入解压后的 Snort 目录:

cd snort-3.1.61.0

创建编译目录并进入:

mkdir build
cd build

运行cmake进行配置(这一步是针对 Snort 3 版本的配置方式):

cmake.. -DCMAKE_INSTALL_PREFIX=/usr/local/snort -DSNORT_LIBPCAP=/usr/local/lib -DSNORT_OPENSSL_INCLUDE_DIR=/usr/include/openssl -DSNORT_OPENSSL_LIB_DIR=/usr/lib64 -DRULES_LIB_DIR=/usr/local/snort/lib -DRULES_INSTALL_DIR=/usr/local/snort/rules

编译和安装:

make
make install

配置 Snort 规则和检测选项

复制配置文件模板:

Snort 安装后会有一个配置文件模板,需要将其复制为实际使用的配置文件:

cp /usr/local/snort/etc/snort/snort.lua.example /usr/local/snort/etc/snort/snort.lua

编辑配置文件:

使用文本编辑器打开snort.lua文件,进行如下主要配置:

设置网络变量:定义本地网络和外部网络范围,例如:

set HOME_NET = "192.168.0.0/16"
set EXTERNAL_NET = "any"

这里HOME_NET可以根据实际的本地网络 IP 段进行修改,EXTERNAL_NET定义为any表示检测来自任何外部网络的流量。

配置规则路径:指定 Snort 规则文件的路径,例如:

这表示包含一个本地规则文件local.rules,需要从官方或其他可靠渠道获取规则文件并放置在指定路径下。

include RULE_PATH.."local.rules"

启动 Snort 检测

测试配置文件:

在启动 Snort 检测之前,先使用以下命令测试配置文件是否正确:

/usr/local/snort/bin/snort -T -c /usr/local/snort/etc/snort/snort.lua

如果配置文件没有问题,会显示测试通过的信息。

启动检测:

使用以下命令启动 Snort 进行网络流量检测(假设要检测eth0网络接口):

/usr/local/snort/bin/snort -D -i eth0 -c /usr/local/snort/etc/snort/snort.lua

其中-D表示以守护进程模式运行,这样 Snort 会在后台持续运行;-i指定要检测的网络接口。

Ubuntu 中 Snort 检测的实现

安装前准备

安装依赖包:

同样,Snort 在 Ubuntu 上也需要一些依赖包来进行安装和运行。使用以下命令安装:

apt-get install -y build-essential libpcap-dev libpcre3-dev zlib1g-dev

安装 Snort

下载 Snort 源代码:

从官方网站下载或者使用wget命令,例如(版本号可能更新):

wget https://www.snort.org/downloads/snort/snort-3.1.61.0.tar.gz

解压文件:

tar -zxvf snort-3.1.61.0.tar.gz

配置和编译安装:

进入解压后的 Snort 目录:

cd snort-3.1.61.0

创建编译目录并进入:

mkdir build
cd build

运行cmake进行配置(针对 Snort 3 版本):

cmake.. -DCMAKE_INSTALL_PREFIX=/usr/local/snort -DSNORT_LIBPCAP=/usr/local/lib -DSNORT_OPENSSL_INCLUDE_DIR=/usr/include/openssl -DSNORT_OPENSSL_LIB_DIR=/usr/lib -DRULES_LIB_DIR=/usr/local/snort/lib -DRULES_INSTALL_DIR=/usr/local/snort/rules

注意,在 Ubuntu 中,openssl库文件和头文件位置可能与 CentOS 略有不同,这里的参数含义和 CentOS 中的相同,主要是指定安装路径和依赖库位置等。

编译和安装:

make
make install

配置 Snort 规则和检测选项

复制配置文件模板:

与 CentOS 类似,复制配置文件模板:

cp /usr/local/snort/etc/snort/snort.lua.example /usr/local/snort/etc/snort/snort.lua

编辑配置文件:

打开snort.lua文件进行配置:

设置网络变量:

set HOME_NET = "192.168.0.0/16"
set EXTERNAL_NET = "any"

配置规则路径:

include RULE_PATH.."local.rules"

启动 Snort 检测

测试配置文件:

先测试配置文件是否正确: 

/usr/local/snort/bin/snort -T -c /usr/local/snort/etc/snort/snort.lua

如果没有错误,就可以启动检测。

启动检测:

假设要检测eth0网络接口,使用命令:

/usr/local/snort/bin/snort -D -i eth0 -c /usr/local/snort/etc/snort/snort.lua

http://www.kler.cn/a/488684.html

相关文章:

  • Ubuntu桌面管理环境: GDM3,KDM,LightDM
  • 常见的http状态码 + ResponseEntity
  • DEV C++软件下载
  • 数据集-目标检测系列- 电话 测数据集 call_phone >> DataBall
  • STM32F4分别驱动SN65HVD230和TJA1050进行CAN通信
  • MySQL 如何赶上 PostgreSQL 的势头?
  • 工商银行devops流程一体化工具
  • uniapp结合movable-area与movable-view实现拖拽功能2
  • Hbuilder ios 离线打包sdk版本4.36,HbuilderX 4.36生成打包资源 问题记录
  • wireshark排除私接小路由
  • MT6835天玑6100平台规格参数_MTK联发科安卓核心板方案定制开发
  • 【MFC】设置CTreeCtrl单个节点的文字颜色
  • Jenkins git SSH获取code报错:git@github.com: Permission denied (publickey).
  • 计算机网络 (33)传输控制协议TCP概述
  • 【HTML+CSS+JS+VUE】web前端教程-18-css引入方式
  • 2025年第三届“华数杯”国际赛B题解题思路与代码(Matlab版)
  • 网络安全测评技术与标准
  • LeetCode:2274. 不含特殊楼层的最大连续楼层数(排序 Java)
  • smplx blender插件笔记
  • 甘蔗叶片图像元素含量的回归预测多模型实现【含私人数据集】
  • Windows 程序设计2:第一个Windows实例程序
  • 什么是数据湖?大数据架构的未来趋势
  • C++ 中的 template <typename T> 用法 ← 泛型
  • 【UE5 C++课程系列笔记】23——多线程基础——AsyncTask
  • vscode开启调试模式,结合Delve调试器调试golang项目详细步骤
  • 每日算法Day14【删除二叉搜索树中的节点、修剪二叉搜索树、将有序数组转换为二叉搜索树、把二叉搜索树转换为累加树】