From 9c0a73385d9512c9f65a80c2134cbb2e0583711d Mon Sep 17 00:00:00 2001 From: lean Date: Mon, 12 Sep 2022 02:58:55 +0800 Subject: [PATCH] kernel: netfilter: Add nf_tproxy_ipv{4,6} and nf_socket_ipv{4,6} --- include/netfilter.mk | 6 +++ package/kernel/linux/modules/netfilter.mk | 64 +++++++++++++++++++++++ package/network/config/firewall4/Makefile | 17 +++--- 3 files changed, 81 insertions(+), 6 deletions(-) diff --git a/include/netfilter.mk b/include/netfilter.mk index a40f159f0..8121d83c4 100644 --- a/include/netfilter.mk +++ b/include/netfilter.mk @@ -355,6 +355,12 @@ $(eval $(if $(NF_KMOD),$(call nf_add,NFT_FIB,CONFIG_NFT_FIB_IPV6, $(P_V6)nft_fib $(eval $(if $(NF_KMOD),$(call nf_add,NFT_QUEUE,CONFIG_NFT_QUEUE, $(P_XT)nft_queue),)) +$(eval $(if $(NF_KMOD),$(call nf_add,NFT_SOCKET,CONFIG_NFT_SOCKET, $(P_XT)nft_socket),)) + +$(eval $(if $(NF_KMOD),$(call nf_add,NFT_TPROXY,CONFIG_NFT_TPROXY, $(P_XT)nft_tproxy),)) + +$(eval $(if $(NF_KMOD),$(call nf_add,NFT_COMPAT,CONFIG_NFT_COMPAT, $(P_XT)nft_compat),)) + # userland only IPT_BUILTIN += $(NF_IPT-y) $(NF_IPT-m) IPT_BUILTIN += $(IPT_CORE-y) $(IPT_CORE-m) diff --git a/package/kernel/linux/modules/netfilter.mk b/package/kernel/linux/modules/netfilter.mk index 725441ab4..a7750eaf3 100644 --- a/package/kernel/linux/modules/netfilter.mk +++ b/package/kernel/linux/modules/netfilter.mk @@ -161,6 +161,26 @@ endef $(eval $(call KernelPackage,nf-flow)) +define KernelPackage/nf-socket + SUBMENU:=$(NF_MENU) + TITLE:=Netfilter socket lookup support + KCONFIG:= $(KCOFNIG_NF_SOCKET) + FILES:=$(foreach mod,$(NF_SOCKET-m),$(LINUX_DIR)/net/$(mod).ko) + AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_SOCKET-m))) +endef + +$(eval $(call KernelPackage,nf-socket)) + + +define KernelPackage/nf-tproxy + SUBMENU:=$(NF_MENU) + TITLE:=Netfilter tproxy support + KCONFIG:= $(KCOFNIG_NF_TPROXY) + FILES:=$(foreach mod,$(NF_TPROXY-m),$(LINUX_DIR)/net/$(mod).ko) + AUTOLOAD:=$(call AutoProbe,$(notdir $(NF_TPROXY-m))) +endef + +$(eval $(call KernelPackage,nf-tproxy)) define AddDepends/ipt SUBMENU:=$(NF_MENU) @@ -1179,3 +1199,47 @@ define KernelPackage/nft-queue endef $(eval $(call KernelPackage,nft-queue)) + +define KernelPackage/nft-socket + SUBMENU:=$(NF_MENU) + TITLE:=Netfilter nf_tables socket support + DEPENDS:=+kmod-nft-core +kmod-nf-socket + FILES:=$(foreach mod,$(NFT_SOCKET-m),$(LINUX_DIR)/net/$(mod).ko) + AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_SOCKET-m))) + KCONFIG:=$(KCONFIG_NFT_SOCKET) +endef + +$(eval $(call KernelPackage,nft-socket)) + +define KernelPackage/nft-tproxy + SUBMENU:=$(NF_MENU) + TITLE:=Netfilter nf_tables tproxy support + DEPENDS:=+kmod-nft-core +kmod-nf-tproxy +kmod-nf-conntrack + FILES:=$(foreach mod,$(NFT_TPROXY-m),$(LINUX_DIR)/net/$(mod).ko) + AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_TPROXY-m))) + KCONFIG:=$(KCONFIG_NFT_TPROXY) +endef + +$(eval $(call KernelPackage,nft-tproxy)) + +define KernelPackage/nft-compat + SUBMENU:=$(NF_MENU) + TITLE:=Netfilter nf_tables compat support + DEPENDS:=+kmod-nft-core +kmod-nf-ipt + FILES:=$(foreach mod,$(NFT_COMPAT-m),$(LINUX_DIR)/net/$(mod).ko) + AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_COMPAT-m))) + KCONFIG:=$(KCONFIG_NFT_COMPAT) +endef + +$(eval $(call KernelPackage,nft-compat)) + +define KernelPackage/nft-xfrm + SUBMENU:=$(NF_MENU) + TITLE:=Netfilter nf_tables xfrm support (ipsec) + DEPENDS:=+kmod-nft-core + FILES:=$(foreach mod,$(NFT_XFRM-m),$(LINUX_DIR)/net/$(mod).ko) + AUTOLOAD:=$(call AutoProbe,$(notdir $(NFT_XFRM-m))) + KCONFIG:=$(KCONFIG_NFT_XFRM) +endef + +$(eval $(call KernelPackage,nft-xfrm)) diff --git a/package/network/config/firewall4/Makefile b/package/network/config/firewall4/Makefile index bfe10cfb8..87510d59a 100644 --- a/package/network/config/firewall4/Makefile +++ b/package/network/config/firewall4/Makefile @@ -5,13 +5,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=firewall4 -PKG_RELEASE:=1 +PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/firewall4.git -PKG_SOURCE_DATE:=2021-03-31 -PKG_SOURCE_VERSION:=29fba840201287b9265888adba6298779b750af5 -PKG_MIRROR_HASH:=1d26a611aeecdf37f09e4cdee6b192e5da087abf6e0fc7a9ca97a80e58d14222 +PKG_SOURCE_DATE:=2022-09-01 +PKG_SOURCE_VERSION:=f5fcdcf2c51f6f0a4b116c352000c4fe0523be77 +PKG_MIRROR_HASH:=57ef6f161abdd323019c026c959ab875fdfd3c972b8dc7767623634b1c259138 PKG_MAINTAINER:=Jo-Philipp Wich PKG_LICENSE:=ISC @@ -21,8 +21,13 @@ define Package/firewall4 SECTION:=net CATEGORY:=Base system TITLE:=OpenWrt 4th gen firewall - DEPENDS:=+ucode +ucode-mod-fs +ucode-mod-uci +ucode-mod-ubus +kmod-nft-core +kmod-nft-fib +kmod-nft-nat +kmod-nft-nat6 +nftables-json - CONFLICTS:=firewall kmod-ipt-nat + DEPENDS:= \ + +kmod-nft-core +kmod-nft-fib +kmod-nft-offload \ + +kmod-nft-nat \ + +nftables-json \ + +ucode +ucode-mod-fs +ucode-mod-ubus +ucode-mod-uci + EXTRA_DEPENDS:=ucode (>= 2022-03-22) + PROVIDES:=uci-firewall endef define Package/firewall4/description