首先到netfilter.org中下載iptables。
接著configure並且make之後執行DESTDIR=/path/to/install make install將iptables安裝到特定目錄去(QEMU的root filesystem,我的路徑是~/initramfs)。
並且將相關的檔案(library)複製到root filesystem中。
brook@vista:~/initramfs$ echo "/usr/local/lib" > etc/ld.so.conf brook@vista:~/initramfs$ cp /lib64/ld-linux-x86-64.so.2 lib64 brook@vista:~/initramfs$ cp /lib/libdl.so.2 lib brook@vista:~/initramfs$ cp /lib/libm.so.6 lib brook@vista:~/initramfs$ cp /lib/libc.so.6 lib brook@vista:~/initramfs$ cp /sbin/ldconfig sbin brook@vista:~/initramfs$ cp /sbin/ldconfig.real sbin brook@vista:~/initramfs$ fakeroot root@vista:~/initramfs# chown -R root.root . root@vista:~/initramfs# find . |cpio -H newc -o > ../initrd
您可以發現share library路徑並沒有包含/usr/local/lib,所以要執行ldconfig。
雖然順利執行iptables,但是kernel中的module並沒有load進來,所以把相關的ko複製到root filesystem中吧。
root@vista:~/initramfs# cp /usr/src/linux/net/ipv4/netfilter/iptable_filter.ko lib/modules/2.6.37/ root@vista:~/initramfs# cp /usr/src/linux/net/ipv4/netfilter/ip_tables.ko lib/modules/2.6.37/ root@vista:~/initramfs# cp /usr/src/linux/net/netfilter/x_tables.ko lib/modules/2.6.37/
終於順利的執行iptables了。
相關文章:
如何利用kvm/qemu練習linux module