前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网络入侵检测系统之Snort(二)--数据流图与环境搭建

网络入侵检测系统之Snort(二)--数据流图与环境搭建

原创
作者头像
于顾而言SASE
发布2024-03-20 09:39:58
700
发布2024-03-20 09:39:58
举报
文章被收录于专栏:入侵检测系统入侵检测系统

Code Flow Chart

Environment Building

ubuntu-14.04.5

daq-2.0.7

snort-2.9.16.1

  1. ubuntu配置
代码语言:javascript
复制
udo apt-get update
sudo apt-get dist-upgrade -y
sudo apt-get install -y openssh-server
sudo reboot

2. 安装snort依赖

代码语言:javascript
复制
sudo apt-get install -y build-essential
sudo apt-get install -y libpcap-dev libpcre3-dev libdumbnet-dev
sudo apt-get install -y bison flex
mkdir ~/snort_src
cd ~/snort_src

wget http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz
tar -xvzf automake-1.15
cd automake-1.15
./configure --docdir=/usr/share/doc/automake-1.15
make
sudo make install

wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz
tar xzf autoconf-2.68.tar.gz
cd autoconf-2.68
./configure
make
sudo make install

sudo wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz
sudo tar -zxvf LuaJIT-2.0.5.tar.gz
cd LuaJIT-2.0.5/
make 
sudo make install

3. 安装DAQ

代码语言:javascript
复制
cd ~/snort_src
wget https://snort.org/downloads/snort/daq-2.0.7.tar.gz
tar -xvzf daq-2.0.7.tar.gz
cd daq-2.0.7
./configure
make
sudo make install

sudo apt-get install -y autoconf libtool pkg-config
cd ~/snort_src
wget https://github.com/nghttp2/nghttp2/releases/download/v1.17.0/nghttp2-1.17.0.tar.gz
tar -xzvf nghttp2-1.17.0.tar.gz
cd nghttp2-1.17.0
autoreconf -i --force
automake
autoconf
./configure --enable-lib-only
make
sudo make install

4. 安装snort

代码语言:javascript
复制
cd ~/snort_src
wget https://snort.org/downloads/snort/snort-2.9.15.1.tar.gz
tar -xvzf snort-2.9.15.1.tar.gz
cd snort-2.9.15.1
./configure --enable-sourcefire
make
sudo make install

5. 安装snort规则

代码语言:javascript
复制
# 首先创建snort配置(及规则)目录
mkdir -p /etc/snort/rules
# 创建运行需要目录
mkdir /usr/local/lib/snort_dynamicrules

# 首先将2.3解压出来的etc下的默认配置文件复制到snort配置目录下
cp etc/*.conf* /etc/snort
cp etc/*.map /etc/snort

# 下载社区规则并解压到规则目录
wget https://www.snort.org/downloads/community/community-rules.tar.gz
tar -zxf community-rules.tar.gz -C /etc/snort/rules

# 注释掉所有默认要加载的规则文件
sudo sed -i 's/include \$RULE\_PATH/#include \$RULE\_PATH/' /etc/snort/snort.conf

# 启用社区规则文件
echo '' >> /etc/snort/snort.conf
echo '# enable community rule' >> /etc/snort/snort.conf
echo 'include $RULE_PATH/community-rules/community.rules' >> /etc/snort/snort.conf

# 重新设置snort.conf中的变量值
sed -i 's/var RULE_PATH ..\/rules/var RULE_PATH .\/rules/' /etc/snort/snort.conf
sed -i 's/var WHITE_LIST_PATH ..\/rules/var WHITE_LIST_PATH .\/rules/' /etc/snort/snort.conf
sed -i 's/var BLACK_LIST_PATH ..\/rules/var BLACK_LIST_PATH .\/rules/' /etc/snort/snort.conf

# 创建默认使用的白名单文件
touch /etc/snort/rules/white_list.rules
# 创建默认的黑名单文件
touch /etc/snort/rules/black_list.rules
# 创建默认自己设置的规则文件,其实我们注意了其他include只include了社区规则,所以这条根本没用这里只是意思一下
touch /etc/snort/rules/local.rules

# 测试配置文件是否有误
snort -T -c /etc/snort/snort.conf

6. 安装完成后,简单试用三种模式

snort -v

rule config

detect mode

summary

Features Use Report

  1. 嗅探器(snort -dev)

所谓的嗅探器模式就是snort从网络上读出数据包然后显示在你的控制台上,snort -vd命令可以输出包头信息的同时显示包的数据信息:

访问http://www.baidu.com后,tcp/ip数据探测如下:

退出探测模式后,snort会给出本次探测信息的摘要总结,包括运行时间、吞吐量、内存使用、数据IO和协议分类统计等。

2. 数据包记录器(snort -l)

如果要把所有的包记录到硬盘上,你需要指定一个日志目录,snort就会自动记录数据包,命令采用探测+记录的方式:./snort -dev -l ./20201105/log

访问http://www.sina.com后,关闭sniffer模式后,log文件就将访问新浪过程中所有数据包都记录在snort.og.1604647136中,我们vi打开后,可以看见访问sina中http报文的host。

另一方面,如果想记录特定端口号或协议特征的报文,可以在规则文件中定义:log udp any any -> 192.168.1.0/24 1:1024

3. 入侵检测(snort -c)

网络入侵检测模式是共有5种动作,pass、log、alert、dynamic及activate,而且是可配置的。我们可以让Snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。

首先配置一些规则(snort规则语法),新建一个local.rules,这里试用最简单的例子,当发现任何icmp协议报文时,给出告警并记录,内容显示为guyang:icmp packet;则,语法配置如下:alert icmp any any -> ant any (msg: "guyang:icmp packet"; sid:1993; rev:1;)

配置完规则后,启动NIDS模式:snort -c local.rules

启动另一个终端,并ping 8.8.8.8

屏幕持续显示告警,当关闭终端后,可见监测报告:

由于是alert模式,数据包的告警细则会记录到/var/log/snort/alert中:

三种模式使用后,可以明显感觉Snort IDS易用性非常高,界面显示友好,并且支持的协议广泛,规则配置非常灵活简单,只要关注4个要素: who , where, what,how(行动)即可

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Code Flow Chart
  • Environment Building
相关产品与服务
网络入侵防护系统
网络入侵防护系统(Network Intrusion Prevention System,NIPS),是基于腾讯安全服务内部数百条业务线的运维经验积累和大数据处理能力的结合,通过旁路部署的方式,提供了网络层 ACL (访问控制)和日志审计功能,解决云平台监管、ACL 控制、安全治理等问题,并辅助客户满足网安法,合规性要求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档