Copyright (C) 2017-2019 CUJO LLC
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
First build lua-memory
:
make -C deps/lua-memory/src linux CFLAGS="-I/usr/include/lua -fPIC"
rm -f deps/lua-memory/src/*.o
The step above does not use make
to avoid temporary files that would then be reused in the kernel module compilation below, leading to errors.
Then build NFLua:
make -C lib/
make -C lua/
make -C iptables/
In order to build NFLua follow the instruction in section 2 of Building External Modules.
You must declare the following parameters in your make invocation:
CONFIG_LUNATIK=m
CONFIG_LUAMEMORY=m
CONFIG_LUAJSON=m
CONFIG_LUABASE64=m
CONFIG_NFLUA=m
An example of the invocation:
make -C /usr/src/linux-headers-`uname -r` M=$PWD \
CONFIG_LUNATIK=m \
CONFIG_LUAMEMORY=m \
CONFIG_LUAJSON=m \
CONFIG_LUABASE64=m \
CONFIG_NFLUA=m \
modules
To load NFLua and its dependencies:
sudo modprobe nf_conntrack
sudo insmod ./deps/lunatik/lunatik.ko
sudo insmod ./deps/luabase64/luabase64.ko
sudo insmod ./deps/lua-memory/lua-memory.ko
sudo insmod ./deps/luajson/luajson.ko
sudo insmod ./src/nflua.ko
To remove NFLua and its dependencies:
sudo rmmod nflua luajson lua-memory luabase64 lunatik
sudo LD_LIBRARY_PATH=./lib:./deps/lua-memory/src LUA_CPATH='./lua/?.so;;' \
XTABLES_LIBDIR=./iptables:/usr/lib/x86_64-linux-gnu/xtables \
lua tests/all.lua