yum install -y gcc gcc-c++ flex bison zlib libxml2 libpcap pcre* tcpdump git libtool curl man make
# 安装libpcap
tar -zxvf libpcap-xxx.tar.gz
./configure
sudo make
sudo make install
# 安装dnet
./configure
sudo make
sudo make install
# 安装daq
./configure
sudo make
sudo make install
# 编译时可能会遇到时钟源错误的问题,调整系统时间可以跳过该错误
# 安装zlib
./configure
sudo make
sudo make install
# 安装LuaJIT
sudo make
sudo make install
# 安装openssl
./config
sudo make
sudo make install
# 编译安装较慢,等待一段时间
./configure
make
make isntall
创建用户和组,并设置权限。在root身份下解包的文件权限都与root有关,所以要修改成Snort用户的属主和相关权限。
#新添加一个Snort组
groupadd -g 40000 snort
#将Snort用户加入Snort组,并且不允许登录系统
useradd snort -u 40000 -d /var/log/snort -s /sbin/nologin -c SNORT_IDS -g snort
mkdir /var/log/snort
chown –R snort:snort /var/log/snort
#新建目录/etc/snort/
mkdir /etc/snort/
cd /etc/snort
#下载规则文件并解压,将其中的.map复制到/etc/snort 目录下
cp sid-msg.map /etc/snort
#将下载的Snort压缩包解压缩后复制到/etc/snort/目录下
cp ~/snort-2.9.7.0/etc/* /etc/snort
# 设置当前目录下所有文件的属主。
cd /etc/snort
chown -R snort:snort *
#新建黑白名单规则文件
touch /etc/snort/rules/white_list.rules /etc/snort/rules/black_list.rules
设置网络变量,将第45行的ipvar HOME_NET any改为ipvar HOME_NET 192.168.x.x网段,并写成CIDR格式。也可以添加多个网段。
ipvar HOME_NET [192.168.0.0/16,172.16.0.0/16]
将48行ipvar EXTERNAL_NET any 改为 ipvar EXTERNAL_NET!$HOME_NET
第104行 var RULE_PATH ../ruls 改为 var RULE_PATH /etc/snort/rules
第105行 var SO_RULE_PATH ../so_rules 改为var SO_RULE_PATH /etc/snort/so_rules
第106行 var PREPROC_RULE_PATH ../preproc_rules 改为 var PREPROC_RULE_PATH/etc/snort/ preproc_rules
第113行 var WHITE_LIST_PATH ../rules 改为 var WHITE_LIST_PATH /etc/snort/rules
第114行 var BLACK_LIST_PATH ../rules 改为 var BLACK_LIST_PATH /etc/snort/rules
# 设置日志保存路径。
config logdir:/var/log/snort/
# 配置输出插件。
Snort可通过数据库插件(spo_database.c和spo_database.h)将预处理器输出的日志写入数据库,但下面的配置一方面将报警写入alert文件,另一方面将预处理器输出的日志写入到unified2格式的二进制文件中,以供Barnyard2读取使用。
将第521行修改成如下内容:
output unified2:filename snort.log,limit 128
mkdir -p /usr/local/lib/snort_dynamicrules
chown -R snort:snort /usr/local/lib/snort_dynamicrules
chmod -R 755 /usr/local/lib/snort_dynamicrules
# 在/usr/sbin/目录下新建名为Snort的软链接文件。
cd /usr/sbin
ln -s /usr/local/bin/snort snort
# 编辑 rules文件
vi /etc/snort/rules/local.rules
# 加入如下内容:
alert icmp any any -> $HOME_NET any (msg:"ICMP Packet Detected";sid:1000003;rev:1;)
snort -T -i eht0 -u snort -g snort -c /etc/snort/snort.conf
如出现“Snort successfully validated the configuration!”的提示,则表示安装配置成功。
用ping命令进行测试的目的是为了产生报警。ping命令使用ICMP协议,在IDS中使用Libpcap函数所捕获的也是ICMP数据包。下面在Snort主机上操作:
snort -i eth0 -c /etc/snort/snort.conf -A fast
与此同时,用另一台主机进行ping操作,日志文件记录在/var/log/snort/alert
和/var/log/snort/snort.log
中
yum install -y mysql-server mysql-devel php-mysql php-pear php-gd libtool php-imap php-ldap php-mbstring php-odbc php-pear php-xml php-pecl-apc
# 将MySQL服务设置为在运行级别为2、3、5时都是开启状态
chkconfig --level 235 mysqld on
/etc/init.d/mysqld start
# 为数据库管理员root赋予密码。
/usr/bin/mysqladmin -u root password '******'
# 创建Snort数据库并设定读取权限。
mysql -u root -p
# 输入步骤2中设置的密码“******”
mysql> create database snort;
mysql> use snort;
mysql> create user 'snort'@'localhost' IDENTIFIED BY '******';
在以上命令中,“******”是MySQL中用户Snort的密码。
接着创建名为snort、密码为“123456”的数据库用户,并赋予名为“snort”的数据库权限
mysql> grant create,select,update,insert,delete on snort.* to snort@localhost identified by '******';
mysql> set password for ‘snort’@’localhost’=password('******'); //为用户snort设置访问密码
mysql> source ~/barnyard2-2-1.12/schemas/create_mysql; //该命令不可重复输入,一定要执行此命令
mysql> show tables;
mysql> flush privileges; //刷新数据库权限
mysql> exit
Barnyard2的作用是读取Snort产生的二进制事件文件并存储到MySQL中。Snort的配置文件自身含有插件,它允许将Snort报警记录到MySQL中,但这样一来,系统数据会激增。当IDS系统检测到异常行为时,它会用INSERT语句向数据库中写入数据,导致更新非常慢。所以如果直接将Snort输出到数据库,在数据量增大时这种方案的效率并不高,故使用外部代理将报警输出到Barnyard2。
./autogen.sh
./configure --with-mysql --with-mysql-libraries=/usr/lib64/mysql
make
make install
# 首先在/var/log/中创建目录Barnyard2和文件barnyard2.waldo。
mkdir /var/log/barnyard2
touch /var/log/snort/barnyard2.waldo
# 设置文件barnyard2.waldo的属主
chown snort:snort /var/log/barnyard2
chown snort:snort /var/log/snort/barnyard2.waldo
# 复制Barnyard2的配置文件。
# 与Snort配置类似,Barnyard的初始化配置也是通过复制已有的.conf配置文件来完成。因此先将Barnyard2的配置模板文件复制到/etc/snort目录下。
cp ~/barnyard2-1.9/etc/barnyard2.conf /etc/snort
# 修改配置文件barnyard2.conf。
vi /etc/snort/barnyard2.conf
# 找到对应行并将其修改成如下内容:
第44行 config logdir:/var/log/barnyard2 //该目录权限为snort.snort
第56行 config hostname: localhost
第57行 config interface: eth0
第131行 config waldo_file:/var/log/snort/barnyard2.waldo
# 下面这条语句用来设置数据库访问权限,其中定义了用户名为snort,密码为123456,数据库名称为snort,主机名为localhost。
第318行 output database: log,mysql,user=snort password=123456 dbname=snort host=localhost
snort -q -u snort -g snort -c /etc/snort/snort.conf -i enp3s0 –D
yum install -y httpd mysql-server php php-mysql php-mbstring php-mcrypt mysql-devel php-gd mcrypt libmcrypt libmcrypt-devel php-pear
pear channel-update pear.php.net
pear install mail Image_Graph-alpha Image_Canvas-alpha Image_Color Numbers_Roman mail_mime
# 单次运行不成功可以尝试多次运行,必须安装所有插件
Basic Analysis and Security Engine
Adobd
cd /var/www/html/
unzip ~/adodb-5.20.14.zip
mv adodb5 adodb
tar -zxvf ~/base-1.4.5.tar.gz
mv base-1.4.5 base
# 修改/etc/php.ini
gedit /etc/php.ini
# 修改为
error_reporting = E_ALL & ~E_NOTICE
#修改权限
chmod 777 /var/www/html/adodb
chmod 777 /var/www/html/base
# 启动mysql服务
service mysqld start
# 启动http
service httpd start
# 关闭防火墙
systemctl stop firewalld.service
# 查看防火墙状态
firewall-cmd --state
访问:http://localhost/base/setup/index.php
Step1:开始配置,该步骤需要配置adodb的路径
Step2:选择数据库类型,数据库名,数据库用户和密码
Step3:设置管理员账号密码
Step4:开始创建BASE表结构,生成后如图所示
Step5:完成配置后的界面
barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /var/log/snort/barnyard2.waldo -g snort -u snort
# 如果报错可能是权限问题
chown -R snort:snort /var/log/snort
启动过程遇到上图中错误,文件权限存在问题,将报错文件添加读权限即可解决。
该错误应该会有更优雅的解决方法,暂时未找到。在配置snort的过程中可能会涉及到日志文件权限的配置问题。可能没有注意。
正常启动结果如图
# web网址
http://localhost/base/base_main.php
# 数据库操作
mysql -u snort -p -D snort -e "select count(*) from event" #检查告警是否存库
mysql -u snort -p -D snort -e "delete from event" #清空告警库
snort -q -u snort -g snort -c /etc/snort/snort.conf -i ens33 -D
-T:指定启动模式:测试
-i:指定网络接口
-u:指定运行用户
-g:指定运行时用户组
-c: 指定配置文件
-q:以静默方式运行
-D:后台以Daemon方式运行
barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /var/log/snort/barnyard2.waldo -g snort -u snort
snort -i ens33 -c /etc/snort/snort.conf -A fast -l /var/log/snort/
cd /var/log/snort/
tail -f ./alert
下载链接 | 下载链接 |
---|---|
libpcap下载地址 | dnet下载地址 |
daq下载地址 | zlib下载地址 |
LuaJIT下载地址 | openssl下载地址 |
BASE下载地址 | snort下载地址 |
barnyard2下载地址 | Adobd下载地址 |
Ubuntu 16.04搭建LAMP开发环境