热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

IDS入侵检测系统(snort)刚出炉滴

第一部分IDS入侵检测系统简单介绍IDS依照一定的安全策略,通过软件或者硬件,对网络、系统的运行状况进行监控,尽可能发现各种攻击企图、攻击行为和结果,以此保证网络系统资源的机密性、完整性

第一部分 IDS入侵检测系统简单介绍

IDS依照一定的安全策略,通过软件或者硬件,对网络、系统的运行状况进行监控,尽可能发现各种攻击企图、攻击行为和结果,以此保证网络系统资源的机密性、完整性和可靠性。一般来说IDS是作为防火墙的补充,处于防火前之后,可对网络进行实时监测,并记录。

snort作为一个轻量级的入侵监测系统,具有一下几个特点:

(1)占用资源少,对网络性能影响小;

(2)支持系统广泛,可以跨平台使用;

(3)snort有三种主要的模式:信息报嗅探器、信息报记录器和成熟的入侵检测系统

(4)采用误用检测模型,首先建立入侵行为特征库,然后在检测过程中,将收集到的数据包和特征码进行比较,得出是否入侵的结论;

(5)它是用C语言写的开放源代码。

snort的体系结构

(1)数据收集:snort使用libpcap收集数据

(2)数据分析:包含包解码和探测引擎两部分。包解码为探测引擎准备数据,探测引擎按照启动时加载的规则,对每个数据进行分析。

(3)日志记录/告警记录:日志和告警时两个不同的子系统。日志将包解码收集到的信息记录下来,默认情况下,写到/var/log/snort文件夹中,告警日志会记录到/var/log/snort/alert 文件中。

简单的画个原理图,表示数据流向


第二部分  系统搭建

一、搭建LAMP架构

这个比较简单,而且这篇文章内容表较多,所以这里就不做说明了

二、安装snort需要的一些软件

1、libpcap是linux平台下的网络数据包捕获的含书包,大多数网络监控软件都是以它作为基础

在安装libpcap前,还要安装两个软件

[root@localhost soft]# wget ftp://ftp.gnu.org/gnu/bison/bison-2.4.1.tar.bz2

[root@localhost soft]# tar xf bison-2.4.1.tar.bz2

[root@localhost soft]# cd bison-2.4.1
[root@localhost bison-2.4.1]# ./configure && make && make install


[root@localhost soft]# wget http://nchc.dl.sourceforge.net/project/flex/flex/flex-2.5.35/flex-2.5.35.tar.bz2

[root@localhost soft]# tar xf flex-2.5.35.tar.bz2

[root@localhost flex-2.5.35]# ./configure && make && make install


接下来就是安装libpcap了

[root@localhost soft]#  wget http://www.tcpdump.org/release/libpcap-1.2.1.tar.gz

[root@localhost soft]# tar xf libpcap-1.2.1.tar.gz 
[root@localhost soft]# cd libpcap-1.2.1
[root@localhost libpcap-1.2.1]# ./configure --prefix=/usr/local/libpcap 

[root@localhost libpcap-1.2.1]# make

[root@localhost libpcap-1.2.1]# make install


2、daq,snort编译时会用到该库

[root@localhost soft]# wget http://www.snort.org/dl/snort-current/daq-0.6.2.tar.gz

[root@localhost soft]# tar xf daq-0.6.2.tar.gz 
[root@localhost soft]# cd daq-0.6.2

[root@localhost daq-0.6.2]# ./configure  && make && make install


3、libdnet  通用网络安全开发包

[root@localhost soft]# wget http://libdnet.googlecode.com/files/libdnet-1.12.tgz

[root@localhost soft]# tar xf libdnet-1.12.tgz 
[root@localhost soft]# cd libdnet-1.12

[root@localhost libdnet-1.12]# ./configure && make && make install

4、snort的安装

[root@localhost soft]# wget http://www.procyonlabs.com/mirrors/snort/snort-2.9.2.1.tar.gz

[root@localhost soft]# tar xf snort-2.9.2.1.tar.gz 
[root@localhost soft]# cd snort-2.9.2.1

[root@localhost snort-2.9.2.1]# ./configure --with-mysql=/usr/local/mysql --with-libpcap-includes=/usr/local/libpcap/include --with-libpcap-libraries=/usr/local/libpcap/lib

