计算机网络安全--snort介绍--linux下安装和使用

Posted 一只小余

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络安全--snort介绍--linux下安装和使用相关的知识,希望对你有一定的参考价值。

本文章教程使用的是WSL的 Ubuntu 22.04.1 LTS 系统
且使用的管理员账户


文章目录

介绍

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

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

官方的操作文档有着所有的操作
这里只记录着前3比较简单的操作

安装

查看网卡信息

wsl不自带ifconfig工具
需要下载

apt install net-tools


查看网卡信息:

ifconfig

记住是在那个位置我的在eth0

安装snort

apt install -y snort

下载完后就会弹出配置

需要请使用CIDR格式-例如,对于256个地址的块,使用192.168.1.0/24或192.168.1.42/32
只有一个。多个值应以逗号分隔(不带空格)

您可以将此值保留为空,并在/etc/snort/ssnort.conf中配置HOME_NET。
请注意,如果将Snort配置为使用多个接口,它将使用此值作为 HOME_NET定义。

现在我还不知道这个干嘛的就默认了,如果不对可以去修改的。

配置网卡

我的没有显示,好像是因为默认是eth0,所以eth0的不需要配置,不是的会弹出提示来配置。

查看snort版本

snort -V
# 或者snort --v

使用

嗅探器模式

snort # 就可以启动了

参数

