实验九-实验十 在Windows下搭建入侵检测平台

实验目的:掌握在Windows中搭建基于snort的入侵检测系统(IDS),熟悉简单的配置方法,能够使用IDS检测并分析网络中的数据流。

Snort是一个强大的基于误用检测的轻量级网络入侵检测系统,它具有实时数据流量分析和日志IP网络数据包的能力,能够进行协议分析,对内容进行搜索/匹配。它能够检测各种不同的攻击方式,对攻击进行实时警报。

实验环境:windows

实验步骤

  1. 安装所需软件:

    1. WinPcap(WinPcap_4_1_2.exe):windows下的捕获网络数据包的驱动程序库
    2. Snort(Snort_2_9_2_2_Installer.zip):将其捕获的数据发送至数据库,可在官网一并下载snort规则库
    3. PHPStudy:PHPStudy集成了apache、php、MySQL环境,不需要单独装这三个软件
    4. Acid(acid-0.9.6b23.tar.gz):是基于php的入侵检测数据库分析控制台。通过adodb从mssql.snort数据库中读取数据,将分析结果显示在网页上,并使用jpgraph组件对其进行图形化分析
    5. Adodb(adodb465.zip):php数据库的连接组件
    6. Jpgraph(jpgraph-3.0.7.tar.gz):Object-Oriented图形链接库For PHP
    7. Snortrules(snortrules-snapshot-2923.tar.gz):Snort检测规则库

具体步骤如下:

1. 安装phpstudy

安装成功启动后页面如下:


(127.0.0.1可以打开即可,内容不一定是hello world)
用PHP study的话可以替换掉最开始麻烦的apache、php、mysql等的安装,后续在配置时稍微修改下就可以。

2. 安装winpcap

双击WinPcap_4_1_2.exe,按照向导提示安装即可。

3. 安装snort

解压缩Snort_2_9_2_2_Installer.zip,默认安装即可,安装完成后使用下面命令测试是否安装成功:

c:\snort\bin> snort -W (W为大写)

使用命令时记得进入到自己的所安装的snort的bin目录下,比如我的是F:\snort\bin

当你看到左上角有个可爱的小猪,说明你安装成功了。

4. 安装和配置mysql

因为我选择用之前安装好的phpstudy进行实验,所以需要在phpstudy中进行相关的配置。

刚安装的同学可以先配置mysql的环境变量,后续可以直接在cmd中打开mysql,教程 ctrl+鼠标点击教程跳转

配置成功后,类似效果如下:
在MySQL的dos控制台中建立snort库和snort_archive库。

mysql> create database snort;

mysql> create database snort_archive;

mysql> use snort