[root@localhost snort-2.9.2.1]# make

[root@localhost snort-2.9.2.1]# make install

三、snort的相关配置

[root@localhost snort-2.9.2.1]# mkdir /etc/snort  ------snort的主配置文件目录
[root@localhost snort-2.9.2.1]# mkdir /var/log/snort  -------------snort的日志文件目录
[root@localhost snort-2.9.2.1]# groupadd snort  ---------创建snort用户组
[root@localhost snort-2.9.2.1]# useradd -g snort -s /sbin/nologin  snort   ------------创建snort用户

[root@localhost soft]# tar xf snortrules-snapshot-2920.tar.gz -C /etc/snort/
[root@localhost soft]# cd /etc/snort/
[root@localhost snort]# ls
etc  preproc_rules  rules  so_rules
[root@localhost snort]# cp etc/* /etc/snort/

[root@localhost snort]# chown snort.snort /var/log/snort----------修改相关目录的属主和属组
[root@localhost snort]# touch /var/log/snort/alert
[root@localhost snort]# chown snort.snort /var/log/snort/alert 
[root@localhost snort]# chmod 600 /var/log/snort/alert ---------------防止其他用户修改

[root@localhost snort]# mkdir /usr/local/lib/snort_dynamicrules
[root@localhost snort]# cp /etc/snort/so_rules/precompiled/RHEL-6-0/x86-64/2.9.2.0/*.so  /usr/local/lib/snort_dynamicrules/  -------------库文件

[root@localhost RHEL-6-0]# cp x86-64/2.9.2.0/*.so /usr/local/lib/snort_dynamicrules/


[root@localhost snort_dynamicrules]# vi /etc/snort/snort.conf#修改下面这几行

var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules

output unified2: filename snort.log, limit 128


四、mysql数据库的修改

[root@localhost snort_dynamicrules]# mysql   ------我这里的数据暂时没有密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 470
Server version: 5.1.36-debug-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database snort;        --------------创建snort数据库

mysql> grant all privileges on snort.* to snort@'localhost' with grant option ; -------------给snort用户授权
Query OK, 0 rows affected (0.12 sec)


mysql> set password for snort@localhost = password('aixocm');  --------这也是一种修改mysql用户密码的方式哦
Query OK, 0 rows affected (0.00 sec)


mysql> exit
Bye
[root@localhost snort_dynamicrules]# cd /soft/snort
snort-2.9.2.1/                   snortrules-snapshot-2920.tar.gz
snort-2.9.2.1.tar.gz             
[root@localhost snort_dynamicrules]# cd /soft/snort-2.9.2.1

[root@localhost snort-2.9.2.1]# cd schemas/
[root@localhost schemas]# ls
create_db2    create_mysql       create_postgresql  Makefile.am
create_mssql  create_oracle.sql  Makefile           Makefile.in
[root@localhost schemas]# mysql [root@localhost schemas]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 472
Server version: 5.1.36-debug-log Source distribution


Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| itop               |
| mysql              |
| snort              |
| test               |
+--------------------+
6 rows in set (0.00 sec)


mysql> use snort;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A


Database changed
mysql> show tables;
+------------------+
| Tables_in_snort  |
+------------------+
| data             |
| detail           |
| encoding         |
| event            |
| icmphdr          |
| iphdr            |
| opt              |
| reference        |
| reference_system |
| schema           |
| sensor           |
| sig_class        |
| sig_reference    |
| signature        |
| tcphdr           |
| udphdr           |
+------------------+
16 rows in set (0.00 sec)

五、base和adodb的安装

[root@localhost lib]# wget http://sourceforge.net/projects/secureideas/files/BASE/base-1.4.5/base-1.4.5.tar.gz

[root@localhost lib]# tar xf base-1.4.5.tar.gz -C /var/www/-----------/var/www是apache的DocumentRoot

[root@localhost lib]# cd /var/www/
[root@localhost www]# mv base-1.4.5 base

[root@localhost www]# wget http://nchc.dl.sourceforge.net/project/adodb/adodb-php5-only/adodb-511-for-php5/adodb511.zip

