linux系统centos搭建***检测系统snort及问题总结与解答


 一、环境准备

1.安装Centos6(安装选择开发环境,这样可以少装一些开发包),设置NAT获取,让系统可以上网,外加一台XP用于测试(可用可不)。 




2.安装wget(本身不带)


 

3.更换源(也可以不换,有的源有时候一些软件没有和速度很慢,自行选择)

#mv /etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup

#wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

#yum clean all

#yum makecache



4.安装epel源

#yum install -y epel-release



5.下载文件的准备(一开始使用win10自身的ftp服务,上传至centos里,tar失败,传输格式不对,最后使用了SecureFX来进行传输,传输使用二进制),本人默认放到/root下



一、环境搭建(安装配置LMAP)

1.安装LMAP的组件(组件少一都会导致后面的工作出现错误)

#yum install -y httpd mysql-server phpphp-mysql php-mbstring php-mcrypt mysql-devel php-gd


如出现某个下载失败

继续下载


测试apache的安装



2.安装php插件

#yum install -y mcrypt libmcryptlibmcrypt-devel


下载安装之后,测试php页面

在/var/www/html目录下创建index.php文件,内容为



在浏览器网址栏处输入本机ip.index.php



3.安装pear插件

#yum install -y php-pear

#pear upgrade pear

#pear channel-update pear.php.net

#pear install mail    

#pear install Image_Graph-alphaImage_Canvas-alpha Image_Color Numbers_Roman

#pear install  mail_mime


命令照着一条一条输入就行,等待安装完成,如有提示安装失败的,就选择失败的继续安装,因为源有时候不稳定。(失败次数较多,要耐心,一定要看到OK)

4.安装adodb

#tar zxvf adodb519.tar.gz -C /var/www/html

#mv /var/www/html/adodb5/var/www/html/adodb



5.安装base

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

#mv /var/www/html/base-1.4.5/var/www/html/base



6.修改php.ini





修改后



7.设置html目录权限



8.设置adodb权限



9.配置mysql(由于是2.9.3之后版本的snort,所以要使用barnyard,mysql已经不支持。)


启动mysql

#service mysqld start

设置root密码为123456

#mysqladmin -u root -p password 123456

以root登陆mysql

#mysql -uroot -p

创建名为snort的数据库

>create database snort;

创建名为snort、密码为123456的数据库用户并赋予名为snort数据库权限

>grant create,select,update,insert,deleteon snort.* to snort@localhost identified by '123456';

退出

>quit

创建数据库表

#mysql -usnort -p -Dsnort </root/barnyard2-1.9/schemas/create_mysql

图如下:




看到确定即可



默认回车就行



密码123456



创建表,设置表账号密码权限,注意在数据库里面打完命令要加上;号



创建数据库表,密码输入上面设置的密码,这里为123456

10.配置base

#service mysqld start        启动mysql

#service httpd start                  启动apache

#service iptables stop       关闭防火墙


在浏览器输入http://192.168.160.131/base/setup/index.php  (IP换成自己的IP)




点击Continue



设置语言和BASE的路径



配置数据库   这里密码也为123456   点击Continue   (如果点了Continue)跳转的页面是空白,可以看文档后面的问题解答一。如果成功则会跳转至第三个页面



管理账号:snort   密码:123456



点击创建相应的表



点击之后可以看见这个页面,代表创建成功,将页面划到最低点击可以看到这个页面,代表BASE安装成功



二、安装配置snort+barnyard2

1.安装依赖包(软件赖以生存的包,缺一不可)

#yum install –y gcc flex bison zlib libpcaptcpdump gcc-c++ pcre* zlib* libdnet libdnet-devel


如有失败,请继续安装失败的,不可缺一。

2.libdnet

#tar zxvf libdnet-1.12.tgz

#cd libdnet-1.12

#./configure && make &&make install



最后显示这样就代表./configure成功



3.安装libpcap

#tar zxvf libpcap-1.0.0.tar.gz

#cd libpcap-1.0.0

#./configure && make &&make install



最后结束图



4.安装DAQ

#tar zxvf daq-2.0.4.tar.gz

#cd daq-2.0.4

#./configure && make &&make install



成功图

5.安装snort

#tar zxvf snort-2.9.7.0.tar.gz

#cd snort-2.9.7.0

#./configure && make &&make install



如果出现错误,请看文档的问题解答二。成功图如下



6.配置snort

创建需要的文件和目录

#mkdir /etc/snort

#mkdir /var/log/snort

#mkdir /usr/local/lib/snort_dynamicrules

#mkdir /etc/snort/rules

