您的位置:首页 > 编程语言 > PHP开发

构建基于Windows+MSSQL+IIS+php+Snort的IDS

2010-04-15 12:55 323 查看
1、在Windows 2003中安装IIS和SQL Server 2000+SP4,以及辅助工具WinRAR
2、在SQL Server 2000(一下简称mssql)中创建数据库snort和snort_archive
3、设置mssql为混合模式登录,创建登录账户acid和snort(为方便起见,本实例中所有账户的密码均设置为了“123”,请在工作中根据实际需求而设置)
4、分别指定acid和snort登录账户为snort和snort_archive数据库用户,并指定为db_owner角色
5、解压php-5.2.4-Win32到c:\php,
复制c:\php\php5ts.dll文件到%systemroot%\system32,
复制c:\php\php.ini-dist到%systemroot%并重命名为php.ini,
复制c:\php\ext下的php_gd2.dll与php_mysql.dll到%systemroot%\system32
6、修改c:\windows\php.ini如下:
指定output_buffering = On,register_globals = On
分别去掉”include_path = ".;c:\php\includes"“、“extension=php_gd2.dll”、“extension=php_mssql.dll”和”session.save_path = "/tmp"“前的分号,
并指定extension_dir="c:\php\ext"和session.save_path = "c:\windows\temp"
7、配置IIS支持PHP
在IIS控制台中,选择对应服务器的“Web 服务扩展”节点,右击在上下文菜单中选择“添加一个新的Web服务扩展”,在弹出对话框中定义扩展名称为php-5.2.4-Win32,在”要求的文件“中,添加c:\php\php5isapi.dll,动态库文件,并勾选“设置扩展状态为允许”前的复选框
新建c:\acid目录,在IIS中新建站点ACID,主目录为c:\acid,允许匿名访问,授予“执行”权限。完成后打开其属性,在”主目录“中点击”配置“,在”映射“中添加”应用程序扩展“,在弹出对话框中设置”可执行文件“为c:\php\php5isapi.dll,”扩展名”为php,点击“确定”完成设置
分别将c:\windwos\temp的完全控制权限、c:\acid和c:\php的读取及运行权限授予给“IUSR_ComputerName"账户
重启IIS服务
8、测试IIS对PHP的支持,在c:\acid创建一个index.txt文件,内容如下:
<?echo phpinfo();?>
保存后更改扩展名txt为php,再在IIS中配置ACID站点的属性,在其”文档“选项卡中删除默认的文件名,添加“index.php”,然后通过http://IP_Address来查看是否能够显示当前Apache服务器的信息,如果能够显示表明IIS和php工作基本正常
9、默认安装WinPcap_4_0_1
10、安装Snort_2_7_0_1_Installer,注意在向导中选择支持”MS SQL Server“,其它步骤选择默认,安装完成后,添加c:\snort\bin到系统环境变量PATH,为了使添加的系统环境变量生效,重启计算机
11、为snort添加预定义的规则,解压snortrules-snapshot-CURRENT.tar到c:\snort目录
12、在mssql中为snort的运行创建工作表,即在利用查询分析器分别定位到snort和snort_archive数据库,执行c:\snort\schemas\create_mssql脚本
13、安装adodb,解压缩adodb495a到c:\php\adodb 目录下
14、安装jpgrapg 库,解压缩jpgraph-2.2.tar到c:\php\jpgraph,
并且修改c:\php\jpgraph\src\jpgraph.php,添加如下一行
DEFINE("CACHE_DIR","/tmp/jpgraph_cache/");
15、安装acid,解压缩acid-0.9.6b23.tar到c:\acid 目录下,
并将c:\acid\acid_conf.php文件的如下各行内容修改为:
$DBlib_path = "c:\php\adodb";
$DBtype = "mssql";
$alert_dbname = "snort";
$alert_host = "localhost";
$alert_port = "";
$alert_user = "acid";
$alert_password = "123";
$archive_dbname = "snort_archive";
$archive_host = "localhost";
$archive_port = "";
$archive_user = "acid";
$archive_password = "123";
$ChartLib_path = "c:\php\jpgraph\src";
16、通过浏览器访问http://IP_Address/acid_db_setup.php,在打开页面中点取“Create ACID AG”按钮,让系统自动在mysql中建立acid 运行必须的数据库,在IIS中配置ACID站点的属性,在其”文档“选项卡中删除默认的文件名,添加"acid_main.php",并将其移动到列表顶部
17、简单的snort配置,打开c:\Snort\etc下的snort.conf文件,将下列各行修改如下:
dynamicengine c:\Snort\lib\snort_dynamicengine\sf_engine.dll
dynamicpreprocessor directory c:\Snort\lib\snort_dynamicpreprocessor
var RULE_PATH c:\snort\rules
include c:\snort\etc\classification.config
include c:\Snort\etc\reference.config
18、配置snort的输出插件,打开c:\Snort\etc下的snort.conf文件,添加如下行:
output database: alert, mssql, host=localhost dbname=snort user=snort password=123 sensor_name=n encoding=ascii detail=Full
(注意:如果mysql和snort不在同一台服务器上,要将“localhost”改为具体的mysql服务器的ip地址)
19、分别用以下命令测试Snort是否工作正常
c:\>snort -dev,能看到一只正在奔跑的小猪证明工作正常
c:\>snort -W,查看本地网络适配器编号
c:\>snort –c c:\snort\etc\snort.conf –l c:\snort\log –devX,测试配置文件能够支持工作,但是,在使用过程中snortrules-snapshot-CURRENT.tar包中的web-misc.rules有问题,所以为了其他内容能后正常进行入侵检测,修改c:\Snort\etc\snort.conf,在include $RULE_PATH/web-misc.rules前加#号将其注释掉
20、可以选用IDSCenter配置snort项,采用默认安装IDSCenter11rc4来完成
21、使用SAM,需要Java支持,所以首先安装jre-1_5_0_12-windows-i586-p安装好后,解压sam_20050206_bin到c:\,进入才c:\sam\,直接双击sam.jar运行SAM软件
22、运行snort捕获数据包,进行入侵检测,在命令提示符中输入:
c:\>snort -c "c:\snort\etc\snort.conf" -i 2 -l "c:\snort\logs" -deX
-X 参数用于在数据链接层记录raw packet 数据
-d 参数记录应用层的数据
-e 参数显示/记录第二层报文头数据
-c 参数用以指定snort 的配置文件的路径
-i 参数指定监视的网络适配器的编号
并使用SAM 和ACID 监视服务器情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php IIS IDS Snort MSSQL