基于windows snort 下的入侵检测-apache+snort+mysql+base汉语版

基于windows snort 下的入侵检测-apache+snort+mysql+base汉语版

2023年7月3日发(作者:)

1

Master/Stand Alone - Windows Intrusion Detection System

(WinIDS)

Windows 2000, XP, Vista and 2003 (All Versions)

Written by Michael E. Steele

现在关于Windows上安装Snort的文档相当稀少,我们尽力做到使Windows用户的Snort新手在Windows中部署Snort环境时时减少“痛苦”,这是我们希望做到的。^_^

介 绍

WinIDS以其安装的简便著称(-_-!)。在大多数环境下安装Windows Instrusion Detection System(Windows入侵检测系统)是一个非常简单的过程,通常花费不到一个小时的时间来完成之。本文介绍使用世界知名的SNORT入侵检测引擎、MySQL数据库、Apache Web服务器和BASE(Basic Analysis and

Security Engine,Kevin Johnson)来部署一个Windows入侵检测系统的主控端或者单独的Windows入侵检测系统。

我们把所有相关需要的软件做成了一个AIO(即All IN ONE)软件包,下面是关于其中我们用到的主要软件包的描述。

Apache Web Server:这是主要的Internet Web站点的服务器软件,为我们的BASE安全控制台提供2

运行平台。

Snort:Snort是一个轻量的网络入侵检测系统,用于在IP网络上实施实时的通讯分析和包日志记录。这是我们用来在网络上收集信息的软件。

WinPcap: WinPcap 是由伯克利分组捕获库派生而来的分组捕获库,它是在Windows 操作平台上来实现对底层包的截取过滤。WinPcap 为用户级的数据包提供了Windows 下的一个平台。WinPcap 是 BPF 模型和 Libpcap 函数库在 Windows 平台下网络数据包捕获和网络状态分析的一种体系结构,这个体系结构是由一个核心的包过滤驱动程序,一个底层的动态连接库 和一个高层的独立于系统的函数库 Libpcap 组成。底层的包捕获驱动程序实际为一个协议网络驱动程序,通过对 NDIS 中函数的调用为 Win95、Win98、WinNT、和 Win2000 提供一类似于 UNIX 系统下 Berkeley Packet Filter 的捕获和发送原始数据包的能力。 是对这个 BPF 驱动程序进行访问的 API 接口,同时它有一套符合 Libpcap 接口(UNIX 下的捕获函数库)的函数库。

MySQL Server:MySQL 是一个基于SQL的应用于众多平台的数据库服务器,我们用它来存储Snort3

的告警信息。所有的来自IDS探测器的告警信息都被存储在我们的MySQL数据库中。

ADODB:PHP中一个对象导向的数据库封包链接库,它提供了共通的应用程序接口来跟所有支持的数据库沟通,简化了你的程序的数据库移植性操作。ADODB是Active Data Object DataBase的缩写,目前支持MySQL、PostgreSQL、Oracle、Interbase、Microsoft SQL Server、Access、FoxPro、Sybase、ODBC及ADO。

PHP: 这是一个广泛使用的通用脚本语言,特别适用于Web开发并且可以被嵌入到HTML中。

Basic Analysis and Security Engine (BASE):

BASE是一个用来查看Snort IDS告警的Web应用程序。BASE is a web-based application for viewing

Snort IDS alerts. 所有探测器的信息在这里被加工整理以方便查看。

WinIDS - All In One Software Pak

提示:到2007年3月5日为止,所有需要的和最新的文件已被包含进下面的AIO Software Pak中。

我们正在制作一个AIO(ALL IN ONE)的软件包,它包含本指南所需要的所有支持软件。我们不特别强调只有包含在AIO软件包中的软件才能用于初始化安4

装。但我们已经发现一些新版本的软件之间存在兼容性问题从而导致安装失败。我们在这些新的程序之间变得“融洽”后也将继续发布新版本的AIO软件包。

AIO的下载地址:/data/files/win-ids/WinIDS_

