栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

『网安产品开发实践』Linux-snort 的安装与配置、规则设计

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

『网安产品开发实践』Linux-snort 的安装与配置、规则设计

文章目录
  • 编写要求
  • 安装
  • 如何编写规则
    • 变量设置
    • 规则行为
    • 支持协议
    • 源信息
    • 方向操作符
    • 示例
  • 实践:编写规则

编写要求
  1. snort的安装与配置
  2. 自己设计snort规则发现入侵企图:1、入侵http服务或者ftp服务的入侵企图;2、使用icmp协议的探测企图

安装

snort在Ubuntu 20.04能够直接安装

sudo apt-get install snort

安装的时候需要配置网卡为ens33、ip地址为ens33的网段,桥接一般是192.168.X.0/24

如何编写规则

变量设置

设置被监控的网络地址,提供的网络服务以及对应的服务端口,规则文件的地址

基本用法

var  <变量名>  <变量值>
	如 var HOME_NET 192.168.0.0/24
动态变量:用变量生成变量
	如:var FTP_SERVER $HOME_NET
端口变量的设置
	port <变量名> 端口号|[端口集合]
规则行为

所谓规则行为就是指当数据包匹配某条规则时,snort进行的某种操作和响应。

pass:忽略满足条件的数据包;
log:将满足条件的数据包记录到日志里
alert:将满足条件的数据包记录到日志里,然后进行报警
Dynamic:在其被Active规则激活之前,它保持一种潜伏状态,当其Activate激活时,其作用类似log
Activate: 当这种规则触发时, snort首先进行报警,然后由其激活Dynamic规则
支持协议

snort 支持四种协议的分析:ICMP、TCP、IP和UDP。在规则头中,协议声明在规则行为后,它们之间用一个空格来分割。

注:一个规则只能指定一种协议

源信息

源信息由源的IP地址和端口号组成

IP地址的表示方式
	单一IP地址,如192.168.0.154
	CIDF(无类别域间路由地址)地址,如192.168.0.0/24
	!与地址结合,如!192.168.0.0/24,表示除192.168.0网段的地址
	any:代表所有地址
端口的表示方法
	单一端口号,如80
	端口范围,如1:100 或 :1024 或 1025:
	any:所有端口 
	!端口号:除之外

注:非TCP、UDP协议的端口号不能为空

方向操作符

位于源信息与目的信息之间,用于指明数据的流向

方向操作符
	“->”:表明从源到目的
	“<>”:表明源和目的之间进行双向通讯

不支持“<-” 方向符

示例
log tcp any any ->any any
log tcp [10.100.2.3,10.100.3.0/24] any->10.1.1.5 any
active tcp any any->any 23 (activates:24;msg:”su –root attempt”;content:”su -root”; sid:1000001)  
dynamic tcp any any -> any 23 (activated by:24; count:100 ; sid:1000002)
alert tcp any any -> any any(msg:”test message” ; sid:1000003) 

配置msg提示信息的sid需要使用100000以后的,前面是保留id号

实践:编写规则

以下操作要切换到root!

编辑/etc/snort/rules/local.rules,写入以下规则:

var HOME_NET 192.168.x.xxx

alert tcp any any -> $HOME_NET 80 (msg:"ban http"; sid:100003;)
alert tcp any any -> $HOME_NET 21 (msg:"ban ftp"; sid:100004;)

alert icmp any any -> $HOME_NET any (msg:"ban icmp"; sid:100005;)

然后运行snort,指定输出日志的路径

snort -c /etc/snort/rules/local.rules -l /var/log/snort

然后使用python起一个80 http

python3 -m http.server 80

回到物理机操作:

  • 用物理机访问,完成http

  • 然后物理机使用windows资源管理器访问ftp://192.168.x.xxx完成ftp

  • 最后物理机使用ping 192.168.x.xxx完成icmp探测

注意以上都是在物理机访问虚拟机,如果虚拟机自己访问则不会走ens33网卡而是走lo回环了,因此抓不到记录

最后查看访问记录/var/log/snort/alert,实践成功

欢迎在评论区留言,欢迎关注我的CSDN @Ho1aAs

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/599862.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号