CentOS7安装snort
2023-04-18 16:25:23 时间
Snort已发展成为一个具有多平台(Multi-Platform)、实时(Real-Time)流量分析、网络IP数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),即NIDS/NIPS。
安装依赖
配置阿里云CentOS7源
mkdir /etc/yumback #创建备份文件夹
mv /etc/yum.repos.d/* /etc/yumback/ # 将官方文件复制到刚刚创建yumback
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
yum -y install epel-release
yum -y install gcc flex bison zlib zlib-devel libpcap libpcap-devel pcre pcre-devel libdnet libdnet-devel tcpdump nghttp2 glibc-headers gcc-c++ openssl openssl-devel
gcc-c++:编译器
flex:DAQ所需的解析器
bison:DAQ所需的解析器
libpcap-devel:Snort所需的网络流量捕获头文件库
libdnet-devel:不是必要的,只是snort为几个网络历程提供了简化的可移植接口
pcre-devel:Snort所需的pcre3的头文件
tcpdump:截取网络分组,并输出分组内容的工具
上传软件包
以下包上传至服务器
- daq-2.0.7.tar.gz
- libdnet-1.11.tar.gz
- libpcap-1.9.0.tar.gz
- LuaJIT-2.1.0-beta3.tar.gz
- snort-2.9.19.tar.gz
- snortrules-snapshot-29190.tar.gz
解压软件包
tar -zxvf snort-2.9.19.tar.gz
tar -zxvf daq-2.0.7.tar.gz
tar -zxvf LuaJIT-2.1.0-beta3.tar.gz
tar -zxvf libpcap-1.9.0.tar.gz
tar -zxvf libdnet-1.11.tar.gz
依次编译安装
#libpcap
cd /root/libpcap-1.9.0 && ./configure && make && make install
#libdnet
cd /root/libdnet-1.11 && ./configure && make && make install
#daq
cd /root/daq-2.0.7 && ./configure && make && make install
#LuaJIT
cd /root/LuaJIT-2.1.0-beta3/src && make && cd .. && make install
#snort
cd /root/snort-2.9.19 && ./configure --enable-sourcefire && make && make install
配置snort
# Snort安装会将二进制文件放在/usr/local/bin/snort,因此,创建到/usr/sbin/snort的软连接
ln -s /usr/local/bin/snort /usr/sbin/snort
mkdir /etc/snort # 创建规则目录
mkdir /var/log/snort # 创建日志目录
mkdir /usr/local/lib/snort_dynamicrules # 创建动态规则目录
# 用root用户运行snort不安全,所以需要创建一个用户来运行
# 创建账号
groupadd snort
useradd -g snort snort
chown snort:snort /var/log/snort
# 下载官网规则进行配置
# 官网配置下载(需注册登录):https://snort.org/downloads
# 这里下载的是:snortrules-snapshot-29190.tar.gz
tar -zxvf snortrules-snapshot-29190.tar.gz -C /etc/snort
cp /etc/snort/etc/* /etc/snort/
#这里进入/etc/snort/so_rules/precompiled按系统选择
cp /etc/snort/so_rules/precompiled/Centos-7/x86-64/2.9.19.0/* /usr/local/lib/snort_dynamicrules/
编辑snort.conf
四处改动
vi /etc/snort/snort.conf
1、将以下段的相对路径改为绝对路径
=====更改前========================
var RULE_PATH ../rules
var SO_RULE_PATH ../so_rules
var PREPROC_RULE_PATH ../preproc_rules
# If you are using reputation preprocessor set these
var WHITE_LIST_PATH ../rules
var BLACK_LIST_PATH ../rules
=====更改前========================
=====更改后========================
var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules
# If you are using reputation preprocessor set these
var WHITE_LIST_PATH /etc/snort/rules
var BLACK_LIST_PATH /etc/snort/rules
=====更改后========================
2、删除snort.conf中321行结尾的/
,并将322、323行删除
=====更改前========================
316 iis_delimiter no
317 iis_unicode no
318 multi_slash no
319 utf_8 no
320 u_encode yes
321 webroot no
322 decompress_swf { deflate lzma }
323 decompress_pdf { deflate }
324
325 # ONC-RPC normalization and anomaly detection.
=====更改前========================
=====更改后========================
316 iis_delimiter no
317 iis_unicode no
318 multi_slash no
319 utf_8 no
320 u_encode yes
321 webroot no
322
323 # ONC-RPC normalization and anomaly detection.
=====更改后========================
3、将IP变量HOME_NET的值改为本机的IP地址
ipvar HOME_NET 192.168.200.10
4、将多余规则注释掉,不要注释include $RULE_PATH/local.rules
,大约540行至655行全部添加#号注释
可以用快捷命令替换
:%s/include $RULE_PATH/#include $RULE_PATH/g
# 然后搜索local.rules取消注释
此配置的目的是入侵检测模式使用snort的时候,snort仅以规则文件local.rules
中自定义的规则来进行工作
创建白/黑名单
touch /etc/snort/rules/white_list.rules
touch /etc/snort/rules/black_list.rules
检查是否安装成功
[root@localhost ~]# snort -V
,,_ -*> Snort! <*-
o" )~ Version 2.9.19 GRE (Build 85)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/contact#team
Copyright (C) 2014-2021 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using libpcap version 1.9.0-PRE-GIT (with TPACKET_V3)
Using PCRE version: 8.32 2012-11-30
Using ZLIB version: 1.2.7
配置测试规则
Ping
vi /etc/snort/rules/local.rules
#将下行加到最后一行
alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"We are being pinged!";icode:0;itype:8;sid:10000003;rev:1;)
#启动snort
# 此时打开两个终端,一个启动snort,另一个查看动态日志
shell1 : snort -e -A full -c /etc/snort/snort.conf
shell2 : tail -f /var/log/snort/alert
# 然后用另一台主机ping snort主机,
# shell2日志就会触发规则返回信息
[**] [1:10000003:1] We are being pinged! [**]
[Priority: 0]
04/16-10:28:27.949163 00:50:56:C0:00:08 -> 00:0C:29:C6:6E:91 type:0x800 len:0x4A
192.168.200.1 -> 192.168.200.10 ICMP TTL:64 TOS:0x0 ID:9816 IpLen:20 DgmLen:60
Type:8 Code:0 ID:1 Seq:21 ECHO
相关文章
- 易基因|METTL3 通过调节m6A 修饰抑制口腔鳞状细胞癌安罗替尼敏感性 | 肿瘤研究
- WINDOWS文本编辑器丨EmEditor功能简介
- 项目播报 | 以投布链,方正璞华携手北汽产投助力中国汽车工业“换道超车”!
- 三款免费强大的SSH工具食用指南
- 通过持续交付提升发布效率
- 数据结构作业(三):直接插入排序 和 归并排序
- [Computer Networks]一个http请求的完成的全过程
- 【插入排序】详细讲解
- 场景题:假设10W人突访,你的系统如何做到不 雪崩?
- [概率论与数理统计]笔记:1.5 事件的独立性
- 浅谈研发实践的技术债与效能提升
- 2. 向线程函数传递参数
- 如何站在开发者的角度理解框架的设计思想?
- 喜讯 | 热烈祝贺方正璞华入选苏州工业园区总部企业服务机构库
- Golang 实现包的初始化控制器与流程控制器
- AIRIOT答疑第4期|如何使用数据分析引擎?
- CH334、CH335 USB2.0HUB详细说明
- IT 技术工作详解 -小马说工作
- 建筑软件解决方案丨Bluebeam简介
- 浅谈 | 高低温环境下的车载屏幕功能耐久与触屏精度自动化测试