Linux Snort检测

news/2025/1/11 16:49:06/

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.ppmy.cn/news/1562283.html

相关文章

LLM prompt提示构造案例:语音回复内容;o1思维链

1、语音回复内容 目的: 语音聊天助手的prompt,让大模型来引导聊天内容,简短和友好,从而文字转语音时候也比较高效。 ## 角色设定与交互规则 ### 基本角色 你是用户的好朋友. 你的回答将通过逼真的文字转语音技术阅读. ### 回答规则…

vscode 给调试文件加参数

方法一:使用 args 数组: {"version": "2.0.0","configurations": [{"name": "Adjust Table","type": "python","request": "launch","program":…

Node.js——fs(文件系统)模块

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

selenium python 模拟网页登陆,如何快速知道chrome的html元素的xpath

在 Chrome 浏览器中快速获取 HTML 元素的 XPath 路径,可以按照以下步骤操作: ### 使用 Chrome 开发者工具 1. **打开开发者工具**: - 打开目标网页后,可以按 F12 键或右键点击页面元素选择“检查”来打开开发者工具。 2. **定…

凯伦股份中标上海宝冶集团集采一线防水材料招标项目

近日,凯伦股份收到了来自上海宝冶集团有限公司发来的中标通知书,被确定为集采一线防水材料招标项目的中标人,展现出上海宝冶对凯伦股份产品品质、综合服务能力和品牌影响力的高度认可。 上海宝冶集团有限公司(以下简称上海宝冶&am…

Java 泛型的用法

1. 泛型类 泛型类是指在类定义时使用类型参数来指定类的类型。这样可以在类的内部使用这些类型参数来定义字段、方法的返回类型和参数类型。 public class Box<T> {private T t;public void set(T t) {this.t t;}public T get() {return t;} }在这个例子中&#xff0c…

Java线程安全

1. Java的线程安全 Java线程安全&#xff1a;狭义地认为是多线程之间共享数据的访问。Java语言中各种操作共享的数据有5种类型&#xff1a;不可变、绝对线程安全、相对线程安全、线程兼容、线程独立 ① 不可变 不可变&#xff08;Immutable&#xff09; 的对象一定是线程安全…

No one knows regex better than me

No one knows regex better than me 代码分析&#xff0c;传了两个参数zero,first&#xff0c;然后$second对两个所传的参数进行了拼接 好比&#xff1a;?zero1&first2 传入后就是: 12 然后对$second进行了正则匹配&#xff0c;匹配所传入的参数是否包含字符串Yeedo|wa…