使用 Snort 进行入侵检测
使用 Snort 进行入侵检测
Snort 是一种流行的开源入侵检测系统。您可以在http://www.snort.org/上获取它。Snort 分析流量并尝试检测和记录可疑活动。Snort 还能够根据其所做的分析发送警报。
Snort 安装
在本课中,我们将从源代码安装。此外,我们不会安装标准版的 snort,而是对其进行编译以将其记录的内容发送到 MySQL 数据库。此外,我们将安装一个基于 Web 的工具 SnortReport,以便我们可以轻松访问 Snort 提供的信息。让我们从 Snort 本身开始。
下载最新的 tarball 并将其解压到您方便的位置 - 也许是您正在解压源代码的地方对于我们在本课程中处理的其他软件包。我们将配置 Snort 以将其警报记录到 MySQL 数据库,因此我们假设您已安装 MySQL。如果您像我一样在 Fedora Core 上安装它,您还应该安装 Perl正则表达式开发库。它们以 RPM 形式提供。(从您最喜欢的 RPM 存储库中获取 pcre-devel.X.rpm)
此外,在编译之前,您应该为 snort 添加组和用户:
groupadd snort
和
useradd -g snort snort -s /dev/null
现在,您可以开始编译了。转到包含 snort 源代码的目录并发出以下命令:
./configure --with-mysql
然后:
make
并且(以 root 身份)
make install
Snort 的活动基于一组规则。需要将这些规则从 tarball 源中的目录规则复制到 /etc/snort/rules/。您还应该将在那里找到的所有配置文件复制到 /etc/snort/(本质上是 cp *.rules /etc/snort/rules/、cp *.conf /etc/snort、cp *.config /etc/snort、cp *.map /etc/snort)
设置 Snort
首先,我们需要修改 snort.conf 文件以反映我们网络的细节。在此文件中,您将找到以下变量:
var HOME_NET X.X.X.X/X
您需要将其更改为您的网络所在的范围。例如,对于典型的 C 类网络,您可以将 X 更改为 192.168.0.0/16。此外,请确保您的 RULE_PATH 变量指向 /etc/snort/rules。
由于我们配置了 Snort 以将其警报记录到 MySQL 数据库中,因此我们需要做一些事情来做好准备。首先,在 snort.conf 文件中,您需要添加以下行
output database: log, mysql, user=snort password=XXXXX dbname=snort host=localhost
现在我们需要创建“snort”数据库。为此,请执行以下命令(当然,这假设您在机器上拥有 MySQL“root”用户权限)
mysqladmin -u root -p create snort
现在,打开 MySQL shell 并创建“snort”用户并授予表的创建、插入、选择、删除和更新权限。
grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost;
然后为您上面使用的用户‘snort’设置密码:
SET PASSWORD FOR snort@localhost=PASSWORD('XXXXX');
现在我们需要在 snort 数据库中创建主要表。为此,请进入放置 snort 源代码的“contrib”目录并发出以下命令:
mysql -u root -p < create_mysql snort
然后我们需要创建一些额外的表。最好的方法是使用以下命令:
zcat snortdb-extra.gz |/usr/local/mysql/bin/mysql -p snort
现在,您应该拥有 snort MySQL 系统所需的所有表。执行“show tables;”查询将显示以下内容:
+------------------+
| Tables_in_snort |
+------------------+
| data |
| detail |
| encoding |
| event |
| flags |
| icmphdr |
| iphdr |
| opt |
| protocols |
| reference |
| reference_system |
| schema |
| sensor |
| services |
| sig_class |
| sig_reference |
| signature |
| tcphdr |
| udphdr |
+------------------+
现在,一切准备就绪,'snort' 可以开始记录警报了。SnortReport有一个很棒的基于 Web 的前端,用于监控 snort 警报,名为 SnortReport。它用 PHP 编写,可轻松安装到 snort 所在机器的 Web 服务器中。它可从 Circuits Maximus 获得:http://www.circuitsmaximus.com/SnortReport 将按协议类型显示警报的图形表示。此图形需要 libphp-jpgraph 库。这实际上是 Debian 软件包的一部分,但源代码可在 Ibibilo 找到。您还需要启用 GD 库的 PHP 安装。这通常是默认启用的,因此如果您安装了 PHP4 或更新版本,则不需要您再做任何工作。
要安装,只需解压您的网页所在的 SnortReport 源。然后将组成 libphp-jpgraph 的 php 文件复制到名为“jpgraph”/snortreport 目录的子目录中 - 因为这是我们将告诉 SnortReport 查找它们的地方。然后打开文件“srconf.php”并将用户“snort”的 MySQL 密码变量更改为 ($pass = "XXXXX" ;)。接下来,确保“jpgraph”路径的变量指向我们想要的位置:
define("JPGRAPH_PATH", "./jpgraph/");
您不必启用图表。如果您没有启用 GD 的 PHP 安装或 jpgraph,则可以在文件 srconf.php 中将变量设置为“FALSE”。
现在,如果您将 Web 浏览器指向 SnortReport 所在的位置,则应该看到类似以下内容:
现在,您可以基于 Web 监控 Snort 入侵检测系统。
更新和添加 Snort 规则
正如我们提到的,snort 根据 /etc/snort/rules 中的一组规则开展活动。您可以在http://www.snort.org/dl/rules/下载新规则。您应该获取与您正在使用的 Snort 版本相对应的 tarball。在撰写本文时,Snort 的版本为 2.x。请确保获取特定“.x”的 tarball。(即 2.1、2.2、ETC)。
如果您管理一两台服务器,那么在最新的 tarball 发布后获取它并手动更新可能比较实用。您可以重命名旧的“规则”目录 rules.YYYYMMDD 或任何您喜欢的名称,然后将新的规则目录放在其位置并重新启动 Snort。如果您是多台机器的系统管理员,那么创建一个脚本来完成此操作是有意义的。还有一个名为“Oinkmaster”的流行工具可用于更新和管理 snort 规则。它位于http://oinkmaster.sourceforge.net/。他们的页面有关于如何使用此工具来使您的规则保持最新的出色文档。
相关文章:
使用 Snort 进行入侵检测
使用 Snort 进行入侵检测 Snort 是一种流行的开源入侵检测系统。您可以在http://www.snort.org/上获取它。Snort 分析流量并尝试检测和记录可疑活动。Snort 还能够根据其所做的分析发送警报。 Snort 安装 在本课中,我们将从源代码安装。此外,我们不会安…...

