Linux -- ***检测系统(IDS)介绍及应用(1)

1、***检测工具简介php

Internet上的服务器通常都会被安置在防火墙的DMZ(Demilitarized Zone)区,受到防火墙的保护。这在必定程度能够防止具备已知非法特征的危险链接和恶意***,可是却防止不了合法用户的非法访问。什 么 时候会出现合法用户的非法访问呢?举例说明,好比,合法用户的机器被他人控制,成为了***的***跳 板,或者是合法用户想作一些别有用心的探测等。除此以外,有些***者还会用端口扫描程序扫描服务器的全部端口,以收集有用的信息(比 如,哪些端口是打开的?哪些是关闭的? )。服务器端口被扫描每每是***的前奏。防火墙的脚本大都 是基于规则的静态表示,对于网络上动态的探测就显 得有点一筹莫展。所以,如今正在造成一个新的安全学科领域,称为“***检测”。css


***检测工具主要是用来检测已经发生的和正在进行的***, 有些工具甚至能够和防火墙实现“联动”, 采起必定的措施来阻止这些***。    html

目前***检测技术采起的措施主要分为主动和被动两种。前端

主动 方式会经过网络监测器监听网络通讯,一旦 察觉到可疑的活动(好比特定数据包的流入), 就会采起相应的措施。 当网络上有瞬间的***及大流量非法数据发生时,主动方式容许系统在***者发动***的第一时间内作出反应,把***者狙击在外。被动方式是经过过后分析日志记 录,当注意到有可疑活动时,系统才会采起相应的措施。     主流的***检测工具软件有CHKWTMP、TCPLogd、Shadow、Snon、MoM等。其中,MoM 比较复杂,功能也 很强劲,支持分布式的***检测。本文重点介绍简单实用的PortSentry。PortSentry是 ***检测工具中配置最简单、效果最直接的工具之一。PortSentry是Abacus工 程的一个组成部分。Abacus工 程的目标是创建一个基于主机的网络***检测系统,能够从http://www.psonic.com的到关于Abacus工 程更为详细的信息。它能够实时检测几乎全部类型的网络扫描,并对扫描行为 作出反应。一旦发现可疑的行为,PortSentry可 以采起以下一些特定措施来增强防范:mysql

◆ 给出虚假的路由信息,把全部的信息流都重定向到一个不存在的主机;linux

◆ 自动将对服务器进行端口扫描的主机加到TCP-Wrappers的/etc/hosts.deny文 件中去;web

◆ 利用Netfilter机制, 用包过滤程序,好比iptables和ipchain等, 把全部 非法数据包(来自对服务器进行端口扫描的主机)都 过滤掉;sql

◆ 经过syslog()函数给出 一个目志消息,甚至能够返回给扫描者一段警告信息。数据库


2、PortSentry的安装配置下面详细介绍PortSentry工具 的安装和配置方法。apache

1.安装从http://sourceforge.net/projects/sentrytools/下 载软件的最新版portsentry-1.2.tar.gz,用root用 户执行以下命令 进行安装:#tar zxvf portsentry-1.2.tar.gz#cd portsentry-1.2#make#make install2.修改配置文件portsentry.conf经过PortSentry进行 ***检测,首先须要为它定制一份须要监视的端口清单,以及相应的阻止对策。而后启动后台进程对这些端口进行检测,一旦发现有人扫描这些端口,就启动相应的 对策进行阻拦。