[root@localhost www]# unzip adodb511.zip

[root@localhost www]# mv adodb5 adodb

[root@localhost www]# chown daemon.daemon /var/www/base -R

六、base的页面安装部分

浏览器访问 http://127.0.0.1/base/setup/index.php


点击Continue


选择简体中文,下面输入adodb的路径/var/www/adodb 然后点击Continue


填入相关的mysql信息,点击continue


设置管理账号密码,点击continue


点击create base AG


可以看到红色部分表示成功,继续下一步点击 Now continue tostep 5...

然后就可以看到我们的base界面了





七、页面配置完成后,还需要安装一下图标的插件,这个时候就要求php必须得支持gd了

如果想让BASE起作用还得需要安装一些插件,必须联网才能安装

[root@localhost www]# pear install image_Canvas-alpha

WARNING: "pear/Image_Color" is deprecated in favor of "pear/Image_Color2"
downloading Image_Canvas-0.3.5.tgz ...
Starting to download Image_Canvas-0.3.5.tgz (54,486 bytes)
.............done: 54,486 bytes
downloading Image_Color-1.0.4.tgz ...
Starting to download Image_Color-1.0.4.tgz (9,501 bytes)
...done: 9,501 bytes
install ok: channel://pear.php.net/Image_Color-1.0.4
install ok: channel://pear.php.net/Image_Canvas-0.3.5


[root@localhost www]# pear install image_Graph-0.8.0

Did not download optional dependencies: pear/Numbers_Words, use --alldeps to download automatically
pear/Image_Graph can optionally use package "pear/Numbers_Words"
downloading Image_Graph-0.8.0.tgz ...
Starting to download Image_Graph-0.8.0.tgz (367,646 bytes)
...........................................................................done: 367,646 bytes
install ok: channel://pear.php.net/Image_Graph-0.8.0


[root@localhost www]# pear install Numbers_Roman
downloading Numbers_Roman-1.0.2.tgz ...
Starting to download Numbers_Roman-1.0.2.tgz (6,210 bytes)
.....done: 6,210 bytes
install ok: channel://pear.php.net/Numbers_Roman-1.0.2

八、测试snort

再次修改snort的配置文件

[root@localhost lib]# vi /etc/snort/snort.conf

将 511 # output database: alert, , user= password= test dbname= host=
    512 # output database: log, , user= password = test dbname= host=

这地方一定要注意,如果你跟我使用的是一样的版本,请你务必按照我的格式改,改版本存有bug,每一项后面都要加","而且之间不能有空格!要不然会报

Error: 

Fatal Error, Quitting..

改为

514  output database: alert, mysql, user=snort ,password=123456,dbname=snort, host=localhost    

515  output database: log, mysql, user=snort,password=123456,dbname=snort, host=localhost


将 110 var WHITE_LIST_PATH /etc/snort/rules
    111 var BLACK_LIST_PATH /etc/snort/rules

    488    whitelist $WHITE_LIST_PATH/white_list.rules, \
    489    blacklist $BLACK_LIST_PATH/black_list.rules

这四行注释掉,即在每行前面加#

将下面三行的# 去掉


接下来就是测试snort

[root@localhost snort]# snort -c /etc/snort/snort.conf


如果你可以看到这只小猪,那么就证明你成功了,呵呵

在这一步完成后,snort不会自己退出,需要使用ctrl+c自己终止退出。

再次打开浏览器http://127.0.0.1/base/base_main.php


我这里已经检测到数据了,但是数据不够,接下来我们需要更多的测试。

九、入侵测试

我推荐使用windows下的一个扫描工具X-way


点击确定

扫描完成后,再次打开页面http://127.0.0.1/base/base_main.php


鼠标点击,我圈中的那个100%查看详细的入侵记录






推荐阅读
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文由编程笔记小编整理,主要介绍了使用Junit和黄瓜进行自动化测试中步骤缺失的问题。文章首先介绍了使用cucumber和Junit创建Runner类的代码,然后详细说明了黄瓜功能中的步骤和Steps类的实现。本文对于需要使用Junit和黄瓜进行自动化测试的开发者具有一定的参考价值。摘要长度:187字。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
author-avatar
心灵de倾斜
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有