安全焦点的Honeynet

一 我们的某台机器配置

赛扬1.7G CPU

256M内存

80G硬盘

100兆D-link网卡

二 网络

A机器托管在某个运营商机房

B机器在某国企的外部网络

C机器是长宽的小区宽带……

还有吗?不知道……

三 某台主机的配置

陷阱网络类型:Gen I

操作系统:Debian Linux 3.0r1

虚拟机:User Mode Linux(RedHat 7.2)

虚拟机2:Vmware-gsx-2.5(Windows 2000 英文版)

3.1 数据控制

当然是rc.firewall,使用的脚本从下面地址下载:

http://honeynet.xfocus.net/papers/honeynet/tools/rc.firewall

稍做修改

#rc.firewall默认使用2层的bridging模式,修改为:
MODE="nat"

#需要配置虚拟系统对外的IP,可以指定多个用空格隔开:
PUBLIC_IP="192.168.7.144"

#配置虚拟系统真实的IP,可以指定多个用空格隔开,注意和PUBLIC_IP对应:
HPOT_IP="192.168.100.144"

#配置主机管理接口:
MANAGE_IFACE="eth0"

#主机真实IP:
MANAGE_IP="192.168.7.99"          # IP of management Interface
MANAGE_NETMASK="255.255.255.0"     # Netmask of management Interface

#允许访问的端口,可以多个用空格隔开:
ALLOWED_TCP_IN="22"

#允许访问的来源IP,可以用any:
MANAGER="192.168.7.9/24"

#数据控制接口:
LAN_IFACE="tap0"

清空ipfilter的脚本

#!/bin/sh
#-----------------------------------------
# stop-firewall.sh
#-----------------------------------------
# safely stop rc.firewall

/sbin/iptables -F
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -X icmpHandler
/sbin/iptables -X otherHandler
/sbin/iptables -X tcpHandler
/sbin/iptables -X udpHandler

echo "honeynet rc.firewall safely stoped!"

#EOF

3.2 数据捕获

穷人只能用Snort……还是用Honeynet Project的Snort启动脚本:

http://honeynet.xfocus.net/papers/honeynet/tools/snort.conf
http://honeynet.xfocus.net/papers/honeynet/tools/snort-start.txt

snort.conf有些错误,作如下修改:

var HOME_NET 192.168.7.99/24

output alert_full: /data/snort/snort_full
output alert_fast: /data/snort/snort_fast

snort-start.txt启动脚本稍微修改:

PID=/var/run/snort_tap0.pid
DIR=/data/snort
SNORT=/usr/sbin/snort

$SNORT -d -D -c /etc/snort/snort.conf -i vmnet1 -l $DIR/$DATE not host yyy.yyy.yyy.yyy

其中yyy.yyy.yyy.yyy是自己客户端的IP,这样忽略记录自己的IP,避免了自己在虚拟honeypot上的连接特别是文件传输等不被记录,使得日志不会因为自己的操作变得巨大,增加干扰信息。

3.3 其它工具

使用的多数是自由软件:

fwanalog  日志分析用
ethereal  分析数据包
ssh       日志加密传输
……

3.4 还有吗?

一个脚本

#!/bin/sh
#-----------------------------------------
# BackupData.sh
#-----------------------------------------

cd /data/snort
DIR=`ls -F|grep /$`
DM=`date +%Y%m%d`

#fwanalog
cd /var/log
tar czf fwanalog-$DM.tar.gz fwanalog
mv fwanalog-$DM.tar.gz /data/snort/$DIR/

/usr/bin/killall snort

cd /data/snort
tar czf data-$DM.tar.gz $DIR
rm -rf /data/snort/$DIR

/root/vmware/snort-start.sh

#EOF

两个crontab程序

0 8 * * * /usr/sbin/fwanalog
30 8 * * * /root/vmware/BackupData.sh

四 怎么分析日志

懒人自有懒办法,看看下面的脚本吧……工作平台是M$ windows。

#!/bin/sh
#-----------------------------------------
# daily_get.sh
#-----------------------------------------
# 注意,里面使用的date/tar/gzip/rm都是
# GNU的windows下相应软件。
#-----------------------------------------

DM=`date +%Y%m%d`

# 由于打包目录使用的是前一天的目录,这个由gnu date实现就比较好了。
DA=`date -d yesterday +%b_%d`

pscp -i ssh.PPK honeynet@xxx.xxx.xxx.xxx:/data/snort/data-$DM.tar.gz logs

# 日志文件里如果有codered等扫描,norton会把日志删除
net stop "Norton AntiVirus 客户端"

# 解压,windows下tar的z参数好像不能找到gzip,所以用这个笨办法。
gzip -d logs/data-$DM.tar.gz
tar xf logs/data-$DM.tar -C daily/

# 开mysql
net start mysql

# 用snort分析日志,并且生成警告日志到log目录以及导入数据库,以便总体统计分析。这个需要配置snort
cd \\snort
rm -rf log
mkdir log
bin\\snort -c etc\\snort.conf -r \\working\\honeynet\\daily\\$DA\\*-snort.log

# 重新开启norton
net start "Norton AntiVirus 客户端"

# 用snortsnarf生成每日汇总日志。先清空前一天的东西
cd \\working\\honeynet\\tmp
rm -rf snortsnarf
mkdir snortsnarf

cd \\working\\honeynet\\snortsnarf
perl snortsnarf.pl ..\\..\\..\\Snort\\log\\alert.ids -d ..\\tmp\\snortsnarf

cd ..\\tmp\\snortsnarf
"C:\Program Files\Internet Explorer\iexplore.exe" "D:\working\honeynet\tmp\snortsnarf\index.html"

# 看看fwanalog的日志
cd \\working\\honeynet\\daily\\$DA
gzip -d fwanalog-$DM.tar.gz
tar xf fwanalog-$DM.tar
"C:\Program Files\Internet Explorer\iexplore.exe" D:\\working\\honeynet\\daily\\$DA\\fwanalog\\today.html

当然还需要再做一些其它工作才能让活儿更自动化,简单,就不多绕舌了……


返回