まずパッケージで必要なものをダウンロード
Fedora
yum install libnetfilter-queue-dev libnfnetlink-dev libnetfilter-queue1 libnfnetlink0 git git-core python python-dev
Debian
apt-get install libnetfilter-queue-dev libnfnetlink-dev libnetfilter-queue1 libnfnetlink0 git git-core python python-dev
カレントディレクトリーは
/usr/local/src/
で作業します。
libnetworkdをgitからダウンロードしてインストールします。
cd /usr/local/src/
mkdir libnetworkd
cd libnetworkd
git init
git remote add origin http://git.mwcollect.org/libnetworkd/
git pull origin master
autoreconf -v -i
./configure –prefix=/opt/libnetworkd/
make -j8
sudo make install
つぎにlibemuをインストールします。
cd /usr/local/src/
mkdir libemu-git
cd libemu-git
git init
git remote add origin http://git.mwcollect.org/libemu
git pull origin master
autoreconf -v -i
./configure –prefix=/opt/libemu/
make -j8
sudo make install
pythonをbindingする場合一度通常でインストールしてから以下を実行する。
./configure –prefix=/opt/libemu/ –enable-python-bindings
cp bindings/python/setup.py bindings/python/setup.py.orig
sed -e ‘s/${prefix}/opt\/libemu/’ bindings/python/setup.py > bindings/python/setup.py.tmp
sed -e ‘s/${exec_prefix}/\/opt\/libemu/’ bindings/python/setup.py.tmp > bindings/python/setup.py
rm -f binfings/python/setup.py.tmp
make -j8
sudo make install
もしmakeで以下が出る場合は、ほとんど
libemu/bindings/python/setup.pyの
include_dirs = ['/opt/libemu/include'],
library_dirs = ['/opt/libemu/lib'],
のinclude_dirsとlibrary_dirsのエラーです。
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I${prefix}/include -I/usr/include/python2.5 -c libemu_module.c -o build/temp.linux-i686-2.5/libemu_module.o
libemu_module.c:29:20: error: Python.h: そのようなファイルやディレクトリはありません
libemu_module.c:30:21: error: emu/emu.h: そのようなファイルやディレクトリはありません
libemu_module.c:31:31: error: emu/emu_shellcode.h: そのようなファイルやディレクトリはありません
libemu_module.c:38: error: expected specifier-qualifier-list before ‘PyObject_HEAD’
libemu_module.c:45: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
libemu_module.c: In function ‘libemu_Emulator_dealloc’:
libemu_module.c:68: error: ‘libemu_EmulatorObject’ has no member named ‘emulator’
libemu_module.c:70: warning: implicit declaration of function ‘emu_free’
libemu_module.c:70: error: ‘libemu_EmulatorObject’ has no member named ‘emulator’
libemu_module.c:71: error: ‘libemu_EmulatorObject’ has no member named ‘emulator’
libemu_module.c:74: error: ‘libemu_EmulatorObject’ has no member named ‘ob_type’
libemu_module.c:74: error: ‘PyObject’ undeclared (first use in this function)
libemu_module.c:74: error: (Each undeclared identifier is reported only once
libemu_module.c:74: error: for each function it appears in.)
libemu_module.c:74: error: expected expression before ‘)’ token
libemu_module.c: At top level:
libemu_module.c:77: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
libemu_module.c:99: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘libemu_EmulatorMethods’
libemu_module.c:105: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘libemu_EmulatorType’
libemu_module.c:148: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘LibemuMethods’
libemu_module.c:152: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘initlibemu’
error: command ‘gcc’ failed with exit status 1
make[3]: *** [all] エラー 1
make[3]: ディレクトリ `/home/kog/libemu-git/bindings/python’ から出ます
make[2]: *** [all-recursive] エラー 1
make[2]: ディレクトリ `/home/kog/libemu-git/bindings’ から出ます
make[1]: *** [all-recursive] エラー 1
make[1]: ディレクトリ `/home/kog/libemu-git’ から出ます
make: *** [all] エラー 2
最後にmwcollectdのインストール
cd /usr/local/src/
mkdir mwcollectd-git
cd mwcollectd-git
git init
git remote add origin http://git.mwcollect.org/mwcollectd/
git pull origin master
autoreconf -v -i
./configure –prefix=/opt/mwcollectd –with-libnetworkd=/opt/libnetworkd –with-libemu=/opt/libemu
make -j8
sudo make install
以上でインストール終了です
iptables -A INPUT -p tcp -j NFQUEUE
sudo /opt/mwcollected/sbin/mwcollectd -l
で起動できます。