强制的先决条件

 只能使用包含在我们的AIO软件包中的程序

 干净的Windows 2000/XP/Vista/2003安装

 所有SP包和补丁均已安装

 系统分区(比如C:)最小5G

 WinIDS分区(比如D:)10G以上

 保证探测器拥有静态TCP/IP设置并且接入网络

 在WinIDS上解除所有防火墙应用程序

 新的WinIDS探测器必须被允许接触所有网络通讯。这可以通过将探测器接入拥有端口映射功能的交换机上,hub上,或者是一个网络节点处。

在开始安装前,我们强烈建议您使用MBSA(Microsoft

Baseline Security Analyzer)解决所有的安全问题。

说明:本译文使用C盘作为WinIDS的分区。

5

 安装基本的Windows入侵检测系统(WinIDS)

预安装任务

提示:下列任务这些必须在安装WinIDS前完成

提示:

1.在一些情况下微软系统默认安装IIS。要保证在开始安装WinIDS前IIS已被移除。

2.进入到C:Windowssystem32driversetc下,适用写字板打开hosts文件,将’本机ip winids’加入到文件中(如下所示),保存退出,在命令行中使用’ping

winids’测试。

3.将下载的AIO软件包解压缩

安装WinPcap

一路next,accept,finish即可

安装和配置Snort 6

1.安装Snort程序到c:snort

提示:在安装开始的第二个步“Install Options”处,由于Snort的所有Windows版本已经默认支持将日志记录到Mysql和ODBC数据库服务器,所以此处可以选择第一个单选按钮或者可以选择其它两个以添加额外的数据库支持。

Snort安装第二步图示

2.将中的文件解压到c:snort相应文件夹中。

3.进入c:snortetc下,使用写字板编辑文件

提示:使用写字板中的“查找”寻找下列变量。

更改内容如下所示: 7

Original: var HOME_NET any

Change: var HOME_NET 192.168.1.0/24

Original: var EXTERNAL_NET any

Change: var EXTERNAL_NET !$HOME_NET

Original: var RULE_PATH ../rules

Change: var RULE_PATH c:snortrules

Original: # config detection: search-method lowmem

Change: config detection: search-method lowmem

Original:

Change:

Original:

Change:

dynamicengine

dynamicengine c:

/usr/local/lib/snort_dynamicengine/libsf_

snortlibsnort_dynamicenginesf_

dynamicpreprocessor

dynamicpreprocessor

directory

directory

/usr/local/lib/snort_dynamicpreprocessor/

c:snortlibsnort_dynamicpreprocessor 8

提示:查找条目'preprocessor stream4_reassemble'

(less the quotes), 并添加下一行到该条目之下。

preprocessor stream4_reassemble: both,ports 21

23 25 53 80 110 111 139 143 445 513 1433

提示:查找条目'Preprocessor sfportscan' (less the

quotes)并改变下一行。

Original: sense_level { low }

Change: sense_level { low }

在上一行下加入:

logfile { }

提示:在'# output log_tcpdump: ' 下插入下一行:

output alert_fast:

Original: # output database: log, mysql, user=root

password=test dbname=db host=localhost

Change: output database: log, mysql, user=snort

password=snort dbname=snort host=winids 9

sensor_name=WinIDS

Original: include

Change: include c:

Original: include

Change: include c:

Original: # include

Change: include c:

保存并退出。

测试Snort安装

打开命令行,在提示符下输入’cd c:snortbin’回车。

在命令提示符下输入’snort –W’,回车。

提示:当’-W’参数被使用的时候,Snort将探测多个接10

口,并且以数字(1-x)形式显示。Snort需要知道有哪些接口可以监控,如果没有发现网络接口,安装必须停止直到问题解决。

When the -W switch was used in the above run line,

Snort may have detect multiple interfaces, and

displayed then by numbers (1-x). Snort will need to

know which interface to monitor. If No interface are

found, the install MUST stop until the problem is

corrected.

提示:下面的过程需要将WinIDS连接到网络,并且需要产生通讯。这通常可以通过Web浏览器打开一个远程站点来达成。

从命令行输入’snort –v –i1’,回车。

提示:这将以详细输出模式运行snort,并在接口1上探测通讯。

现在打开一个Web浏览器产生一些Web通讯。

提示:如果只有一个网卡,因为通讯的产生我们应该会在命令行窗口看到流经的数据统计,如果探测器上装有多个网卡并且在命行行窗口看不到数据统计,而且snort也在运行中,那么从任务管理器停止snort,11