可选参数:
-e 显示二层报文内容,即显示MAC地址以太网帧类型
-v 显示 IP 和 TCP / UDP / ICMP头信息
-d	显示应用层协议内容,即显示报文数据段
-C	在-d模式下,不显示16进制数据,只显示字符串类型
-X	显示链路层数据内容
-q	安静模式,不显示启动信息,不显示统计信息
-p 禁用混杂模式嗅探
-h <hn>设置家庭网络=<hn>(用于-l或-B,在IDS模式下不会更改$HOME_NET

使用

显示,但是一般没得包,需要在创建一个终端自己ping一个。

snort -v
ping www.baidu.com


数据包记录模式

这个功能就是将报文保存,记录到某个路径下。

这里常用的参数有

-l	指定log存放目录
-L	指定log记录名称,建议和-l配合使用,因为它只指定文件名称
-K <mode>	记录日志模式 (pcap[默认],ascii,none),只有当使用ascii模式的时候, 才能存成人类可读格式,并且按照IP来源分开存储
-h	指定哪个网络是家庭网络,存储以远端IP为名,如果都是本地,以端口号、IP为优先级,取大者,这个只有ascii模式才有效
-D  在后台(守护程序)模式下运行Snort
-k <mode>  校验和模式(all,noip,notcp,noudp,noicmp,none)
-K <mode> 日志记录模式(pcap〔默认〕,ascii,none)
-N 关闭日志记录(警报仍然有效)

创建存放日志的目录

snort -dev -l ./snort_log/ -K ascii

需要加K,不然默认pcap模式我们看会乱码

启动

查看日志


网络入侵检测模式

这里是Snort最核心的用法,网络攻击检测

参数

-c	指定配置文件

新建并且编辑规则文件

规则

目录

 cd /etc/snort/rules/

alert icmp 0.0.0.0 any -> any any (logto:"test";msg:"ping";sid:100000003)

保存退出后

修改配置文件


添加

include $RULE_PATH/my.rules

启动

snort -l snort_log/ -c /etc/snort/snort.conf -K ascii


ping

查看日志

练习

查看它检测到其他电脑对你的电脑发出ping报文时,会发出告警信息
rules:

alert icmp any any -> 0.0.0.0 any (logto:"test";msg:"new ping";sid:100000003)
sudo tail -f snort_log/test -n 30  

可能错误

ERROR: Can’t start DAQ (-1) - socket: Operation not permitted!

权限不够,切换到root权限就可以了。

Can’t start DAQ (-1) - SIOCGIFHWADDR: No such device!或者Acquiring network traffic from 不是自己的网卡

则需要修改

snort -i网卡名字# i和名字没有空格,不要加空格

can’t set daq bpf filter to ’ eth…'就是加了空格了。

规则格式介绍

alert icmp any any -> 0.0.0.0 any (logto:"test";msg:"new ping";sid:100000003)

第一部分:规则头

关键字含义
alert使用选定的警报方法生成警报,然后记录数据包
log记录数据包
pass忽略数据包
drop丢弃并记录数据包
reject阻止数据包,记录它,然后发送TCP重置(如果协议是TCP)或ICMP端口不可访问消息(如果协议是UDP)
sdrop阻止数据包,但不记录它

第二部分:协议
如:IP、ICMP、TCP、UDP

第三部分:发送方的IP

第四部分:发送方的端口

第五部分:方向
->单项
<>双向

第六部分:接收方的IP

第气部分:接收方的端口

端口

关键字含义
关键字any可用于定义合法端口
单一数字静态端口,例如23代表telnet
单一数字:大于等于该端口
:单一数字表示小于端口号
单一数字:单一数字 端口范围
表示非该范围端口

最后一部分:规则选项

关键字含义
general基本信息,并不对流量产生任何行为
payload对数据流的有效载荷进行查找,可进行多数据关联查找
non-payload非数据载荷查找
post-detection对检测出的特定的规则进行关联触发

general类型

关键字含义
msg向日志和警报引擎告知要打印的消息以及数据包转储或警报,它是一个简单的文本字符串,利用\\作为转义字符来表示离散的字符,否则这些字符可能会使Snort的规则解析器感到困惑(例如分号; 字符)
reference允许规则引用外部攻击识别系统,简单来说就是允许带一些参数,这个参数能够被其他攻击检测系统识别调用,方便了消息联动
gid用来表示是Snort的哪个子系统产生了这次触发,建议使用从1000000开始的值。对于一般规则的编写,不建议使用gid关键字。此选项应与sid关键字一起使用
sid用于唯一标识Snort规则此信息允许输出插件识别规则,常与rev关键字一起使用,文件sid-msg.map包含警报消息到Snort规则ID的映射
在对警报进行后期处理以将ID映射到警报消息时,此信息非常有用。
<100保留供将来使用
Snort发行版中包含100-999999条规则
>=1000000用于当地规则
rev用来唯一标识规则版本,和sid一起用
classtypesnort根据其默认的规则文件,将攻击进行相应分类,并具有不同的优先级
1-4,1最高,规则分类被定义在classification.config文件中。(优先级1(高)是最严重的,优先级4(非常低)是最不严重的。)
priority规则指定严重性级别
metadata元数据标记允许规则编写器嵌入有关规则的附加信息,通常采用键值格式

配置文件

网络配置_在Vmware下安装好Linux的虚拟机后

第一步

    打开VMware软件的  [编辑]   选择 虚拟机网络配置

 

 第二步

   选择VMnet8这张网卡

   子网IP 设为 xxx.xxx.xxx.0

 

注明1 :网卡VMnet1是提供桥接模式的网络的

{如果使用了这张网卡,就同等于你使用着Windows,这么说吧,就是你的Linux不是虚拟机了,同等于真实存在的}

{如果旁边还有一台电脑,即使是Windows系统,你在Linux下开启文件共享,Windows系统的那台设备是可以访问得到的}

 

注明2 :网卡VMnet8是提供Net模式的网络的

{在公司上班就能见到这种使用这种net网络模式}

{它通过广播发射[xxx.xxx.xxx.0],路由器的管理[xxx.xxx.xxx.2]【这是一个在Windows下的一个服务端进程】,可以使得很多台Linux机器都能通过这张网卡上网}

{如果旁边还有一台电脑,旁边的电脑就不能访问到当前这台Linux系统设备了}

以上就是两张网卡的区别

 

第三步

  这里就是Windows的了

  因为在安装好VMware虚拟机后,在Windows下就生成了两张网卡

  一是网卡VMnet1

  二是网卡VMnet8

不自动获得IP地址

设为 XXX.XXX.XXX.1  代表在Windows中的 本机 本机  本机  重要的事情说三遍

点击确定,完成设置

 

真正让Linux虚拟机能得到上网功能的是在Windows的一个服务端进程,

这个服务进程是安装好VMware软件后才会有的

 

第四步

  选择NAT设置

 

  网关IP设置为,  xxx.xxx.xxx.2    这里是路由器

 

 点击确定

 

第五步

  选择DHCP设置

 

  起始IP设置为上网 xxx.xxx.xxx.3

  这个IP地址就是作为Linux本机的IP地址了

点击确定

 

 

完成设置,你的Linux可以上网了,OK。。

都过去了,为自己,为家人,加油↖(^ω^)↗

 

最后总结

0是广播,是在VMware软件_编辑_网络配置管理的VMnet8的子网IP中的配置

1是本机,是在虚拟机外的Windows系统里的VMnet8网卡属性IPV4里配置的,不自动获取IP

2是路由器,是在VMware软件_编辑_网络配置管理的VMnet8的NET设置里的网关IP里去设置的

3是Linux系统本机IP,是在VMware软件_编辑_网络配置管理的VMnet8的DHCP里的起始IP地址里去设置的

 

完,Linux有上网功能了^_^

 

以上是关于计算机网络安全--snort介绍--linux下安装和使用的主要内容,如果未能解决你的问题,请参考以下文章

网络配置_在Vmware下安装好Linux的虚拟机后

Snort规则分析举例

Hyperscan与Snort的集成方案

Linux系统安装IDS(snort工具)

linux下,安装snort,输入 ./configure --prefix=/usr/local/snort --enable-mysql=/usr/

linux下安编译安装redis