(1)设置端口清单下面给出portsentry.conf中关于端口的默认配置情 况:#Un-comment these if you are really anal;#TCP_PORTS="1,7,9,11,15,70,79,80,109,110,111,119,138,139,143,512,513,514,515,540,636,1080,1424,2000,2001,[..]#UDP_PORTS="1,7,9,66,67,68,69,111,137,138,161,162,474,513,517,518,635,640,641,666,700,2049,31335,27444,34555,[..]#Use these if you just want to be aware:TCP_PORTS="1,11,15,79,111,119,143,540,635,1080,1524,2000,5742,6667,12345,12346,20034,27665,31337,32771,32772,[..]UDP_PORTS="1,7,9,69,161,162,513,635,640,641,700,37444,34555,31335,32770,32771,32772,32773,32774,31337,54321"#Use these for juse bare-bones#TCP_PORTS="1,11,15,110,111,143,540,635,180,1524,2000,12345,12346,20034,32771,32772,32773,32774,49724,54320"#UDP_PORTS="1,7,9,69,161,162,513,640,700,32770,32771,32772,32773,32774,31337,54321"能够有选择地去掉 前面的注释来启用默认配置,也能够根据本身的实际情}兄 定制一份新的清单,格式和原来的同样便可。端口列表要根据具体状况而定,假如服务器为Web服务 器.那么Web端口就不须要监视. 反之,若是是FTP服 务器,那么监视Web端口也是有必要的。(2)给定相关文件在portsentry.conf中还要添加以下代码.用以指定相 关文件的位置:#此文件记录容许合法扫描服务器的主机地址IGNORE_FILE="/usr/local/psionic/portsentry/portsentry.ignore"#此文件中保留了以往全部***主机的IP历史记录HISTROY_FILE="/usr/lcal/psionic/portsentry/portsentry.history"#此文件中是已经被阻止链接的主机IP记录BLOCKED_FILE="/usr/local/psionic/portsentry/portsentry.blocked"(3)设置路由重定向经过配置portsentry.conf文件,能够设置一条虚拟路 由记录,把数据包重定向到一个未知的主机.使之没法获取信息。相应配置代码以下:#Generic#KILL_ROUTE="/sbin/route add $TARGET$ 333.444.555.666"#Generic LinuxKILL_ROUTE="/sbin/route add -host $TARGET$ gw 333.444.555.666针对不一样的平台有不一样的路由命令.在配置文件中选择适台本身平台的命令便可。(4)利用其它工具直接利用Linux中的ipchain,iptables,ipfw和Netfilter等 命 令,能够切断***主机的链接:KILL_ROUTE="/usr/local/sbin/iptables -I INPUT -s $TARGET$ -j DROP"也能够直接把***者的IP记录到/etc/hosts.deny文 件中,利用TCP-Wrappers保 护机制来防止***:KILL_HOSTS_DENY="ALL:$TARGET$ # Portsentry blocked"(5)定制警告信息能够定制一条警告信息,嘲笑一下***者。不过,手册上建议不要使用 该选项,由于这样作可能会暴露主机的IDS系统。PORT_BANNER="** UNAUTHORIZED ACCESS PROHIBITED *** YOUR CONNECTION ATTEMPT HAS BEEN LOGGED. GO AWAY."修改完毕后,改变文件的权限.以保证其安全性:#chmod 600 /usr/local/psionic/portsentry/portsentry.conf3.配置portsentry.ignore文 件/usr/psionic/portsentry/portsentry.ignore文件中 设置了但愿PortSentry忽略 的主机IP, 即允 午合法扫描的主机地址下面是配置状况:#Put hosts in here you never want blocked,This includes the IP addresses#of all local interfaces on the protected host(i.e virtual host,mult-home)#keep 127.0.0.1 and 0.0.0.0 to keep people from playing games.127.0.0.1/320.0.0.0#Exclude all local interfaces    全部的本地网络IP192.168.0.223192.168.254.1127.0.0.1#Exclude the default gateway(s) 默认网关IP192.168.0.10#Exclude the nameservers     (域名服务器IP)202.101.170.3202.96.9.18修改完成后一样须要改变文件默认的权限:#chmod 600 /usr/local/psionic/portsentry/portsentry.ignore


3、启动检测模式    最后介绍一下PortSentry的 启 动检测模式。对应TCP和UDF两种协 议方式.分别 有三种启动模式,以下所示:

◆ portsentry-tcp,TCP的 基本端口绑定模式;

◆ portsentry-udp,UDP的 基本端口绑定模式;

◆ portsentry-stcp,TCP的 秘密扫描检测模式;

◆ portsentry-sudp,UDP的 秘密扫描检测模式;

◆ portsentry-atcp,TCP的 高级秘密扫描检测模式;

◆ portsentry-audp,UDP的 高级秘密扫描检测模式。   

 一 般状况下,建议使用秘密扫描检测模式或高级秘密扫描检测模式。使用高级秘密扫描检测模式(Advanced Stealth Scan Detection Mode),PortSentry会 自动检查服务器上正在运行的端口, 而后把这些端口从配置文件中移去, 只监控其它的端口。这样会 加快对端口扫描的反应速度,而且只占用不多的CPU时间。启动PortSentry的命 令以下:

#/usr/psionic/portsentry/portsentry -atcp#/usr/psionic/portsentr/portsentr -sudp  

 能够把启动命令加到“/etc/rc.d/rc.local” 脚本文件中,果想让它和其它后台进程同样能够随时启动、中止并查看进程状态, 能够去这样当从新启动计算机的时候PortSentry就 会自动运行。若是想让它和其它后台进程同样能够随时启动、中止并查看进程状态,能够去http://linux.cudeso.be/linuxdoc/portsentry.php下 载一个后台管理脚本,把该脚本放在/etc/rc.d/下 对应的运行级别目录中便可。


4、测试    启动PortSentry后, 能够用扫描器扫描服务器,进行测试PortSentry检测到扫描后,会采起措施进行阻击,并在/Usr/local/psionic/portsentry 目录下生成对应的portsentry.blocked.atcp文件或portsentry.blocked.audp文件,文件记录了发动***的主机的信息。    同时,TCP-Wrappers会 把非法主机的IP添加到/etc/host.deny文 件中。这样既切断了与非法主机之间的通讯,又在服务器上还保留了其犯罪的证据和时间记录,让它无处遁形,不可能再有进一步的非法行为。

2、简介Linux中的IDS***检测工具

简单介绍几款Linux下的IDS***检测工具 psad、Apparmor、SELinuxu等.

IDS新宠:PSAD

Psad是端口扫描***检测程序的简称,它做为一个新工具,能够与iptables和Snort等紧密合做,向咱们展现全部试图进入网络的恶意企图。这是笔者首选的Linux***检测系统。它使用了许多snort工具,它能够与fwsnort和iptables的日志结合使用,意味着你甚至能够深刻到应用层并执行一些内容分析。它能够像Nmap同样执行数据包头部的分析,向用户发出警告,甚至能够对其进行配置以便于自动阻止可疑的IP地址。

事实上,任何***检测系统的一个关键方面是捕获并分析大量的数据。若是不这样作,那只能是盲目乱来,并不能真正有效地调整IDS。咱们能够将PSAD的数据导出到AfterGlow 和 Gnuplot中,从而能够知道究竟是谁正在***防火墙,并且是以一种很友好的界面展现。

老当益壮:Snort

正如一位可信任的老人,随着年龄的增加,Snort也愈发成熟。它是一款轻量级且易于使用的工具,能够独立运行,也能够与psad和iptables一块儿使用。咱们能够从Linux的发行版本的程序库中找到并安装它,比起过去的源代码安装这应该是一个很大的进步。至于保持其规则的更新问题,也是一样的简单,由于做为Snort的规则更新程序和管理程序,oinkmaster也在Linux发行版本的程序库中。 Snort易于管理,虽然它有一些配置上的要求。要开始使用它,默认的配置对大多数网络系统并不适用,由于它将全部不须要的规则也包括在其中。因此咱们要作的第一件事情是清除全部不须要的规则,不然就会损害性能,并会生成一些虚假的警告。

