背景
大家在安装基于Snort NIDS系统, 感觉很难,总是出错,其他安装Snort并不难,难的是准备工作做得不充分,如果你做的不好,在配置可视化报警时会遇到各种问题,例如:
- 为什么Snort编译总报错?
- 为什么启动Snort后会立刻退出?
- Snort不报警怎么办?
- MySQL数据库里无法存储Snort报警怎么办?
- 浏览器打开ACID,里面一片空白怎么办?
看着别人安装成功了,我却怎么也装不上?真是折磨人呐!下面我们看看应对这些问题的方法。
一、准备工作
手动编译安装Snort时所需的准备工作如下所示。
步骤 1.准备软件环境。在安装前,必须在交换机上设置SPAN。中高端Cisco交换机都有SPAN功能。SPAN须为一个专用端口。以下是在虚拟机环境下的实验,须把网卡设置为混杂模式。
步骤2.安装VMware Workstations虚拟机。准备远程连接 工具。
步骤3.到异步社区的本书页面中统一获取安装资源。
步骤4.使用镜像CentOS-6.8-x86_64-mini在虚拟机中安装操作系统。
步骤5.重启系统后设置系统IP、网关及DNS。
默认安装时,网络IP是自动获取的,需要改成静态IP地址。
#ifconfig -a //查看网卡配置信息
#vi/etc/sysconfig/network-scripts/ifcfg-eth0 //编辑网卡配置文件
DEVICE="eth0"
BOOTPROTO="dhcp"
HWADDR="00:0C:29:BA:53:4E"
IPV6INIT="yes"
NM_CO***OLLED="yes" //由于铭感词被限制此出为星号。
ONBOOT="yes"
TYPE="Ethernet"
UUID="685d0725-02ab-41b9-b9bf-6a52fc68c0f8"
修改为静态IP地址的方法是将BOOTPROTO="dhcp"中的"dhcp"改为"static",然后增加以下内容(内网IP配置):
IPADDR=192.168.91.29
NETMASK=255.255.255.0
GATEWAY=192.168.91.2
DNS1=192.168.91.2
DNS2=8.8.8.8 //DNS地址的配置根据当地网络供应商进行添加
最后保存退出,重启网络服务。
步骤6.复制软件到指定目录。
将libdnet-1.12.tgz、daq-2.0.4.tar.gz、snort-2.9.7.0.tar.gz、snortrules-snapshot-2970.tar.gz这4个文件复制到CentOS 6.8系统/usr/local/src/目录下。
经过以上6个步骤之后,Snort安装的准备工作完成。另外,Snort安装配置路线图参见《开源安全运维平台OSSIM疑难解析:提高篇》一书中附录中的图1、图2。网络安装包名称及用途参见附录中的表1、表2、表3,这三张表以及按照路线图可以让初学者清晰的完成本文所介绍的各项试验。
二、编译并安装Snort
准备工作完成之后,接着开始正式安装Snort。编译安装Snort需要如下10个步骤。
步骤1.安装基本环境和依赖包。
#yum install -y gcc gcc-c++ flex bison zlib libxml2 libpcap pcre* tcpdump git libtool curl man make
注意,如果没有安装pcre,在预编译时就会出现以下问题,比如我们执行./configure时,报错:ERROR! Libpcre library not found, go get it from http://www.pcre.org
步骤2.解压Libdnet、DAQ及Snort安装包。
在服务器的安装配置过程中,大家很可能会到官网下载最新版本的源码包,但是那样就会遇到各种依赖包缺失的问题,导致无法安装成功。因为有些软件(比如Snort)要在DAQ(Data AcQuisition,数据采集器)library安装好之后才能继续安装,而只有先Libdnet安装完成,才能继续安装DAQ,否则会报错找不到依赖文件,具体操作如下:
#cd /usr/local/src
#tar -zxvf libdnet-1.12.tgz
#tar -zxvf daq-2.0.4.tar.gz
#tar -zxvf snort-2.9.7.0.tar.gz
下面必须依次安装Libdnet、DAQ和Snort这3个包。
● 安装libdnet-1.12.tgz。
#cd /usr/local/src/libdnet-1.12/
#./configure
#make && make install
● 安装DAQ。
#cd daq-2.0.4
#./configure
#make && make install
● 安装Snort 2.9(安装Snort前一定要正确安装Libdnet和DAQ)。
#cd /usr/local/src/snort-2.9.7.0
#./configure --enable-sourcefire
#make && make install
步骤3.添加用户和组。
创建用户和组,并设置权限。在root身份下解包的文件权限都与root有关,所以要修改成Snort用户的属主和相关权限。
#groupadd -g 40000 snort //新添加一个Snort组
#useradd snort -u 40000 -d /var/log/snort -s /sbin/nologin -c SNORT_IDS -g snort
//将Snort用户加入Snort组,并且不允许登录系统
步骤4.新建目录/var/log/snort并设置其属性。
#mkdir /var/log/snort
#chown –R snort:snort /var/log/snort
步骤5.配置Snort。
● 新建目录/etc/snort/。
#mkdir /etc/snort/
● 将snortrules-snapshot-2970.tar.gz解压到/etc/snort/目录下。
#cd /etc/snort
tar –zxvf /usr/local/src/snortrules-snapshot-2970.tar.gz –C .(此步骤很关键)
#cp /etc/snort/etc/sid-msg.map /etc/snort
● 将下载的Snort压缩包解压缩后复制到/etc/snort/目录下。
#cd /etc/snort/
#cp /usr/local/src/snort-2.9.7.0/etc/* .
● 设置当前目录下所有文件的属主。
#cd /etc/snort
#chown -R snort:snort *
● 新建黑白名单规则文件。
#touch /etc/snort/rules/white_l