入侵检测linux下课程设计指导书2.docx
- 文档编号:10502056
- 上传时间:2023-02-14
- 格式:DOCX
- 页数:18
- 大小:272.23KB
入侵检测linux下课程设计指导书2.docx
《入侵检测linux下课程设计指导书2.docx》由会员分享,可在线阅读,更多相关《入侵检测linux下课程设计指导书2.docx(18页珍藏版)》请在冰豆网上搜索。
入侵检测linux下课程设计指导书2
课程设计指导书二
1.用Snort构建实用的入侵检测系统
1.1实验目的
(1)网络数据获取与分析是网络入侵检测系统的基础。
通过实验让同学们掌握网络数据获取及数据还原的方法和实现。
(2)通过实验让同学们加深对网络数据获取原理的理解。
(3)通过实验让同学们初步了解在linux下的程序开发过程、开发环境。
(4)为利用第三方软件分析进一步分析数据打下基础。
1.2实验内容
(1)安装除snort以外的其它软件,如Apach、PHP、mysql、acid的安装等相关软件。
(2)完成相应的配置文件的配置,如配置数据库输出插件、制订入侵防范策略等
(3)能利用下载的检测规则,检测入侵。
(4)自已完成一条规则的编写,并进行正确性测试。
(5)完成对检测规则的压力测试。
1.3实验要求
(1)认真完成所规定的实验内容。
(2)将配置文件的的改动部分存储下来,传送到系ftp服务器上。
文件名命名规则是Lab2_学号
(3)所操作的重要步骤和结果用截屏的方法和文件的方式保存和存储,并送到ftp服务器上
(4)认真完成每一个实验步骤,并做好记录。
(5)根据所做的全部实验做一个简单总结。
1.4实验准备
(1)熟悉linux基本命令
(2)熟悉linux系统的安装配置
(3)熟悉虚拟机的安装和操作
(4)理解入侵检测系统的基本原理和实现技术
(5)理解Snort的工作原理
(6)参考教材参考资料及网上有关资料
-从http:
//httpd.apache.org/下载Apache软件
-从
-从
-从http:
//www.cert.org/kb/acid下载ACID软件
-从http:
//www.tcpdump.org下载libpcap库
-从http:
//www.pcre.org下载libpcre库
-从http:
//www.snort.org下载snort软件
-从下载adobd
-从http:
//www.aditus.nu/jpgraph下载jpgraph
1.5实验过程
1.5.1平台的搭建
首先是对此入侵检测系统所在的平台进行搭建,本文采用的是RedHat9.0为内核的Linux操作系统,可以采用直接硬盘分区的安装方式,也可以采用Vmware虚拟机进行安装。
以Snort为核心搭建的入侵检测系统是支持多平台了的,由于Linux是开源系统并且安全性也比较好,所以这里采用了它。
在安装RedHat9.0需要的一些注意事项主要在网络配置方面,需要取消“使用Bootd/DHCP”,针对公司的网段填写“IP地址”、“子网掩码”、“预设网关器的IP地址”以及“第一个名称服务器地址”。
这样配置的原因是最好不要让在手工配置snort.conf中的home_net值是一个动态IP,如果只能使用DHCP进行上网,那么在运行Snort之前要修改snort.conf中的地址。
主机名称配为localhost,方便以后的配置。
防火墙设置为中安全性,允许进入的服务为SSH和WWW。
对于系统需要安装的套件组群可以选择为:
XWindowsSystem
GnomeDesktopEnvironment
KDEDesktopEnvironment(不安装)
Editors
EngineeringandScientific(不安装)
GraphicalInternet
Textbasedinternet
Office/Productivity(不安装)
SoundandVideo(不安装)
AuthoringandPublishing(不安装)
Graphics
GamesandEntertainment(不安装)
Server(全不安装)
Developmenttools
Kerneldevelopment
XSoftwareDevelopment
GnomeSoftwareDevelopment(不安装)
KDESoftwareDevelopment(不安装)
Administration(不安装)
SystemTools
Printingsupport(不安装)
安装完成后,入侵检测系统所需的平台已经基本搭建完成,如果是用虚拟机进行安装的还可以装一下Vmware-tools方便使用。
安装Vmware-tools的方法:
点击虚拟机VM菜单下的InstallVmware-tools,然后Vmware-tools安装包就会挂在mnt/cd-rom下,解压rpm包,安装后重启系统,在终端中输入Vmware-config.pl然后按照提示点击回车确定就可以了。
1.5.2服务器的建立
需要下载的软件有Zlib(有些RedHat9中已经安装了Zlib,可以使用rpm-qa|grepzlib进行查询是否安装)、MYSQL、Apache、PHP。
然后可以将下载的文件放入usr/local/src目录下方便安装以及进行管理。
安装zlib1.2.3:
zlib是很多应用程序都在使用的压缩库,可提供数据压缩/解压例程。
#tar–zxvfzlib-1.2.3.tar.tar//对压缩文件解压缩
#cdzlib-1.2.3
#./configure;maketest//默认路径,测试编译
#makeinstall
#cd..
安装MYSQL:
MySQL是比较广泛使用的开放源代码的SQL数据库软件,相对与其他的数据库系统来说,MySQL具有快速、可靠并且易于使用的优点,可以用它处理比较大的数据库,比较适合中小型企业入侵检测系统所产生的大量报警信息。
首先建立MySQL使用者和群组:
#groupaddmysql
#useradd–gmysqlmysql
在/root底下找到檔名叫“.bash_profile”需要对MYSQL的路径进行配置,使用文本编辑软件找到PATH这行并且改为PATH=$PATH:
$HOME/bin:
/usr/local/mysql/bin然后回到usr/local/src目录下进行安装
#tar–zxvfmysql-4.1.18.tar.gz
#cdmysql-4.1.18
#./configure--prefix=/usr/local/mysql//该命令的作用是MYSQL的安装路径
#make//编译
#makeinstall
在安装完毕后需要进行配置
#scripts/mysql_install_db
#chown–Rroot/usr/local/mysql//将该目录下的所有文件的的拥有者改为root
#chown–Rmysql/usr/local/mysql/var
#chgrp–Rmysql/usr/local/mysql
#cpsupport-files/my-f/etc/f
然后修改conf文件,编辑/etc/ld.so.conf,加入两行/usr/local/mysql/lib/mysql和/usr/local/lib
在root目录下搜索新的动态链接库:
root#ldconfig–v
下面通过增加启动进程来设定MYSQL自动开机执行
#cdusr/local/src/mysql-4.1.18/support-files
首先将mysql.server复制到自启动文件夹中
#cpmysql.server/etc/init.d/mysql
在3级启动项下创建软连接:
#cd/etc/rc3.d
#ln–s../init.d/mysqlS85mysql
#ln–s../init.d/mysqlK85mysql
在5级启动项下创建软连接:
#cd/etc/rc5.d
#ln–s../init.d/mysqlS85mysql
#ln–s../init.d/mysqlK85mysql
#cd../init.d
改变MySQl的访问权限,文件主人(u)为可执行可写可读,同组人(g)其他人(o)都为可执行可读。
#chmod755mysql
假如安装到这边都没有发生过错误,请利用指令“ps–ef|grepmysql”测试看看你安装的MySQL运作正不正常。
如果出现下面这两个服务则表示MYSQL安装成功。
root32010119:
35pts/000:
00:
00/bin/sh/usr/local/mysql/bin/mysqld_safe--user=mysql
mysql3241320139:
35pts/000:
00:
00/usr/local/mysql/lib/mysqld--basedir=/usr/local/mysql--datadir=/usr/local/mysql/var--user=mysql--pid-file=/usr/local/mysql/var/patrick-redhat.pid–skiplocking
安装Apache:
Apache是世界上使用最广泛的Web服务器,与Snort一样Apache也是开放源代码的,Snort服务器还有很多其他组件需要用到Apache源代码,并且控制台也需要Web服务器的支持才能正确运行。
在根目录下使用mkdirwww建立一个文件夹www,将Apache、PHP以及PHP组件都安装在这个目录下,方面对服务器进行管理。
#tar–zxvfhttpd-2.2.6.tar.gz//解压缩
#cdhttpd-2.2.6
#./configure--prefix=/www–enable-so//设置安装路径为www
#make
#makeinstall
执行“/www/bin/apachectlstart”确定apache有正常启动执行,在上网浏览器中输入本主机的IP地址,通常使用127.0.0.1进行本地测试,如果网页中出现Itworks!
则证明Apache安装成功,httpd服务启动成功。
然后执行“/www/bin/apachectlstop”来终止Apache服务,以方便后续软件的安装。
安装PHP:
PHP是一个应用程序服务器,用来处理由PHP程序设计语言编写的代码,是目前非常常用的嵌入html脚本语言。
控制台ACID就是用PHP语言编写的,将传感器收集的入侵数据制作成动态网页,此外ACID的接口都是PHP编写的,所以说要使用ACID就必须安装PHP应用程序服务器。
#tar-xvzfphp-4.4.8.tar.gz
#cdphp-4.4.8
#./configure--prefix=/www/php--with-apxs2=/www/bin/apxs--with-config-filepath=/www/php--enable-sockets--with-mysql=/usr/local/mysql--with-zlibdir=/usr/local--with-gd
本行命令设定了PHP的安装路径,关联相关软件,使PHP支持这些软件。
如果关联中出现错误,根据提示安装所需要的软件包即可,关联成功后执行:
#make
#makeinstall
然后将PHP的配置文件复制到/www/php目录下
#cpphp.ini-dist/www/php/php.ini
下面需要修改/www/conf目录底下的httpd.conf配置文件,该文件是Apache的配置文件,主要是为了让Apache支持PHP4,支持压缩程序、图片、应用程序以及.php网页,找到相关语句并修改为(若没有则添加)。
LoadModulephp4_modulemodules/libphp4.so
AddTypeapplication/x-tar.tgz
AddTypeimage/x-icon.ico
AddTypeapplication/x-httpd-php.php
DirectoryIndexindex.phpindex.htmlindex.html.var
然后将Apache设置为自启动:
#cd/www/bin
#cpapachectl/etc/init.d/httpd//将Apache应用程序复制到自启动文件夹中
#cd/etc/rc3.d
#ln–s../init.d/httpdS85httpd
#ln–s../init.d/httpdK85httpd
#cd/etc/rc5.d
#ln–s../init.d/httpdS85httpd
#ln–s../init.d/httpdK85httpd
下面建立一个PHP测试档测试看看是否安装设定建立正常,使用文本编辑器在目录/www/htdocs底下建立一个档名”test.php”,内容为
phpphpinfo();?
>并保存。
然后在上网浏览器中输入http:
//127.0.0.1/test.php,如果出现图3-1中的画面,则证明Apache、php服务器建立成功。
图5-1PHP测试截图
1.5.3Snort传感器的建立
安装Libpcap:
Libpcap是一个与实现无关的访问操作系统所提供的分组捕获机制的分组捕获函数库,用于访问数据链路层。
该库提供的C函数接口可用于需要捕获经过网络接口数据包的系统开发上。
在本系统中作为Snort的抓包函数库,这个库为不同的平台提供了一致的编程接口,在安装了Libpcap的平台上,以Libpcap为接口写的程序,可以自由地跨平台使用。
#tar–zxvflibpcap-0.9.8.tar.gz
#cdlibpcap-0.9.8
#./configure//默认安装路径就可以
#make
#makeinstall
安装Snort:
本入侵检测系统的核心,运行为传感器上,通过装载解析规则对Libpcap抓的包进行预处理解释并传递报警。
建立Snort使用者及群组
#groupaddsnort
#useradd–gsnortsnort
#mkdir/etc/snort//建立文件夹用来存放规则,配置文件
#mkdir/var/log/snort//建立Snort日志存放的文件夹
#tar–zxvfsnort-2.2.0.tar.gz
#cdsnort-2.2.0
#./configure--with-mysql=/usr/local/mysql//采用默认路径,并关联MySQl数据库
#make
#makeinstall
将规则集和snort.conf配置文件复制到本地/etc/snort
#cdrules
#cp*/etc/snort
#cd../etc
#cpsnort.conf/etc/snort
#cp*.config/etc/snort
下面是对Snort进行配置,对/etc/snort目录下的snort.conf配置文件进行修改,找到此行#varHOME_NET10.1.1.0/24将其改成所属的IP网段,如果不做修改可以用内定值varHOME_NETany;对#varEXTERNAL_NET进行修改,将值改为希望监控的外网地址段;修改snort规则的路径varRULE_PATH/etc/snort/;找到这行,将其前面的“#”拿掉即可动#preprocessorportscan$HOME_NET43portscan.log这是增加了端口扫描预处理模块;找下面这一行,并修改部份内容outputdatabase:
alert,mysql,user=snortpassword=your_passworddbname=snorthost=localhost这行配置文件分别指定了处理方式为报警,数据库使用为MySQL,用户为snort,密码,入侵数据库snort,入侵数据库所在的主机名localhost。
修改完毕后进行保存。
下面将snort设定开机可自动执行,请切换到snort来源目录底下,其底下有个子目录叫contrib,并将S99snort应用程序文件复制到启动文件夹中的snort文件夹中。
#cd/usr/local/src/snort-2.2.0/contrib.
#cpS99snort/etc/init.d/snort
配置snort启动文件,使用文本编辑软件编辑/etc/init.d/snort找到此行并进行修改
CONFIG=/etc/snort/snort.conf//指定配置文件路径
#SNORT_GID=nogroup
再找到“-g$SNORT_GID”,将此处去掉
#cd/etc/init.d
#chmod755snort//改变snort的访问权限
#cd/etc/rc3.d
#ln–s../init.d/snortS99snort
#ln–s../init.d/snortK99snort
#cd/etc/rc5.d
#ln–s../init.d/snortS99snort
#ln–s../init.d/snortK99snort
接下来建立snort的数据库以及设定权限
#/usr/local/mysql/bin/mysql//启动MySQL
首先设置MySQL的root用户登录密码:
mysql>SETPASSWORDFORroot@localhost=PASSWORD('new_password');
>QueryOK,0rowsaffected(0.25sec)
建立数据库snort:
mysql>createdatabasesnort;
>QueryOK,1rowaffected(0.01sec)
为root用户设置localhost上的snort数据库插入和查询的权限:
mysql>grantINSERT,SELECTonroot.*tosnort@localhost;
>QueryOK,0rowsaffected(0.02sec)
设置snort数据库的密码:
mysql>SETPASSWORDFORsnort@localhost=PASSWORD('new_password');
>QueryOK,0rowsaffected(0.25sec)
为snort用户设置对localhost上的snort数据库建立、插入、查询、删除、更新的权限:
mysql>grantCREATE,INSERT,SELECT,DELETE,UPDATEonsnort.*tosnort@localhost;
>QueryOK,0rowsaffected(0.02sec)
为snort用户设置对snort数据库建立、插入、查询、删除、更新的权限:
mysql>grantCREATE,INSERT,SELECT,DELETE,UPDATEonsnort.*tosnort;
>QueryOK,0rowsaffected(0.02sec)
退出:
mysql>exit
>Bye
下面添加snort数据库的表(在snort-2.2.0目录下操作),首先添加snort数据库。
#/usr/local/mysql/bin/mysql-uroot-p<./contrib/create_mysqlsnort
#Enterpassword:
使用刚才设定的密码进入,然后进入contrib目录下,将snort数据库所需要的表(在snortdb-extra.gz中)全部使用snort用户导入snort表中。
#zcatsnortdb-extra.gz|/usr/local/mysql/bin/mysql–psnort
导入完毕后检验一下snortDB的建立是否正确
#/usr/local/mysql/bin/mysql–p
>Enterpassword:
mysql>SHOWDATABASES;//查看所有数据库
+----------+
|Database|
+----------+
|mysql|
|snort|
|test|
+----------+
3rowsinset(0.00sec)
然后使用snort数据库:
mysql>usesnort
>Databasechanged
mysql>SHOWTABLES;//查看snort中的表
+------------------+
|Tables_in_snort
+------------------+
|data
|detail
|encoding
|event
|flags
|icmphdr
|iphdr
|opt
|protocols
|reference
|reference_system
|schema
|sensor
|services
|sig_class
|sig_reference
|signature
|tcphdr
|udphdr
+------------------+
19rowsinset(0.00sec)>Bye
如果snort是这19张表则表示数据库建立成功。
1.5.4控制台的建立
安装jpgraph:
ACID是基于Web管理的图形化用户接口,它可以采用jpgraph库来创建表示入侵数据的图表,创建的图形图表可以用来帮助掌握在这一段时间内入侵事件的走向,可以预测攻击的发展趋势。
这种图形库有很多,也可以选择PHPLOT或者Gd来代替。
#cdusr/local/src
#cpjpgraph-1.12.2.tar.gz/www/htdocs//将压缩文件复制到/www/htdocs
#cd/www/htdocs
#tar–zxvfjpgraph-1.12.2.tar.gz//直接解压即可,不需要安装
#rm–rfjpgraph-1.12.2.tar.gz//将安装后没用的文件删除
#cdjpgraph-1.12.2
#rm–rfREADME
安装adodb:
要想开发可以访问各种类型的数据库的PHP代码,必须有一个可以对所有的数据库提供通用接口的库,这样可以使用户可以自由选择最适合这个应用程序的数据库类型了。
ADODB库就可以对许多种数据库提供通用的访问方式,它可以支持目前应用的各种数据库类型:
MySQL、Oracle、SQLServer,Sybase等。
#cdusr/local/src
#cpadodb.tgz/www/htdocs/
#cd/www/htdocs
#tar–zxvfadodb.tgz
#rm–rfadodb.tgz
#安装ACID:
ACID是Snort入侵检测系统控制台部
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 入侵 检测 linux 课程设计 指导书