另一个重要的策略是要以秘密模式运行Snort,也就是说要监听一个没有IP地址的网络接口。在没有为它分配IP地址的接口上,如ifconfig eth0 up,以-i选项来运行Snort,如snort –i eth0。还有可能发生这样的事情:若是你的网络管理程序正运行在系统中,那它就会“有助于”展示出尚未配置的端口,所以建议仍是清除网络管理程序。

Snort能够收集大量的数据,所以须要添加BASE(基本分析和安全引擎),以便于得到一个友好的可视化的分析工具,它以较老的ACID(***数据库分析控制台)为基础。

简洁方便:chkrootkit和rootkit

Rootkit检测程序chkrootkit和rootkit Hunter也算是老牌的rootkit检测程序了。很明显,在从一个不可写的外部设备运行时,它们是更可信任的工具,如从一个CD或写保护的USB驱动器上运行时就是这样。笔者喜欢SD卡,就是由于那个写保护的的开关。这两个程序能够搜索已知的rooktkit、后门和本地的漏洞利用程序,而且能够发现有限的一些可疑活动。咱们须要运行这些工具的理由在于,它们能够查看文件系统上的/proc、ps和其它的一些重要的活动。虽然它们不是用于网络的,但却能够快速扫描我的计算机。

多面手:Tripwire

Tripwire是一款***检测和数据完整性产品,它容许用户构建一个表现最优设置的基本服务器状态。它并不能阻止损害事件的发生,但它可以将目前的状态与理想的状态相比较,以决定是否发生了任何意外的或故意的改变。若是检测到了任何变化,就会被降到运行障碍最少的状态。

若是你须要控制对Linux或UNIX服务器的改变,能够有三个选择:开源的Tripwire、服务器版Tripwire、企业版Tripwire。虽然这三个产品有一些共同点,但却拥有大量的不一样方面,使得这款产品能够知足不一样IT环境的要求。

如开源的Tripwire对于监视少许的服务器是合适的,由于这种情形并不须要集中化的控制和报告;服务器版Tripwire对于那些仅在Linux/UNIX/Windows平台上要求服务器监视并提供详细报告和最优化集中服务器管理的IT组织是一个理想的方案;而企业版Tripwire对于须要在Linux/UNIX/Windows服务器、数据库、网络设备、桌面和目录服务器之间安全地审核配置的IT组织而言是最佳选择。

应用IDS***检测工具,为你节省大部分时间。


3、IDS***检测系统搭建(linux)

Snort 它是一个多平台的、实时流量分析的***检测系统。Snort是一个基于libpcap的数据包嗅探器并能够做为一个轻量级的网络***检测系统。

snort有三种工做模式:

一、嗅探器

嗅探器模式:是从网络上读取数据包并做为接二连三的流显示在终端上。

二、数据包记录器

数据包记录器:是把数据包记录到硬盘上。

三、网络***检测系统。

网路***检测:它是可配置的(因此会相对是比较复杂的)。

 

工做原理:

是由于可以对网络上的数据包进行抓包,但区别于嗅探器的它可以根据自定义规则来进行相应和处理。根据如下的规则有五种响应的机制。

Activation (报警并启动另一个动态规则链)

Dynamic (由其它的规则包调用)

Alert (报警)

Pass (忽略)

Log (不报警但记录网络流量)

 

Snort经过在网络TCP/IP的5层结构的数据链路层进行抓取网络数据包,抓包时需将网卡设置为混杂模式,根据操做系统的不一样采用libpcap或winpcap函数从网络中捕获数据包;而后将捕获的数据包送到包×××进行解码。

 

Snort的运行

主要是经过各插件协同工做才使其功能强大,因此在部署时选择合适的数据库,Web服务器,图形处理程序软件及版本也很是重要。

 

不足:

