honeyd的官网最后发布程序的版本是Honeyd 1.5c,并且是2007年发布的。因此建议从github上寻找更新的版本,这里使用DataSoft维护的honeyd,版本是Honeyd 1.6d,最后提交时间是2013年底。
git clone https://github.com/DataSoft/Honeyd.git
按照其README要求安装依赖、编译和安装
sudo apt-get install libevent-dev libdumbnet-dev libpcap-dev libpcre3-dev libedit-dev bison flex libtool automake
./autogen.sh
./configure
make
sudo make install
由于honeyd程序不对ARP请求进行处理,因此在模拟特定的IP地址时需要有单独的ARP程序来进行ARP响应。有一些博客上采用下载安装arpd程序,考虑到与linux本地的arpd冲突,这里在github上找了别人写的一个进行arp处理的简单C程序。
git clone https://github.com/quinot/choparp.git
# 编译得到chopar可执行文件
gcc -o choparp choparp.c -lpcap
修改/etc/honeypot/honeyd.conf配置文件。这里模拟一个Cisco路由器,IP地址为192.168.32.100,开放22(ssh)、23(telnet)端口,并采用honeyd提供的相关脚本进行处理。
create router
set router personality "Cisco Catalyst 2820 switch (CatOS 5.37)"
set router default tcp action reset
add router tcp port 22 "/usr/share/honeyd/scripts/linux/ssh.sh"
add router tcp port 23 "/usr/share/honeyd/scripts/linux/telnetd.sh"
bind 192.168.32.100 router
启动honeyd程序
sudo honeyd -d -f /etc/honeypot/honeyd.conf
在之前编译choparp的目录下启动arp代理程序。
sudo ./choparp eth0 00:0c:29:08:56:f6 192.168.32.100
上述指令表示在eth0接口上监听目的IP为192.168.32.100的ARP请求,并为回复ARP响应,MAC地址为00:0c:29:08:56:f6。
实际在测试时,honeyd和choparp都运行在虚拟机里面,eth0是虚拟机的NAT接口,地址为192.168.32.131。我们想在eth0接口上再模拟一个IP地址为192.168.32.100的Cisco路由器。