一、Snot安装
Snot提供了源码或RPM方式安装,在没有特殊需求的情况下推荐直接使用RPM方式安装
(1)使用如下命令安装相关软件包
yum install zlib-devel.i* -y
yum install libpcap-devel.i* -y
yum install pcre-devel.i* -y
yum install mysql-server.i* -y
yum install httpd-devel.i* -y
yum install libxml2-devel.i* -y
yum install openssl-devel.i* -y
yum install libtermcap-devel.i* -y
yum install libpng-devel.i* -y
yum install php.i* php-devel.i* -y
yum install php-pdo.i* php-mysql.i* php-pear.i* php-gd.i* -y
(2)启动MySQL服务并设置为下次启动自动加载
service mysqld restart
chkconfig mysqld on
(3)使用mysqladmin创建MySQL管理员密码
mysqladmin -uroot -p password 'redhat'
(4)启动Apache服务并设置为下次自动加载
service httpd restart
chkconfig httpd on
(5)执行以下命令,并将该命令加入/etc/profile文件中
export PCAP_FRAMES=max
(6)下载Snot及MySQL支持工具人RPM包()
rpm -ivh snort-version.i386.rpm
rpm -ivh snort-mysql-version.i386.rpm
(7)在snort官方网站下载并解压Snort规则文件后,将rules目录的内容复制到/etc/snort/rules目录。
(8)配置Snort与MySQL协同工作
create database snort
为了确保安全
grant CREATE,INSERT,DELETE,UPDATE,SELECT on snort.* to ;
set password for );
flush privileges;
接下来导入数据库
mysql -u tomyang -p snort < /usr/share/snort*/schemas/create_mysql
在建立表后,可使用tomyang用户查看MySQL数据库表是否建立成功
use snort;
show tables;
(9)修改/etc/snort/snort.conf中相关的参数
var HOME_NET 192.168.0.0/24 #指定snort工作的网段,除上述指定的方法以外还可以使用以下形式指定工作网段。
#当snort需要工作在多个网段时,通过var HOME_NET[<网段1>,<网段2>...]的方式,any表示所有网段。
#通过$_address表示指定网络接口所在的网段,比如var HOME_NET $eth0_address
var EXTERNAL_NET any #指定snort侦测所有的网段。
output database: log,mysql, user=tomyang password=redhat dbname=snort host=localhost
#指定snort将日志信息存入MySQL数据库。指定snort日志信息存储方式的格式如下。
output database: [log|alert], [数据库类型],[参数列表]
(10)停止默认使用的snort服务。
service snortd stop
chkconfig snortd off
(11)执行以下命令,并将该命令加入/etc/rc.d/rc.local文件中。其中-D用于指定Snort在后台运行,-c用于指定Snort的配置文件。
/usr/sbin/snort-mysql -D -c /etc/snort/snort.conf
二、安装及配置BASE
(1)建立一个用于存放BASE网页的目录(此处为/var/site/snorttools)。
(3)使用如下命令将下载的ADODB软件包(wget )内容解压到/var/site/snorttools目录中(该软件包主要用于BASE连接MySQL数据库)。
cp adodb507.tgz /var/site/snorttools
cd /var/site/snorttools
tar xzvf adodb507.tgz
mv adodb5 adodb
(4)在Apache中将其配置为一个web站点。
DocumentRoot /var/site/snorttools/base
ServerName
ErrorLog /var/log/httpd/snort.err
CustomLog /var/log/httpd/snort.access combined
Options None
AllowOverride None
Order allow,deny
allow from all
(5)写该SELinux状态。BASE就是一个PHP编写的动态网页,其SELinux状态修改方法与其他Web站点相同。
(6)使用如下命令复制BASE的配置文件模板
cd /var/site/snorttools/base
cp base_conf.php.dist base_conf.php
(7)修改/var/site/snorttools/base/base_conf.php文件,内容如下。
$BASE_Language= "simplified_chinese";
$BASE_urlpath= "/base";
$DBlib_path= "/var/site/snorttools/adodb";
$DBtype= "mysql"
$alert_dbname= "snort";
$alert_host= "localhost";
$alert_port= "";
$alert_user= "tomyang";
$alert_password= "redhat";
$archive_exists= 1;
$archive_dbname= "snort";
$archive_host= "localhost";
$archive_port= "";
$archive_user= "tomyang";
$archive_password= "redhat";
(8)使用如下命令重启httpd服务
service httpd restart
访问,如图所示:
三、Snort与IPTables构建主动防火墙
Guardian(Guardian官方网站:)是基于Snort与IPTables的一个主动防火墙,它能够分析Snort的日志文件,根据一定的判断自动将某些恶意的IP自动加入IPTables的输入链,将其数据报丢弃。
(1)下载Guardian源码包,并使用以下配置。
tar xvf guardian-1.7.tar.gz
cd guardian-1.7
echo > /etc/guardian.ignore
cp guardian.pl /usr/local/bin/
cp scripts/iptables_block.sh /usr/local/bin/guardian_block.sh
cp scripts/iptables_unblock.sh /usr/local/bin/guardian_unblock.sh
cp guardian.conf /etc/
(2)修改/etc/guardian.conf中相关参数
HostGatewayByte 1
#guardian的日志文件
LogFile /var/log/guardian.log
#guardian从何处读取snort的日志
AlertFile /var/log/snort/alert
#将需要忽略的IP存放在此文件中,一行一个
IgnoreFile /etc/guardian.ignore
#封锁IP的最长时间,99999999为没有时间限制
TimeLimit 80000
(3)执行以下命令,并将其加入/etc/rc.d/rc.local文件中。
/usr/bin/perl /usr/local/bin/guardian.pl -c /etc/guardian.conf
阅读(2130) | 评论(0) | 转发(0) |