然后改变’snort –v –iN’中N的值再次运行snort,直到有通讯数据统计出现在命令行窗口中。

提示:N的值需要记住,以备配置文件中使用

命令行中使用’CTRL+C’或者通过任务管理器来结束Snort

使用虚拟机获取的Snort –w效果图

Snort –v –i2效果图

安装Apache Web Server

我们这里对安装过程不做赘述,假设安装到了12

c:apache目录下。

提示:安装好Apache后在 系统托盘处会出现一个Apache的图标,我们可以通过它来对Apache服务进行控制。

提示:如上图所示,最后两个单选项,是选择将apache安装为服务使用80端口自动启动,还是手动启动使用8080端口,自己定夺。

使用写字板打开c:文件。

使用查找定位到配置文件’LoadModule ssl_module 13

modules/mod_’ 处,并在其下添加如下三行:

LoadModule

c:phpphp5apache2_

AddType application/x-httpd-php .php

PHPIniDir c:php

安装并配置PHP

将php的windows压缩文件包解压到c:php下。

完成后:

1. 将c:拷贝到c:windowssystem32下。

2. 使用c:-dist拷贝生成c:

使用写字板编辑c:

所做更改如下所示:

Original: max_execution_time = 30

Change: max_execution_time = 60

Original: display_errors = On

Change: display_errors = Off

Original: ;include_path = ".;c:phpincludes"

php5_module 14

Change: include_path = "d:win-idsphppear"

Original: extension_dir = "./"

Change: extension_dir = "d:win-idsphpext"

Original: ; extension=php_

Change: extension=php_

Original: ; extension=php_

Change: extension=php_

Original: ; _path = "/tmp"

Change: _path = "c:windowstemp"

提示:保证’_path=’变量指向正确并且存在的’windowstemp’或者’winnttemp’目录。保证Everyone拥有上述目录的使用权限。

测试Apache和PHP的安装

将AIO包中的拷贝到’c:apachehtdocs’中,然后重起apache服务。

打开浏览器输入’winids/’ 15

生成如下所示页面。

提示:

1.检查的位置、extension_dir、include_path及_path等设定是否与我们先前设定相符。

2.检查是否有gd,mysql等已经被enable的项。

将snort配置为系统服务

16

1.在命令行提示符下切换当前目录至’c:snortbin’下。

2.在命令行提示符下输入:’snort /SERVICE

/INSTALL -c c: -l c:snortlog -K

ascii -ix’,回车。(注意-ix中的x代表snort所探测的NIC的序号也就是前面所说的N值)

提示:我们应该看到服务添加成功的消息。

打开“开始/运行”对话框,输入’’,确定。

提示:如果snort服务已经成功安装,可以找到’Snort’条目,将其设置为’automatic’退出。

安装和配置MySQL

安装时提示:

1.选择“Standard Configuration”,复选“Include Bin 17

Directory in Windows Path”,设置好root用户的密码。

2.重起计算机,打开命令行输入:’mysql -u root -p’,回车,输入密码,回车。

生成Snort数据库

Create the Snort Databases

在mysql提示符下输入:

1. create database snort;

2. create database archive;

提示:如果现在’show databases;’,那么应该显示的数据库有 'information_schema', 'archive', 'mysql', and

'snort'.

Creating Snort Database Tables

1.在mysql提示符下输入’connect snort;’,回车。注意它将显示’Current databases:snort’并且返回mysql提示符号。

18

2.在mysql提示符下输入’source

c:snortschemascreate_mysql’

3.在mysql提示符下输入’connect archive;’,回车。

4.在

生成数据库访问和授权用户

Create Database Access and Authenticated

Users

在命令行提示符号下输入:

1. 'set password for root@localhost =

password('snort');' ,回车。

2. ‘grant INSERT,SELECT,UPDATE on snort.* to

snort@winids identified by 'snort'

3. 'grant

INSERT,SELECT,UPDATE,DELETE,CREATE

on snort.* to base@winids identified by 'base'

4. 'grant

INSERT,SELECT,UPDATE,DELETE,CREATE

on archive.* to base@winids identified by 'base'

5. 'use mysql;'

6. 'select * from user;'