Snort之因此说他是轻量型就是说他的功能还不够完善,好比与其它产品产生联动等方面还有待改进;Snort由各功能插件协同工做,安装复杂,各软件插件有时会因版本等问题影响程序运行;Snort对全部流量的数据根据规则进行匹配,有时会产生不少合法程序的误报。

 

***检测系统:IDS

***防御系统:IPS

 

IDS是防御检测、IPS是防御功能;

SessionWall :CA公司出品、图形界面、能够流量和程序全面监控经过报警和阻塞规则进行相应。

RealSecure :ISS RealSecure是一种实时监控软件,它包含控制台、网络引擎和系统代理三个部分组成。RealSecure的模板包括安全事件模板、链接事件模板和用户定义事件模板。

IDS从本质上能够分红两类:网络型IDS(NIDS)和主机型IDS(HIDS)这两种IDS。

基于主机的叫HIDS (软件)snort(用于没有被防火墙检测出来的***)。须要安装到被保护的主机、(能够查看流量、日志、用户行为和一些文件)

基于网络的叫NIDS (硬件)神州数码 H3C 都有(硬件产品),安装须要和交换机来结合的;

 

工做原理:

IDS监听端口:(收集它所关心的报文

特征比较:IDS 提取的流量统计特征值、与特征库比对;

报警:匹配度较高的报文刘来那个将被认为是进攻,IDS将报警。

【信息的收集 --- 分析– 检测是否报警】

基于主机的应用检测;也只装在重要的主机上面。

基于网络的***检测:就要部署在网络设备上。

 

IDS的部署位置(snort):

142520765.png


linux下的应用:(示例)

142527156.png

平台:

Linux5.4

软件包

adodb514.zip

(一种 PHP 存取数据库的中间函式组件、对php优化的一个数据库支持;)

base-1.4.5.tar.gz

(是一个用来查看Snort IDS告警的Web应用程序)

snort-2.8.0.1-1.RH5.i386.rpm

(***检测系统)

snort-mysql-2.8.0.1-1.RH5.i386.rpm

(snort与数据库结合器件)

snortrules-snapshot-2.8.tar.gz

(***检测规则库)

 

安装:

rpm -ivh snort-2.8.0.1-1.RH5.i386.rpm

安装完成就能够直接来用行了;

在终端可直接执行指令:snort –v

若是在外网 ping 的时候、在这里就会有记录显示;(暂停 ctrl+Z )

把这个进程杀掉:pkill -9 snort

而后还能够再使用jobs 查看一下是否被杀掉;

还可使用 snort -vde (可是并无MAC地址)

信息记录:snort -vde l ./ &/dev/null & 就能够记录了、

 

***规则库的应用:

cd /etc/snort/rules/ (在这文件夹下)

而后进行规则导入、由于是一个压缩包、直接解压到/etc/snort/目录下就能够了:

tar -zxvf snortrules-snapshot-2.8.tar.gz –C /etc/snort/

导入以后在来到 cd /setc/snort/rules/ 目录下查看;就会有不少规则了。

(软件的版本过旧相对的***规则库就很略不一样 资源也会显的老旧 尽可能随时更新)

 

规则的下一部分是协议

Snort当前分析可疑包的ip协议有四种:TCP 、UDP 、ICMP 、IP ;

(也许不久发展还会有 ARP、IGRP、GRE、OSPF、RIP、IPX )

若是检测的文件但愿记录到数据里面;因此这个***检测系统搭建须要安装的软件仍是比较多的:

mysql、apache、php、libpcap(linux下网络数据包捕获函数包)、adodb(能够对数据库优化)、snort(主程序)、base(是基本的分析和安全引擎)、-acid以项目的代码为基础、提供web的前端。

由于安装这些东西也尽量是使用yum来装:

编辑本地yum:

vim /etc/yum.repos.d/rhel-debuginfo.repo

[rhel-server]

name=Red Haterprise Linux server

baseurl=file:///mnt/cdrom/

enabled=1

gpgcheck=1

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-relase

 

挂载光盘进行yum安装

mkdir /mnt/cdrom

mount /dev/cdrom /mnt/cdrom/

yum 安装:

150416930.png

 

安装完成开启各类服务,而后chkconfig设置:

 

chkconfig httpd on

对于mysql须要设置口令(默认安装时是root用户是没有口令的)

mysqladmin–u root -p password ‘123’

再进一步在数据添加snort的数据库以及表格:

(由于咱们指望检测的信息放到mysql数据库里面去、放到什么数据库、还要在进一步的设置)

链接到数据库: mysql -u root -p

 

create database snort;

(新建snort数据库)

 

use snort;

( 使用snort数据库 )

show tables;

(在此进行添加表格、每见一个表格、都要添加一个表格的框架;可是呢这里能够直接导入、都是一些建立表格的字段之类的 )


161514325.jpg

导入表格:

161253533.jpg

chkconfig mysql on

(依然使用chkconfig设置)

 

而后还但愿snort检测的协议数据是需放置在数据库里面的、所以还要安装一个东东:

就是 snort-mysql-2.8.0.1-1.RH5.i386.rpm 包

( 一个snort与数据库的链接器件 )

vim /etc/snort/snort.conf

162933138.png

更改一些量

162910304.png

更改完成以后能够再启动snort、(能够作一些细致的命令、作一些详细的截获、挂载规则库、信息输出);而后能够看一下进程、是否已经启动了;

加载中...

或者也能够用jobs 进行查看是否正在运行着;

 

升级安装 pear

( 即:PHP扩展与应用库 )

pear install --force PEAR-1.8.1 (系统链接到了互联网、直接就能够升级)

pear upgrade pear (而后再更新一次)

而后再安装一些模块;(图形化界面的一些模块)

152403410.jpg

安装 adodb

adodb514.zip ( 它是用来对php优化的一个数据库支持 )

解压先:unzip adodb514.zip

而后把它也移动到/var/www/html/adodb 这个目录下。

mv adodb5 /var/www/html/adodb ( 便于还能够作名称的更改 )

 

base 安装

tar -zxvf base-1.4.5.tar.gz -C/var/www/html/

为方便操做能够更改一下名称:之后能够直接访问物理目录http://0.0.0.0/base

mv base-1.4.5/ base

而后再从新进入这个目录、还须要拷贝一些文件。

153746891.jpg

 

而后在/var/www/html/ 更改里面有个 base_conf.php 的配置文件;

更改以前仍须要做下base目录的权限设置:chmod o+w base/

就是这样:

154505599.jpg

 

(其实这个能够在网页之中直接进行设置、设置以后就造成了这个文件;经过物理访问http://192.168.1.101/base/setup/index.php 在里直接设置 ;可是呢有的可能默认设置的日志几倍过高、因此还须要编辑etc目录下的php.ini更改一下 )

例如这样提示:

155043260.jpg

而后就须要 vim /etc/php.ini

 

155404330.jpg

既然这样更改了、就还须要把apache重启然后从新进入:

一共有5部安装;语言设置、adodb路径:

160551469.png

而后设置一些数据库的相关:

 

160552594.png

界面的管理设置用户与口令:

160709270.png

 

接着也就进入了基本的分析与安全引擎:(建立base AG)

160553935.jpg

进入第5部:看到检测的一些协议。

162224519.jpg

 

(固然这个没数据 是由于没运行 )

从新启动、在作个Ping动做,新刷新一下网页:

163707495.jpg

或者利用工具作个端口扫描测试:

164534653.jpg

164536422.jpg

 以上就是linux环境下 搭建IDS***检测系统简要流程



参考:http://netsecurity.51cto.com/art/200912/170686.htm 

51cto.com/a/caozuoxitong/Linux/2010/0419/9702.html 

http://www.2cto.com/Article/201310/252742.html

相关文章
相关标签/搜索