在Snort安装路径下有一个rules文件夹,里面定义了一些检测规则,如果检测到符合规则的数据,会自动根据规则定义的动作做出相应的响应。用户可以在该文件夹下定义更适合自己网络环境的规则文件,然后在配置文件里将其包括进去,比如:#include $RULE_PATH/myrule.rules。
Snort数据库的配置
数据库作为数据存储的部件,也要进行相应设置,主要有以下的两个部分:
建立表单。Snort目录下,自带了MS-SQL、oracle等数据库创建表单的文件,用户在查询分析器里打开相应的表单创建文件,并运行就完成了Snort表单的创建。
数据源驱动。在计算机数据源 (ODBC)里的“用户DSN”里添加数据源,在创建过程中选择"Snort"数据库,并填好能访问该数据库的用户名以及密码,比如用户名为"sa" ,密码"sa" 。
Snort网络入侵检测的使用
snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的数据流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网络入侵检测模式是最复杂的,但是可以根据用户的需求进行配置。可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。Snort是在命令行模式下运行的,在Windows环境下,要借助于“命令提示符”。
下面对网络入侵检测系统进行介绍:
snort最重要的用途还是作为网络入侵检测系统(NIDS),使用下面命令行可以启动这种模式:
Snort -dev -l /../log -h 192.168.1.0/24 -c /../etc/snort.conf
其中“/../”表示Snort文件的安装路径。
snort.conf是规则集文件。snort会对每个包和规则集进行匹配,发现这样的包就采取相应的行动。如果不指定输出目录,snort就输出到/var/log/snort目录。注意:如果想长期使用snort作为自己的入侵检测系统,最好不要使用-v选项。因为使用这个选项,使snort向屏幕上输出一些信息,会大大降低snort的处理速度,从而在向显示器输出的过程中丢弃一些包。此外,在绝大多数情况下,也没有必要记录数据链路层的包头,所以-e选项也可以不用:
snort -d -h 192.168.1.0/24 -l ./log -c snort.conf
这是使用snort作为网络入侵检测系统最基本的形式,日志符合规则的包,以ASCII形式保存在有层次的目录结构中。
在运行Snort工具时,界面如图4-7所示。
图4-7 Snort运行界面
系统平台的其他重要配置
该系统配置在win2k系统下,为了系统能正常的工作,还需要以下配置:
下载数据库动态驱动解压到本地某一文件夹中,该驱动包括:msbase.jar、mssqlserver.jar、msutil.jar并在环境变量中给出其路径。
结果最后显示java开发的可视化界面上,对于Aglet的安全设置默认是不允许的,这就需要在其策略文件(F:\Documents and Settings\Administrator\.aglets\security\aglets.policy)里添加安全规则:permission java.lang.RuntimePermission "exitVM";
本系统要对F:\Snort\rules\myrules.rules文件进行读写操作,所以必须要在Aglet的策略文件中要添加以下语句:
permission java. io. FilePermission " F : \\ Snort \\ rules \\ myrules. rules " , " read " ;
permission java . io . FilePermission " F : \\ Snort \\ rules \\ myrules . rules " , " write " ;
系统实现技术
入侵检测数据收集
启动snort工具
cd到F:\snort\bin下输入命令:snort -d -h 222.18.122.0/25 -l f:\snort\log -c f:\snort\etc\snort.conf -i 2
其中-i 2指通过本地网卡的接口来检测,其中编号为2,对于不同的主机,编号可能有所不同。
具体实现中采用的关键技术
数据的携带。该系统使用了单项链表实现在访问分布式计算机的时候,将分布式数据库的数据带回到代理主机。
分析结果的显示。在分析完数据,将可疑地址通过java可视化界面显示在屏幕上。
分析结果的记录。通过java对规则文件的操作,通过自动添加规则对可疑入侵行为来加以限定。
代码分析模块
该模块主要包括两个部分:移动遍历代理和数据分析处理。移动遍历代理主要完成数据的提取,数据分析处理主要完成数据的分析记录,自动增加相应的规则禁止入侵地址再次访问。
该模型实现的代码如下:
package design;
import com.ibm.aglet.*;
import com.ibm.aglet.event.*;
import java.net.*;
import java.net.URL;
import java.sql.*;
import java.util.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.*;
public class design extends Aglet{
int _theRemote=0;
URL target;
String[] ip;
node end,head,temp,search,pre;
class node implements Serializable //数据移动前序列化
{
String IpSo;
int Times;
node next;
}
//实现数据从数据库的读取
private void myJDBC()
{
//把驱动、数据源通过变量传递
String Driver="sun.jdbc.odbc.JdbcOdbcDriver";
String source="jdbc:odbc:snort";
try{
//查找用于JDBC驱动的类,这种查找会使得JAVA虚拟机装入该类,这个类的静态
//初始化语句块会对驱动程序进行初始化,从而下面可直接使用该驱动程序进行
//数据库连接,无需要做其他额外的事情
Class.forName(Driver);
}catch(ClassNotFoundEx
首页 上一页 2 3 4 5 6 7 8 下一页 尾页 5/8/8
免费基于Aglet的入侵检测系统的实现(五)由毕业论文网(www.huoyuandh.com)会员上传。