mysql> source create_mysql(create_mysql文件在.\Snort\schemas\下,复制到MySQL下的bin目录中,才可以使用

mysql> show tables;

mysql> use snort_archive

mysql> source create_mysql

mysql> show tables;

为mysql建立snort和acid账号,使idscenter或acid能访问mysql中与snort有关的数据库文件

使用语句:

mysql> grant usage on . to “acid”@“localhost” identified by “acidtest”;

mysql> grant usage on . to “snort”@“localhost” identified by “snorttest”;

再为snort和acid账户分配相关权限,语句:

mysql> grant select,insert,update,delete,create,alter on snort .* to “snort”@“localhost”;

mysql> grant select,insert,update,delete,create,alter on snort .* to “acid”@“localhost”;

mysql> grant select,insert,update,delete,create,alter on snort_archive .* to “snort”@“localhost”;

mysql> grant select,insert,update,delete,create,alter on snort_archive .* to “acid”@“localhost”;
为acid用户和snort用户设置密码
mysql>set password for “snort”@“localhost” = password(“your password”);
mysql>set password for “acid”@“localhost” = password(“your password”);

5. 安装adodb


解压缩adodb465.tgz到D:\phpStudy\PHPTutorial\php\php-5.2.17目录下

因为原实验文档中所选择的php版本较低,使用高版本php会报错,故选择PHP study中最低版本的php

可在这里切换,切换后重启

6. 安装jpgraph

解压缩jpgraph-x.x.x.tar.gz到D:\phpStudy\PHPTutorial\php\php-5.2.17

⑨ 安装acid

解压缩acid-0.9.6b23.tar.gz到D:\phpStudy\PHPTutorial\WWW\acid目录下。

在开启PHP study后可以通过浏览器访问到acid,类似如下:

修改acid_conf.php为下列格式,(用写字板打开)。

$DBlib_path = “D:\phpStudy\PHPTutorial\php\php-5.2.17\adodb465\adodb”;

$DBtype = “mysql”

$alert_dbname = “snort”;

$alert_host = “localhost”;

$alert_port = “”;

$alert_user = “snort”;

$alert_password = “your password”;

$archive_dbname = “snort_archive”;

$archive_host = “localhost”;

$archive_port = “”;

$archive_user =“acid”;

$archive_password = “your password”;

$ChartLib_path = “D:\phpStudy\PHPTutorial\php\php-5.2.17\jpgraph-2.3.3”;

具体的路径信息根据个人的安装路径差别略有不同,仅供参考

重启apache服务。

浏览器打开http://主机IP地址/acid/acid_db_setup.php建立acid运行必须的数据库。鼠标点击create ACID AG

7. 配置snort

针对snort文件夹中没有的文件,可以在资料包中的另外两个snort文件中找到,直接复制过来就可以

Snort安装好后,需要配置etc里面的snort.conf文件。

windows下snort.conf文件必须修改的几处:

原: var RULE_PATH …/rules
改为: var RULE_PATH F:\Snort\rules

原: #dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/
改为:dynamicpreprocessor directory F:\Snort\lib\snort_dynamicpreprocessor(后面一定不要有/)

原: #dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so
改为:dynamicengine F:\Snort\lib\snort_dynamicengine\sf_engine.dll

原:#dynamicdetection directory /usr/local/lib/snort_dynamicrules
改为:dynamicdetection directory F:\Snort\lib\snort_dynamicrules

然后将F:\Snort\so_rules\precompiled\FC-12\i386\2.9.0.1里的所有文件拷贝到F:\Snort\lib\snort_dynamicrules //上面的FC-12不一定对,可以先试一下。看各自的系统都不一样。

原: include classification.config 改为: include F:\Snort\etc\classification.config

原: include reference.config 改为: include F:\Snort\etc\reference.config

原: # include threshold.conf 改为: include F:\Snort\etc\threshold.conf

原:# Does nothing in IDS mode
#preprocessor normalize_ip4
#preprocessor normalize_tcp: ips ecn stream
#preprocessor normalize_icmp4
#preprocessor normalize_ip6
#preprocessor normalize_icmp6
在之前加上#,注释掉。

原:preprocessor http_inspect: global iis_unicode_map unicode.map 1252 compress_depth 65535 decompress_depth 65535
改为:preprocessor http_inspect: global iis_unicode_map C:\Snort\etc\unicode.map 1252 compress_depth 65535 decompress_depth 65535
因为在windows下unicode.map这个文件在etc文件夹下。

修改配置文件时需要自行配置数据库,实验文档没写
在#database下修改,并取消注释,比如:

output database: log, mysql, user=snort password=snort dbname=snort host=127.0.0.1 port=3306
output database: alert, mysql, user=snort password=snort dbname=snort host=127.0.0.1 port=3306

配置好后,保存。

下载并导入规则库

windows下安装好snort后默认是没有规则库,需要自己下载。导入规则文件库,解压下载下来的snort-2.9.0.3.tar.zip,得到四个文件夹。将文件夹下的文件复制到snort安装目录下对应的文件中。

设置预处理器(非必要)

在snort.conf里面可以直接设置某些检测的预处理器,比如:

设置端口扫描的预处理器,把第二行的注释取消,并在最后加上log的保存文件。
# Portscan detection. For more information, see README.sfportscan
# preprocessor sfportscan: proto { all } memcap { 10000000 } sense_level { low }logfile { postscan.log }

设置arp欺骗的预处理器,同样取消注释,把IP和MAC改为你的IP和MAC值。
# preprocessor arpspoof
# preprocessor arpspoof_detect_host: 192.168.1.76 BC:AE:C5:81:BE:95

其他预处理器设置类似。

设置输出

在这下面设置你的输出,需要输出什么就注释掉对应的行。
###################################################
# Step #6: Configure output plugins
# For more information, see Snort Manual, Configuring Snort - Output Modules
###################################################

比如:
# syslog
# output alert_syslog: LOG_AUTH LOG_ALERT

# pcap
# output log_tcpdump: tcpdump.log

插入output alert_fast: alert.ids(输出fast模式的报警日志)

选择网卡:

进入命令行,在snort.exe文件所在目录用snort -W查看系统可用网络接口。记住需要监视的网卡的编号,比如为2,那么在以后的使用中,用-i 2就可以选择对应的网卡。

将snort安装为系统服务:(非必要

C:\Snort\bin>snort /SERVICE /INSTALL -c …/etc/snort.conf -i 2 -l …/snort/log -de

[SNORT_SERVICE] Successfully added the Snort service to the Services database. 如果看到上面的提示说明是成功的。

在测试之前,你要在local.rules文档里加入下面的语句:

alert ip any any -> any any (msg: “IP Packet detected”;sid:1000000;)

完成后通过命令启动IDS模式的snort

snort -i2 -de -l …/log -c …/etc/snort.conf。

命令执行后的DOS界面如图:


出现Commencing packet processing时就可以成功监听,运行不成功可能是权限不够,win+x以管理员身份打开powershell

此时浏览器输入http://127.0.0.1/acid/acid-0.9.6b23/acid/acid_main.php会出现类似如下入侵检测数据库分析控制台界面:


有任何问题可以评论区交流~

实验9-10 在Windows下搭建入侵检测平台相关推荐

  1. Windows下搭建PySpark环境

    Windows下搭建PySpark环境 文章目录 Windows下搭建PySpark环境 前言 方法一 安装单机版Hadoop 安装单机版Spark PySpark环境整合 方法二 测试PySpark ...

  2. [原创]在windows下搭建基于apache的SVN环境

    [原创]在windows下搭建基于apache的SVN环境 1 软件下载: 在http://httpd.apache.org/download.cgi,下载: apache_2.2.14-win32- ...

  3. Windows下搭建ESP-IDF开发环境,适合ESP32/S2/C3/S3系列模组二次开发

    前言 本教程适用于以下两种用户: ①无Linux环境搭建经验或搭建Linux开发环境不成功: ②使用安信可windows一体化环境IDE V1.5开发环境搭建不成功: 本教程提供了windows下搭建 ...

  4. windows下搭建iphone开发环境

    在windows下搭建iphone开发环境,我是这样做的. 1. 安装虚拟机,并且在虚拟机中安装mac os: 2. 启动虚拟机的mac os, 然后安装 iphone sdk. 具体请参考以下几篇文 ...

  5. 乐鑫Esp32学习之旅② 巧用eclipes编辑器,官方教程在Windows下搭建esp32开发环境,打印 “Hello World”。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  6. 【AirSim】Windows下搭建AirSim

    PS. 2010-10-31再看该博客的搭建过程,发现已经和当前版本大不相同了.当时版本中出现的各种小坑,现在得到了较好的解决.故推荐较新的博客:[Windows 10]AirSim基础配置 (v1. ...

  7. 如何在Windows下搭建Qt安卓开发环境?

    一.导读 本文描述如何在Windows下搭建Qt安卓开发环境,由于Qt维护的安卓开发环境和安卓开发环境在很大程度上不兼容,所以在选择Qt版本的时候需要注意:在JDK和Android SDK环境的选择上 ...

  8. Windows下搭建MQTT服务器

    Windows下搭建MQTT服务器 1.MQTT服务器软件筛选 2.MQTT服务器软件mosquitto下载 3.修改mosquitto配置,并启动mosquitto服务 4.利用mosquitto工 ...

  9. windows下搭建mysql集群_Windows下搭建MySQL集群

    本文将讨论在Windows下搭建MySQL集群的步骤和搭建过程中应当注意的问题. 由于机器数量和性能有限,搭建环境为一台宿主机(IP:10.200.178.191),一台虚拟机(IP:10.200.1 ...

最新文章

  1. 广义线性模型?链接函数?sigmoid和softmax?Logistic处理多分类问题?logistic回归处理超大数据?使用logistic和randomsearch进行组合获取最优参数组合、优缺点
  2. 苹果遭火速打脸:照片扫描AI被逆向工程,英特尔工程师发现漏洞
  3. Release Type
  4. SAP项目MM调研清单
  5. bzoj1407: [Noi2002]Savage
  6. php 连接符.,PHP怎么在数字之间添加连接符
  7. php引擎,php基于什么引擎
  8. Thread函数的参数传递和线程所有权转移(2.2)--std::move()
  9. 高通 MSM 8916与MSM8926芯片的区别
  10. 写c++好的软件_族谱家谱制作怎么写?专业的家谱族谱编辑制作软件哪个好
  11. Java的getbytes()方法使用
  12. 光影碰撞的黑科技魔法 飞利浦家庭影院B97体验
  13. DEL: 华为无线modem变无线路由器 2
  14. 智能家居技术发展趋势及平台建设路径
  15. linux怎么看系统内存多大内存频率,Linux 查看 CPU 型号及内存频率及其它信息的命令...
  16. 兔年幸运转转盘,看看你今年过年能赚到啥
  17. python实现屏幕视频录制_用Python来做一个屏幕录制工具
  18. corosync+pacemaker+web集群
  19. Word基础(三十五)题注的插入与删除
  20. 2021年R2移动式压力容器充装报名考试及R2移动式压力容器充装证考试

热门文章

  1. 邮件营销如何创意故事情节?
  2. java随机数带字母_随机生成一组随机数(带字母和数字)
  3. 控件使用中的ShowWindow 和 EnableWindow选择
  4. 小孩机器人编程真的有用吗
  5. 报错: Synchronous remote object proxy returned error: Error Domain=NSCocoaErrorDomain Code=4099
  6. 莫顿码Morton code的c语言实现
  7. 计算机信息安全技术第一章小知识点
  8. Openjudge 1.5.5
  9. 国际博物馆日,百度超级链多款上新数字藏品
  10. 上海交大课程MA430-偏微分方程续论(索伯列夫空间)之总结(Sobolev Space)