Add skeleton for module and userspace iptables management

Special thanks to https://github.com/drivenets/iptables_extensions
repository with detailed explanations of iptables userspace interaction
with the kernel module.
This commit is contained in:
Vadim Vetrov
2024-07-31 22:13:06 +03:00
parent 79d592a0ca
commit b14abda600
9 changed files with 189 additions and 57 deletions

View File

@@ -1,26 +1,42 @@
#Kernel module makes here
PWD := $(CURDIR)
override CC := $(OCC)
override LD := $(OLD)
override CFLAGS :=
override LDFLAGS :=
CC := gcc
CCLD := $(CC)
LD := ld
CFLAGS :=
LDFLAGS :=
export CC LD CFLAGS LDFLAGS
IPT_CFLAGS := -Wall -Wpedantic -O2
.PHONY: kmake kload kunload kreload kclean
kmake:
.PHONY: kmake kload kunload kreload kclean kmclean xclean
kmake: kmod xmod
kmod:
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
xmod: libipt_YTUNBLOCK.so
libipt_YTUNBLOCK.so: libipt_YTUNBLOCK.o
$(CCLD) -shared -fPIC ${IPT_CFLAGS} -o $@ $^;
libipt_YTUNBLOCK.o: libipt_YTUNBLOCK.c
$(CC) ${IPT_CFLAGS} -D_INIT=lib$*_init -fPIC -c -o $@ $<;
kload:
insmod youtubeKUnblock.ko
insmod ipt_YTUNBLOCK.ko
cp ./libipt_YTUNBLOCK.so /usr/lib/xtables/
kunload:
-rmmod youtubeKUnblock
-rmmod ipt_YTUNBLOCK
-/bin/rm /usr/lib/xtables/libipt_YTUNBLOCK.so
kreload: kunload kload
kclean:
$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
kclean: xtclean kmclean
kmclean:
-$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
xtclean:
-/bin/rm -f libipt_YTUNBLOCK.so libipt_YTUNBLOCK.o