mysql提示符下输入’source

c:snortschemascreate_mysql’ 19

使用写字板打开c:更改其中配置如下所示:

Original:

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

Change:

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

确认MySQL和Snort正在运行

通过任务管理器中的“进程”选项卡确认其中列出的进程是否有””,””。

如果Snort或者MySQL的进程没有找到,可通过“事件查看器”查找原因。

安装ADODB

将ADODB的压缩包解压到c:adodb

20

安装和配置WinIDS BASE安全控制台

将base的文件压缩包解压到 'c:apachehtdocs' 目录下。

使用c:apachehtdocsbasebase_复制生成base_

在c:apachehtdocsbase下创建一个signatures文件夹,将c:snortdocsignatures中的文件复制到其中。

使用写字板打开c:文件,更改如下所示:

Original: $BASE_urlpath = '';

Change: $BASE_urlpath = 'winids/base';

Original: $DBlib_path = '';

Change: $DBlib_path = 'c:adodb';

Original: $DBtype = '?????'; 21

Change: $DBtype = 'mysql';

Originals:

$alert_dbname = '?????';

$alert_host = '?????';

$alert_port = '?????';

$alert_user = '?????';

$alert_password = '?????';

Change to:

$alert_dbname = 'snort';

$alert_host = 'winids';

$alert_port = '';

$alert_user = 'base';

$alert_password = 'base';

Originals:

$archive_exists = 0; # Set this to 1

access to the archive DB from BASE

$archive_dbname = '?????';

$archive_host = '?????';

$archive_port = '?????';

you want if 22

$archive_user = '?????';

$archive_password = '?????';

Change to:

$archive_exists = 1; # Set this to 1 if you want

access to the archive DB from BASE

$archive_dbname = 'archive';

$archive_host = 'winids';

$archive_port = '';

$archive_user = 'base';

$archive_password = 'base';

Original: $portscan_file = '';

Change: $portscan_file = 'c:';

提示: 必须严格按照单引号内的内容键入否则将导致BASE失败。

生成BASE数据库表

在mysql命令行中输入:use snort

在mysql命令行中输入:source 23

c:apachehtdocsbasesqlcreate_base_tbls_

在mysql命令行中输入:use archive

在sql

配置图形BASE

打开命令行窗口,切换到c:php下。

在命令行窗口中输入:’go-pear’,两次回车

提示:忽略错误。

提示:现在安装需要包含的额外的PEAR包。

在命行令窗口输入: 'pear install Image_Color' ,回车

在命行令窗口输入: 'pear install Log'

在命行令窗口输入: 'pear install Numbers_Roman'

在命行令窗口输入: 'pear install

/get/Image_Canvas'

在命行令窗口输入:'pear

在命行令窗口输入:'pear

install

install

/get/Numbers_Words-0.15.0'

mysql命令行中输入:source

c:apachehtdocsbasesqlcreate_base_tbls_mysql.24

/package/Image_' 测试PEAR安装, 在命行令窗口输入:'pear list' ,将显示PEAR包列表。

加固WinIDS BASE安全控制台

提示:这个过程将通过使用用户名和密码访问BASE控制台来加固BASE主文件夹。

在c:apache下创建一个passwords文件夹。

在命令行提示符下切换到c:apachebin下

输入:’htpasswd –c c:apachepasswordspasswords

base’,回车。

切换到’c:apacheconf’下,使用写字板打开文件。

改动如下:

Options FollowSymLinks

AllowOverride None

25

AuthType Basic

AuthName "WinIDS"

AuthUserFile

d:win-idsapachepasswordspasswords

Require user base

Original: DirectoryIndex

Change: DirectoryIndex base_

Original: Options Indexes FollowSymLinks

Change: Options -Indexes FollowSymLinks

重启WinIDS系统。

启动WinIDS BASE安全控制台

]

重启浏览器,然后输入winids/base

提示:看到告警可能需要一段时间,而且BASE安全控制台会自动刷新。如果一段时间以后没有看到告警26

信息,就去我们的论坛寻求帮助或者手动生成告警信息。

祝贺您,已经建立了您的第一个Windows入侵检测系统,我们希望本指南能给您带来很大的帮助。

.

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688382089a129601.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信