PIX模拟器PEMU全面分析

注意:网上已经有很多资料介绍pemu这款pix模拟器了,所以基础的东西我就不在这讲了,这篇文章主要介绍一下脚本文件是如何调用和运行的。在这说明一下,我用的是已经编译好的文件。

mount -t tmpfs -o size=144m none /dev/shm
dd if=/dev/zero of=FLASH bs=1k count=16k

这两句是生成FLASH的,如果有了,就没必要写了,具体什么意思也没必要知道,呵呵,会用就行了

先来看一下要介绍的几个文件:

因我用的是slaxslax里的libpcap0.9.4的,可是pemu需要0.8,所以pemubridge一直就起不了作用,但是咱们分别从两方面来分析:一种是可以bridge,一种是不可以bridge

1.可以桥接

我们在这里只讨论要用到的几个文件,pix1.shif1upifup.ini

pix1.sh

#!/bin/sh
modprobe tun
./pemu -no-kqemu -net nic,vlan=1 ,macaddr=00:00:01:01:01:01 -net tap,vlan=1,script=if1up ifname=tap1 -net nic,vlan=2,macaddr=00:00:02:02:02:02 -net tap,vlan=2,script=if2up ifname=tap2 -serial stdio -m 128 FLASH
#-serial telnet::7001,server,nowait -m 128 FLASH
#-net nic,vlan=4,macaddr=00:00:04:04:04:04 -net tap,vlan=4,script=if4up

现在来分析(这里主要分析脚本),当运行这个脚本时,他会调用if1up及if2up这两个脚本,这里的ifname是指定tap,默认是从tap0开始的。下面看看if1up和if2up中的内容

if1up

#!/bin/sh
a=`grep $1 ifup.ini`
#用grep查找ifup.ini文件,并把$1赋值给a
#这里$1指的是tap1
if [ “$a” = “” ] ; then
#判断如果值是空的,则
/sbin/ifconfig $1 up
#其实这句话没有什么意义,因为都是空值了,还up什么呀~嘿嘿
else
ip=`echo $a | cut -f2 -d” “`
#给ip负值,-f2 -d” “表示以空格为分割符,显示第2栏的数值
#察看ifup.ini,第2栏为“10.0.0.1”
mask=`echo $a | cut -f3 -d” “`
#跟上同理,显示第3栏“255.255.255.0”并付给mask
if [ “$ip” = “bridge” ] ; then

ifconfig $1 up
( sleep 5 && ./bridge $1 $mask) &
else
/sbin/ifconfig $1 $ip netmask $mask up
fi
fi

现在看一看ifup.ini

ifup.ini

tap1 10.0.0.1 255.255.255.0
tap2 bridge eth1

这时,运行./pix1.sh就可以了

2.不可以桥接

看完以上的分析,大概大家都明白脚本是如何工作的了,但如果没有libpcap0.8怎么办?ifup.ini、ifup和bridge都是必要的文件么?

其实必要的文件只有bios.bin、Mybios_d8000、pemu、pemu.ini、FLASH这五个文件,其余的文件都可以不要,为什么要那些脚本文件,脚本文件就是方便操作者而已!

好了,现在我把脚本程序改一下,来适应bridge不能用的情况

pix1.sh

#!/bin/sh
modprobe tun
./pemu -no-kqemu -net nic,vlan=1 ,macaddr=00:00:01:01:01:01 -net tap,vlan=1,script=test1 ifname=tap1 -net nic,vlan=2,macaddr=00:00:02:02:02:02 -n

et tap,vlan=2,script=test2 ifname=tap2-serial stdio -m 128 FLASH
#-serial telnet::7001,server,nowait -m 128 FLASH
#-net nic,vlan=4,macaddr=00:00:04:04:04:04 -net tap,vlan=4,script=if4up

test1

#!/bin/sh
/sbin/ifconfig tap1 up
/sbin/ifconfig eth0 up

/sbin/brctl addbr br0
#brctl是桥接命令,这里是指定义一个br0的桥端口
/sbin/ifconfig br0 up
#启动br0端口
/sbin/brctl addif br0 tap1
#把tap1绑定到桥上
/sbin/brctl addif br0 eth0
#把eth0绑定到桥上

test2跟test1基本是一样的,直接运行pix1就可以顺利调用test文件,从而可以实现端口的绑定!

2010-1-30 更新:

现在dynagen也可以模拟PIX及ASA了,不用PEMU这么复杂了,不过PEMU也有它的好处,现在模拟器有很多选择,可以根据各自的需求进行选择。


本文出自 Frank's Blog

版权声明:


本文链接:PIX模拟器PEMU全面分析
版权声明:本文为原创文章,仅代表个人观点,版权归 Frank Zhao 所有,转载时请注明本文出处及文章链接
你可以留言,或者trackback 从你的网站

留言哦

blonde teen swallows load.xxx videos