C++ | Leetcode C++题解之第116题填充每个节点的下一个右侧节点指针
题目: 题解: class Solution { public:Node* connect(Node* root) {if (root nullptr) {return root;}// 从根节点开始Node* leftmost root;while (leftmost->left ! nullptr) {// 遍历这一层节点组织成的链表,为下一层的节点更新 next…...

计算机网络学习
文章目录 第一章信息时代的计算机网络因特网概述电路交换,分组交换,报文交换计算机网络的定义和分类计算机网络的性能指标常见的三种计算机网络体系计算机网络体系结构分层的必要性计算机网络体系结构分层思想举例计算机网络体系结构中的专用术语 第二章…...
代码随想录算法训练营第四天| 24.两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II
24.两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 解题思路 很麻烦的一道题目,不是很理解。还是看视频文章才AC的。 解法1 …...

职业探索--运维体系-SRE岗位/CRE岗位/运维岗位-服务心态-运维职业发展方向-运维对象和运维场景
参考来源: 极客时间专栏:赵成的运维体系管理课 极客时间专栏:全栈工程师修炼指南 赵成大佬在鹏讯云社区的文章(77篇) 有了CMDB,为什么还要应用配置管理 故障没有根因,别再找了 如何理解CMDB的套…...
深入理解C++智能指针系列(五)
引言 前面两篇介绍了std::unique_ptr的自定义删除器以及如何优化删除器的使用。本文将介绍std::unique_ptr在使用过程中的一些“奇技淫巧”。 正文 删除器和std::move std::move是将对象的所有权转移给另一个对象,那如果通过std::move来转移带自定义删除器的std::…...
1.Nginx上配置 HTTPS
1.安装 Nginx: 如果还没有安装 Nginx,可以使用包管理工具安装。例如,在 Ubuntu 上: sudo apt update sudo apt install nginx2.上传证书和私钥文件: 将你的证书文件和私钥文件上传到服务器上的某个目录,…...

wordpress教程视频 wordpress教程网盘 wordpress教程推荐wordpress教程网
WordPress,作为一款强大且灵活的开源内容管理系统,已成为许多网站开发者与运营者的首选。其强大的功能、丰富的插件以及易于上手的特点,使得无论是初学者还是专业开发者都能轻松构建出个性化的网站。然而,对于初学者来说ÿ…...

vue3 3D炫酷模型banner图
项目场景: 在官网首页展示3D炫酷动画模型,让整个模型都展示出来。 问题描述 主要是3D动画的展示效果,有些3d模型网站可以从51建模网站中获取。 案例代码: <script setup> import * as imgs from ../units/img import { o…...

小程序内使用路由
一:使用组件 1)创建组件 2)在需要的页面的json/app.json可实现局部使用和全局使用 在局部的话,对象内第一层,window配置也是第一层,而在全局配置也是在第一层,window在window对象内.第二层.内部执行遍历不一样. 3)页面使用 上述所写可实现在页面内使用组件.效果是页面内可以将…...

