登录虚拟机后,进入/root/guardian 目录中,查看其中的文件内容。
解压 guardian.tar.gz 文件然后进入到解压后的目录中。
cd /root/guardian/
tar zxvf guardian.tar.gz
cd guardian
必要说明:
(1) Guardian 的执行文件 guardian.pl
(2) Guardian 封锁 IP 所要调用的外部程序 scripts/iptalbes_block.sh
(3) Guardian 解除对某一 IP 封锁时,所需要调用的外部程序 scripts/iptalbes_unblock.sh
安装配置,按照下面命令创建文件和拷贝文件到相应目录中。
使用 vim 命令修改 guardian.pl,修第 253 行修改为$mypath=”/usr/local/bin”;。
touch /etc/snort/guardian.ignore
touch /etc/snort/guardian.target
touch /var/log/snort/guardian.log
cp guardian.pl /usr/local/bin/
cp block.sh /usr/local/bin/guardian_block.sh
cp unblock.sh /usr/local/bin/guardian_unblock.sh
cp guardian.conf /etc/snort
操作效果如下图所示。
编辑 guardian 配置文件
guardian 启动:/usr/bin/perl /usr/local/bin/guardian.pl -c /etc/snort/guardian.conf。当启动 guardian 时报错了。
查找资料发现这个错误是由于 perl 的版本过高导致的。
目前 centos 安装后自带的版本为 v5.16.3。
我们对其进行降级,在/root/guardian 目录中有 perl-5.12.0.tar.gz 文件。
按如下过程将 perl 进行降级。
cd /root/guardian/
tar zxvf perl-5.12.0.tar.gz
cd perl-5.12.0/
./Configure -des -Dprefix=/usr/local/perl
make
make test
make install
cd /usr/bin/
mv perl perl.oldbak
ln -s /usr/local/perl/bin/perl /usr/bin/perl
perl -v
按照上述过程降级 perl 后,再次查看 perl 的版本信息。显示降级成功为 5.12.0版本。
再次运行 /usr/bin/perl /usr/local/bin/guardian.pl -c /etc/snort/guardian.conf
因为还没有启动 snort,所以最后一行显示找不到 alert 文件,先不用关注。
测试规则是否加载生效,vi /etc/snort/rules/local.rules,添加下面一条规则。
alert icmp any any -> $HOME_NET any (msg:"Ping";sid:1000001;rev:1;)
规则说明:告警外网和内网之间的所有 icmp 流量,用来测试 snort.conf 配置是否有问题
启动 snort,查看 alert 是否有日志
snort -q -A fast -b -i ens33 -c /etc/snort/snort.conf -l /var/log/snort/ -D
进入 windows7 主机,对 192.168.38.129 进行 ping 操作。
然后切换到 centos 机器查看 alert 文件中是否有内容。
tail -f /var/log/snort/alert
可以看到日志,表明 snort.conf 配置没有问题,到/etc/snort/rules/local.rules 再新添加一条规则。
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"Access Violation has been detected on/etc/passwd";flags: A+; content:"/etc/passwd"; nocase;sid:1000002; rev:1;)
退出 snort 和 guardian,重新启动,使新添加的规则生效。
ps -aux |grep snort
kill -9 2633
kill -9 3652
然后再次使用如下命令启动 snort 和启动 guardian 。
snort -q -A fast -b -i ens33 -c /etc/snort/snort.conf -l /var/log/snort/ -D
guardian.pl -c /etc/snort/guardian.conf。
切换到 windows 主机进行下面操作: 使用浏览器访问 http://192.168.146.136 //可以访问。
使用浏览器访问 http://192.168.146.136/etc/passwd
查看 centos7 中 /var/log/snort/alert 产生了一条阻断信息。
tail /var/log/snort/alert
再次使用浏览器访问 http://192.168.146.136 无法访问
等待 2 分钟后解除阻断。再使用浏览器访问 http://192.168.146.136 可以访问。
因为 ping 的策略在 rules 中并没有删除,所以如果再次使用 ping 的话,也会在alert 文件中产生记录,这样guardian也会生效。