#touch /etc/snort/rules/white_list.rules/etc/snort/rules/black_list.rules

#cp /root/snort-2.9.7.0/etc/gen-msg.mapthreshold.conf classification.config reference.config unicode.map snort.conf/etc/snort/


这里就是创建目录和复制,唯一要注意的一个点就是CP的时候,要先进入/root/snort-2.9.7.0/etc/目录下,不然复制的时候复制不了,因为etc会冲突


 

 

编辑配置文件

#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

var WHITE_LIST_PATH /etc/snort/rules

var BLACK_LIST_PATH /etc/snort/rules

设置log目录

config logdir:/var/log/snort

配置输出插件

output unified2:filename snort.log,limit 128








对着修改就行别打错了

7.配置默认规则

#tar zxvf snortrules-snapshot-2970.tar.gz-C /etc/snort/

#cp /etc/snort/etc/sid-msg.map /etc/snort/



8.测试snort

#snort -T -i eth0 -c /etc/snort/snort.conf(注意查看自己的网卡名称)

参数解释:

-T      指定启动模式:测试

-i       指定网络接口

-c      指定配置文件

如果出现“success”的字样说明配置好了

按ctrl+c终止测试



9.安装barnyard2

#cd /root/barnyard2-1.9

#./configure --with-mysql--with-mysql-libraries=/usr/lib64/mysql/

#make && make install


成功图




10.配置barnyard2

创建需要的文件和目录

#mkdir /var/log/barnyard2

#touch /var/log/snort/barnyard2.waldo

#cp /root/barnyard2-1.9/etc/barnyard2.conf/etc/snort

修改配置文件

#vi /etc/snort/barnyard2.conf  

config logdir:/var/log/barnyard2

config hostname:localhost

config interface:eth0

config waldo_file:/var/log/snort/barnyard.waldo

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









注意名称和密码别打错了

11.测试barnyard2

#barnyard2 -c /etc/snort/barnyard2.conf -d/var/log/snort -f snort.log -w /var/log/snort/barnyard2.waldo

参数解释:

-c   指定配置文件

-d  指定log目录

-f   指定log文件

-w 指定waldo文件

 

如果出现“Waitingfor new spool file”字样和小猪猪则表示barnyard2配置成功

按ctrl+c终止测试


      

    小猪猪出现,成功

三、测试IDS是否正常工作

1.添加测试规则

#vi /etc/snort/rules/local.rules

这里我添加一条简单的ping规则用于测验

alert icmp any any -> any any (msg:”Pingwith TTL=64”;ttl:64;sid:1000001;)



我个人编写的规则是TTL等于64的才检测。

规则注解:

alert                          触发规则后做出的动作

icmp                         协议类型

第一个any              源IP(网段),any表示任意

第二个any              源端口,any表示任意

->               表示方向

第三个any              目标IP(网段),any表示任意

第四个any              目标端口,any表示任意

Msg字符                 告警名称

Sid id号     个人编写的规则使用1,000,000以上

2.启动DS

#service mysqld start             启动mysql

#service httpd start               启动apache

#service iptables stop            关闭防火墙

 

手动运行ids

#barnyard2 -c /etc/snort/barnyard2.conf -d/var/log/snort -f snort.log -w /var/log/snort/barnyard2.waldo -D

#snort -c /etc/snort/snort.conf -i eth0 –D


-D为后台运行,不显示

3.测试IDS

用物理机pingIDS服务器,也用试验机XPping IDS   使用ping ip –t  进行不断ping


 

当IDS命令执行完,出现


去浏览器打开http://192.168.160.131/base/base_main.php(ip为IDS的ip)



可以看到有两条数据,两个连接数


点进去ICMP可以看到我的XP虚拟机和物理机的IP分别为192.168.160.1和192.168.160.133数据


至此已经搭建成功,可以去下载更多规则,来进行玩耍。

四、问题解答

1.问题一

问题一的出现是因为php-mysql没有安装配置好,因为这一步是php与mysql结合工作。

检测步骤一:rpm–qa | grep mysql

        如果没有安装php-mysql则进行安装

        #yum install –y php-mysql

检测步骤二:安装完成php-mysql之后,进行mysql和apache重启

        #service httpd restart

      #service mysqld restart

      在浏览器输入http://192.168.160.131/index.php(输入自己的IP,如果没有index.php文件,自己编写在/var/www/html目录下)


输入了网址,向下滑,能找到mysql的数据就代表已经成功解决了问题一

2.问题二

缺少libpcre导致释放失败


 原因是系统缺少pcre-devel

输入#yuminstall –y pcre-devel



安装成功而后,再继续snort安装的步骤。问题已经解决