【数据结构】第七节:堆
个人主页: 深情秋刀鱼-CSDN博客 数据结构专栏:数据结构与算法 源码获取:数据结构: 上传我写的关于数据结构的代码 (gitee.com) 目录 一、堆 1.堆的概念 2.堆的定义 二、堆的实现 1.初始化和销毁 2.插入 向上调整算法 3.删除 向下调整算法…...

前端大师-高级Web开发测验
目录 前言 1.按正确的执行顺序排列脚本 2.哪些说法是正确的?(D) 3.填写正确的术语 4.程序的输出 5.将资源提示与其定义匹配 6.以下程序的输出是? 7.将PerformanceNavigationTimings按正确的顺序排列 8.将缓存指令与其定义…...
延迟初始化和密封类
Kotlin 延迟初始化(Lazy Initialization) 定义 在 Kotlin 中,延迟初始化允许你延迟一个对象的初始化,直到首次访问该对象时才进行初始化。这通常用于那些初始化开销较大,或者只在程序运行的某个特定点才需要的对象。…...
Kotlin基础之基本语法
Kotlin 简介 Kotlin 是一种由 JetBrains 开发的静态类型编程语言,设计用于与 Java 虚拟机 (JVM) 兼容,同时也可用于 Android、JavaScript(通过 Kotlin/JS)和原生(通过 Kotlin/Native)开发。Kotlin 旨在提供…...

多态(难的起飞)
注意 virtual关键字: 1、可以修饰原函数,为了完成虚函数的重写,满足多态的条件之一 2、可以菱形继承中,去完成虚继承,解决数据冗余和二义性 两个地方使用了同一个关键字,但是它们互相一点关系都没有 虚函…...
安装GO环境
#windows 1.下载go的安装包msi,下载完双击运行,指定一个目录进行安装 #msi安装时,会自动设置以下环境变量: #GOPATH(默认设置为C:\Users\hhx\go), #C:\Users\hhx\go\bin, #go安装位置下的bin目录 2.检查是否安装成功,终端中运行go version解释一些环境变量 GOROOT:go的安装位置…...
记一次由于代码原因导致Mysql连接被打满和唯一索引重复问题
先说一下事情产生的背景:原先的代码逻辑是消费MQ,然后请求其他服务的接口,对接口的返回值result做落库操作,现在要新加个逻辑,做完落库操作后还要再将result封装落到新表中;即消费一次MQ(MQ消息的频率非常高…...

redis数据类型之string,list
华子目录 key操作说明SCAN cursor [MATCH pattern] [COUNT count]dump与restorekeys 通配符 示例演示 string说明setbit key offset valuegetbit key offsetsetrange key offset value List结构图相关命令lrem key count valueltrim key count value示例:使用 LTRIM…...
Android android.os.DeadObjectException aidl通信异常分析及解决
问题描述 做一款音乐播放应用,播放服务是通过AIDL形式对外暴露,允许跨进程调用且多个App同时操作音乐播放,偶现android.os.DeadObjectException问题 12-15 09:28:12.371: W/System.err(5412): android.os.DeadObjectException 12-15 09:28:…...

dp + 计数,1954D - Colored Balls
一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1954D - Codeforces 二、解题报告 1、思路分析 本题前置题目: 1953. 你可以工作的最大周数 通过前置题目可以知道如何计算两两不同数对序列的最大长度 我们记最大数量为ma…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...