Remove upstreamed patches:
- 001-xtables-Call-init_extensions6-for-static-builds.patch
- 002-xtables-Call-init_extensions_a_b.patch
Fix patches:
- 102-iptables-disable-modprobe.patch
Fix warnings in the form of:
xtables.c:475:14: warning: 'get_modprobe' defined but not used [-Wunused-function]
475 | static char *get_modprobe(void)
| ^~~~~~~~~~~~
Backport patches:
- 020-treewide-use-uint-instead-of-u_int.patch
- 030-revert-fix-build-for-missing-ETH_ALEN-definition.patch
- 040-xshared-Fix-build-for-Werror-format-security.patch
- 050-build-fix-error-during-out-of-tree-build.patch
- 060-libxtables-unexport-init_extensions-declarations.patch
Refresh patches:
- 101-remove-check-already.patch
- 102-iptables-disable-modprobe.patch
- 200-configurable_builtin.patch
- 600-shared-libext.patch
- 700-disable-legacy-revisions.patch
Remove from Makefile:
$(CP) $(PKG_BUILD_DIR)/include/libipulog $(1)/usr/include/
Changelog:
fa0ccdbd configure: bump version for 1.8.8 release
8468fd4f nft: Fix EPERM handling for extensions without rev 0
ce9195c6 extensions: LOG: Document --log-macdecode in man page
404f304d man: *NAT: Review --random* option descriptions
0a538259 extensions: DNAT: Merge core printing functions
a7c2b728 libxtables: Revert change to struct xtables_pprot
fd64a587 libxtables: Drop xtables_globals 'optstring' field
3b8a6a6f xshared: Extend xtables_printhelp() for arptables
8ff84eaf xshared: Move arp_opcodes into shared space
adbfec0b extensions: MARK: Drop extra newline at end of help
1dcfb81e nft: split gen_payload() to allocate register and initialize expression
7e38890c nft: prepare for dynamic register allocation
165cafec nft: pass handle to helper functions to build netlink payload
94309632 nft: native mark matching support
aa92ec96 nft: pass struct nft_xt_ctx to parse_meta()
4c70c42f nft-shared: update context register for bitwise expression
18c96821 extensions: man: Document service name support in DNAT and REDIRECT
72d542b6 extensions: Merge REDIRECT into DNAT
14d77c8a extensions: Merge IPv4 and IPv6 DNAT targets
9621318b extensions: DNAT: Rename from libipt to libxt
2e0c9a40 extensions: ipt_DNAT: Combine xlate functions also
7adef314 extensions: ipt_DNAT: Merge v1/v2 print/save code
3f4f1cf0 extensions: ipt_DNAT: Merge v1 and v2 parsers
070a8626 Revert "libipt_[SD]NAT: avoid false error about multiple destinations specified"
08c14fa6 man: DNAT: Describe shifted port range feature
24fff5d7 xlate-test: Fix for empty source line on failure
ac4c84cc libxtables: Boost rule target checks by announcing chain names
f58b0d74 libxtables: Implement notargets hash table
b1aee6b2 nft: Reject standard targets as chain names when restoring
b555bfed tests: shell: Fix 0004-return-codes_0 for static builds
c293e116 nft: Review static extension loading
0836524f xtables: Call init_extensions{,a,b}() for static builds
6c689b63 Simplify static build extension loading
0c8e2535 libxtables: Fix for warning in xtables_ipmask_to_numeric
0c0cd434 nft: Don't pass command state opaque to family ops callbacks
b6196c75 xshared: Prefer xtables_chain_protos lookup over getprotoent
07ee529f nft: Speed up immediate parsing
b5f2faea nft: Simplify immediate parsing
17534cb1 Improve error messages for unsupported extensions
2dbb49d1 libxtables: Register only the highest revision extension
07e2107e xshared: Implement xtables lock timeout using signals
a3980769 tests: NFLOG: enable `--nflog-range` tests
b8e8ac27 tests: support explicit variant test result
adb03c3f tests: add `NOMATCH` test result
7a006c7d tests: iptables-test: rename variable
b7f15b42 iptables.8: Describe the effect of multiple -v flags
1407a9c4 tests: iptables-test: Support variant deviation
fc8f7289 nft: cache: Dump rules if debugging
73b91292 nft: Add debug output to table creation
51d9d9e0 ebtables: Support verbose mode
ad1ed75f nft: Set NFTNL_CHAIN_FAMILY in new chains
17ed253f iptables-restore: Support for extra debug output
a761a026 nft: Use verbose flag to toggle debug output
98e69b7e nft: add support for native tcp flag matching
92808bd5 nft-shared: add tcp flag dissection
6aba94ef nft: prefer native expressions instead of tcp match
c034cf31 nft: prefer native expressions instead of udp match
5489493e nft-shared: support native udp port delinearize
5795a1b5 nft-shared: support native tcp port range delinearize
250dce87 nft-shared: support native tcp port delinearize
ea5d45dc extensions: libxt_NFLOG: fix typo
26ecdf53 xshared: Fix response to unprivileged users
b32ae771 build: replace `AM_PROG_LIBTOOL` and `AC_DISABLE_STATIC` with `LT_INIT`
05286bab extensions: libxt_NFLOG: remove extra space when saving targets with prefixes
f0d02998 extensions: libxt_NFLOG: fix `--nflog-prefix` Python test-cases
f9df828a extensions: libxt_NFLOG: disable `--nflog-range` Python test-cases
62ad29e9 extensions: libxt_NFLOG: don't truncate log prefix on print/save
db99f601 extensions: libxt_NFLOG: use nft built-in logging instead of xt_NFLOG
30b178b9 extensions: *NAT: Kill multiple IPv4 range support
7ee5b970 tests: iptables-test: correct misspelt variable
223f02ca nft: fix indentation error.
5c2c2eea ip6tables: Use the shared do_parse, too
9baf3bf0 iptables: Use xtables' do_parse() function
e4f5185d nft: Move proto_parse and post_parse callbacks to xshared
ded7b579 xshared: Store parsed wait and wait_interval in xtables_args
62c3c93d xshared: Move do_parse to shared space
3039a52c xtables: Do not pass nft_handle to do_parse()
ece001c2 xtables: Pass xtables_args to check_inverse()
17abaeb1 xtables: Pass xtables_args to check_empty_interface()
dc8d8fce xtables: Move struct nft_xt_cmd_parse to xshared.h
98a4462f xtables: Pull table validity check out of do_parse()
d83371c7 xtables: Drop xtables' family on demand feature
49aa44ba nft-shared: set correct register value
b129b1cf iptables-*-restore: Drop pointless line reference
316d8efb libxtables: Extend basic_exit_err()
4bff5aef xtables_globals: Embed variant name in .program_version
51e5d293 xshared: Share exit_tryhelp()
56ac0452 xshared: Share a common printhelp function
4149b5d8 xshared: Share print_match_save() between legacy ip*tables
273d88a7 extensions: tcpmss: add iptables-translate support
7213561d xshared: Make load_proto() static
cf14b92b nft-shared: Drop unused function print_proto()
24f30842 xshared: Share print_header() with legacy iptables
a323c283 xshared: Share print_fragment() with legacy
1d73cec0 xshared: Share print_rule_details() with legacy
e5fb9f8e xshared: Share save_ipv{4,6}_addr() with legacy
22f2e1fc xshared: Share save_rule_details() with legacy
766e4872 xshared: Share print_iface() function
b5881e7f nft: Change whitespace printing in save_rule callback
1189d830 xshared: Merge and share parse_chain()
1eab8e83 extensions: hashlimit: Fix tests with HZ=1000
afa525ee xlate-test: Print full path if testing all files
b8d5271d Unbreak xtables-translate
0af80a91 nft: Merge xtables-arp-standalone.c into xtables-standalone.c
142cf724 xtables: arptables accepts empty interface names
ab0a785a xtables: Derive xtables_globals from family
6cf3976e nft-shared: Make nft_check_xt_legacy() family agnostic
832a0e2b nft-arp: Introduce post_parse callback
0aea399d arptables: Use standard data structures when parsing
fe83b12f libxtables: Introduce xtables_globals print_help callback
0687852d xtables-standalone: Drop version number from init errors
dded8ff3 nft: Add family ops callbacks wrapping different nft_cmd_* functions
38e1fe58 xtables: Simplify addr_mask freeing
cfdda180 nft-shared: Introduce init_cs family ops callback
65b150ae xshared: Store optstring in xtables_globals
2e6014c7 nft: Introduce builtin_tables_lookup()
db90ff64 tests: shell: fix bashism
45d8f769 nft: Delete builtin chains compatibly
e865a853 nft-chain: Introduce base_slot field
f9b33967 nft: Check base-chain compatibility when adding to cache
43189612 nft: cache: Avoid double free of unrecognized base-chains
040a15f2 xtables-translate: add missing argument and option to usage
2ed6dc75 tests: iptables-test: Fix conditional colors on stderr
63ab4fe3 ebtables: Avoid dropping policy when flushing
b714d45d iptables-test.py: print with color escapes only when stdout isatty
481626bb tests: shell: Return non-zero on error
7559af83 tests: iptables-test: Exit non-zero on error
c057939d tests: xlate-test: Exit non-zero on error
a8da7186 tests: iptables-test: Print errors to stderr
5166c445 tests: xlate-test: Print errors to stderr
fa78ff15 tests: xlate-test: Don't skip any input after the first empty line
fcbe454b tests: iptables-test: Fix missing chain case
61e85e31 iptables-nft: allow removal of empty builtin chains
544e7dc1 Fix a few doc typos
e438b976 nft: Use xtables_{m,c}alloc() everywhere
ca11c7b7 nft: Use xtables_malloc() in mnl_err_list_node_add()
cf410aa6 extensions: libxt_mac: Fix for missing space in listing
7ae14dc1 iptables-test: Make netns spawning more robust
bef9dc57 extensions: hashlimit: Fix tests with HZ=100
943fbf3e ip6tables: masquerade: use fully-random so that nft can understand the rule
ef7781eb libxtables: exit if called by setuid executeable
8629c53f tests/shell: Assert non-verbose mode is silent
57d1422d nft: Fix for non-verbose check command
26318637 ebtables: Dump atomic waste
765bf04e doc: ebtables-nft.8: Adjust for missing atomic-options
e727ccad xtables: Call init_extensions6() for static builds
9e1fffdf extensions: libxt_multiport: add translation for -m multiport --ports
c8145139 extensions: libxt_conntrack: simplify translation using negation
1c934617 extensions: libxt_tcp: rework translation to use flags match representation
bb01e33d extensions: libxt_connlimit: add translation
62828a6a tests: xlate-test: support multiline expectation
ba863c4b libxtables: extend xlate infrastructure
68ed965b extensions: libxt_string: Avoid buffer size warning for strncpy()
9b85e1ab libxtables: Introduce xtables_strdup() and use it everywhere
ca840c20 extensions: libebt_ip6: Use xtables_ip6parse_any()
084671d5 iptables-apply: Drop unused variable
0729ab37 nft: Avoid buffer size warnings copying iface names
eab75ed3 nft: Avoid memleak in error path of nft_cmd_new()
ffe88f8f libxtables: Fix memleak in xtopt_parse_hostmask()
8bb5bcae extensions: libebt_ip6: Drop unused variables
97fabae7 libxtables: Drop leftover variable in xtables_numeric_to_ip6addr()
5818be17 extensions: sctp: Translate --chunk-types option
a61282ec extensions: sctp: Fix nftables translation
556f7044 Use proto_to_name() from xshared in more places
eea68ca8 ebtables-translate: Use shared ebt_get_current_chain() function
9dc50b5b xshared: Merge invflags handling code
3664249f xshared: Eliminate iptables_command_state->invert
f647f61f xtables: Make invflags 16bit wide
616800af extensions: SECMARK: Implement revision 1
1e984079 nft-arp: Make use of ipv4_addr_to_string()
acac2dbe Eliminate inet_aton() and inet_ntoa()
9084ef29 extensions: sctp: Explain match types in man page
a3e81c62 nft: Increase BATCH_PAGE_SIZE to support huge rulesets
fdf64dcd nft: cache: Sort chains on demand only
c5d9a723 fix build for missing ETH_ALEN definition
18d7535d extensions: libxt_conntrack: use bitops for status negation
18e334da extensions: libxt_conntrack: use bitops for state negation
831f57c7 libxtables: Simplify xtables_ipmask_to_cidr() a bit
46f9d3a9 xtables-translate: Fix translation of odd netmasks
330f5df0 nft: Fix bitwise expression avoidance detection
5f1fcace iptables-nft: fix -Z option
c9441657 include: Drop libipulog.h
30c1d443 ebtables: Exit gracefully on invalid table names
Signed-off-by: Nick Hainke <vincent@systemli.org>
799 lines
20 KiB
Makefile
799 lines
20 KiB
Makefile
#
|
|
# Copyright (C) 2006-2016 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
include $(INCLUDE_DIR)/kernel.mk
|
|
|
|
PKG_NAME:=iptables
|
|
PKG_VERSION:=1.8.8
|
|
PKG_RELEASE:=1
|
|
|
|
PKG_SOURCE_URL:=https://netfilter.org/projects/iptables/files
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
|
PKG_HASH:=71c75889dc710676631553eb1511da0177bbaaf1b551265b912d236c3f51859f
|
|
|
|
PKG_FIXUP:=autoreconf
|
|
PKG_FLAGS:=nonshared
|
|
|
|
PKG_INSTALL:=1
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_LICENSE:=GPL-2.0
|
|
PKG_CPE_ID:=cpe:/a:netfilter_core_team:iptables
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
ifeq ($(DUMP),)
|
|
-include $(LINUX_DIR)/.config
|
|
include $(INCLUDE_DIR)/netfilter.mk
|
|
STAMP_CONFIGURED:=$(strip $(STAMP_CONFIGURED))_$(shell grep 'NETFILTER' $(LINUX_DIR)/.config | $(MKHASH) md5)
|
|
endif
|
|
|
|
|
|
define Package/iptables/Default
|
|
SECTION:=net
|
|
CATEGORY:=Network
|
|
SUBMENU:=Firewall
|
|
URL:=https://netfilter.org/
|
|
endef
|
|
|
|
define Package/iptables/Module
|
|
$(call Package/iptables/Default)
|
|
DEPENDS:=+libxtables $(1)
|
|
endef
|
|
|
|
define Package/xtables-legacy
|
|
$(call Package/iptables/Default)
|
|
TITLE:=IP firewall administration tool
|
|
DEPENDS+= +kmod-ipt-core +libip4tc +IPV6:libip6tc +libiptext +IPV6:libiptext6 +libxtables
|
|
endef
|
|
|
|
define Package/iptables-zz-legacy
|
|
$(call Package/iptables/Default)
|
|
TITLE:=IP firewall administration tool
|
|
DEPENDS+= +xtables-legacy
|
|
PROVIDES:=iptables iptables-legacy
|
|
ALTERNATIVES:=\
|
|
200:/usr/sbin/iptables:/usr/sbin/xtables-legacy-multi \
|
|
200:/usr/sbin/iptables-restore:/usr/sbin/xtables-legacy-multi \
|
|
200:/usr/sbin/iptables-save:/usr/sbin/xtables-legacy-multi
|
|
endef
|
|
|
|
define Package/iptables-zz-legacy/description
|
|
IP firewall administration tool.
|
|
|
|
Matches:
|
|
- icmp
|
|
- tcp
|
|
- udp
|
|
- comment
|
|
- conntrack
|
|
- limit
|
|
- mac
|
|
- mark
|
|
- multiport
|
|
- set
|
|
- state
|
|
- time
|
|
|
|
Targets:
|
|
- ACCEPT
|
|
- CT
|
|
- DNAT
|
|
- DROP
|
|
- REJECT
|
|
- FLOWOFFLOAD
|
|
- LOG
|
|
- MARK
|
|
- MASQUERADE
|
|
- REDIRECT
|
|
- SET
|
|
- SNAT
|
|
- TCPMSS
|
|
|
|
Tables:
|
|
- filter
|
|
- mangle
|
|
- nat
|
|
- raw
|
|
|
|
endef
|
|
|
|
define Package/xtables-nft
|
|
$(call Package/iptables/Default)
|
|
TITLE:=IP firewall administration tool nft
|
|
DEPENDS:=+libnftnl +libiptext +IPV6:libiptext6 +libiptext-nft +kmod-nft-compat
|
|
endef
|
|
|
|
define Package/arptables-nft
|
|
$(call Package/iptables/Default)
|
|
DEPENDS:=+kmod-nft-arp +xtables-nft +kmod-arptables
|
|
TITLE:=ARP firewall administration tool nft
|
|
PROVIDES:=arptables
|
|
ALTERNATIVES:=\
|
|
300:/usr/sbin/arptables:/usr/sbin/xtables-nft-multi \
|
|
300:/usr/sbin/arptables-restore:/usr/sbin/xtables-nft-multi \
|
|
300:/usr/sbin/arptables-save:/usr/sbin/xtables-nft-multi
|
|
endef
|
|
|
|
define Package/ebtables-nft
|
|
$(call Package/iptables/Default)
|
|
DEPENDS:=+kmod-nft-bridge +xtables-nft +kmod-ebtables
|
|
TITLE:=Bridge firewall administration tool nft
|
|
PROVIDES:=ebtables
|
|
ALTERNATIVES:=\
|
|
300:/usr/sbin/ebtables:/usr/sbin/xtables-nft-multi \
|
|
300:/usr/sbin/ebtables-restore:/usr/sbin/xtables-nft-multi \
|
|
300:/usr/sbin/ebtables-save:/usr/sbin/xtables-nft-multi
|
|
endef
|
|
|
|
define Package/iptables-nft
|
|
$(call Package/iptables/Default)
|
|
TITLE:=IP firewall administration tool nft
|
|
DEPENDS:=+kmod-ipt-core +xtables-nft
|
|
PROVIDES:=iptables
|
|
ALTERNATIVES:=\
|
|
300:/usr/sbin/iptables:/usr/sbin/xtables-nft-multi \
|
|
300:/usr/sbin/iptables-restore:/usr/sbin/xtables-nft-multi \
|
|
300:/usr/sbin/iptables-save:/usr/sbin/xtables-nft-multi
|
|
endef
|
|
|
|
define Package/iptables-nft/description
|
|
Extra iptables nftables nft binaries.
|
|
iptables-nft
|
|
iptables-nft-restore
|
|
iptables-nft-save
|
|
iptables-translate
|
|
iptables-restore-translate
|
|
endef
|
|
|
|
define Package/iptables-mod-conntrack-extra
|
|
$(call Package/iptables/Module, +kmod-ipt-conntrack-extra +kmod-ipt-raw)
|
|
TITLE:=Extra connection tracking extensions
|
|
endef
|
|
|
|
define Package/iptables-mod-conntrack-extra/description
|
|
Extra iptables extensions for connection tracking.
|
|
|
|
Matches:
|
|
- connbytes
|
|
- connlimit
|
|
- connmark
|
|
- recent
|
|
- helper
|
|
|
|
Targets:
|
|
- CONNMARK
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-conntrack-label
|
|
$(call Package/iptables/Module, +kmod-ipt-conntrack-label @IPTABLES_CONNLABEL)
|
|
TITLE:=Connection tracking labeling extension
|
|
DEFAULT:=y if IPTABLES_CONNLABEL
|
|
endef
|
|
|
|
define Package/iptables-mod-conntrack-label/description
|
|
Match and set label(s) on connection tracking entries
|
|
|
|
Matches:
|
|
- connlabel
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-filter
|
|
$(call Package/iptables/Module, +kmod-ipt-filter)
|
|
TITLE:=Content inspection extensions
|
|
endef
|
|
|
|
define Package/iptables-mod-filter/description
|
|
iptables extensions for packet content inspection.
|
|
Includes support for:
|
|
|
|
Matches:
|
|
- string
|
|
- bpf
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-ipopt
|
|
$(call Package/iptables/Module, +kmod-ipt-ipopt)
|
|
TITLE:=IP/Packet option extensions
|
|
endef
|
|
|
|
define Package/iptables-mod-ipopt/description
|
|
iptables extensions for matching/changing IP packet options.
|
|
|
|
Matches:
|
|
- dscp
|
|
- ecn
|
|
- length
|
|
- statistic
|
|
- tcpmss
|
|
- unclean
|
|
- hl
|
|
|
|
Targets:
|
|
- DSCP
|
|
- CLASSIFY
|
|
- ECN
|
|
- HL
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-ipsec
|
|
$(call Package/iptables/Module, +kmod-ipt-ipsec)
|
|
TITLE:=IPsec extensions
|
|
endef
|
|
|
|
define Package/iptables-mod-ipsec/description
|
|
iptables extensions for matching ipsec traffic.
|
|
|
|
Matches:
|
|
- ah
|
|
- esp
|
|
- policy
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-nat-extra
|
|
$(call Package/iptables/Module, +kmod-ipt-nat-extra)
|
|
TITLE:=Extra NAT extensions
|
|
endef
|
|
|
|
define Package/iptables-mod-nat-extra/description
|
|
iptables extensions for extra NAT targets.
|
|
|
|
Targets:
|
|
- MIRROR
|
|
- NETMAP
|
|
endef
|
|
|
|
define Package/iptables-mod-ulog
|
|
$(call Package/iptables/Module, +kmod-ipt-ulog)
|
|
TITLE:=user-space packet logging
|
|
endef
|
|
|
|
define Package/iptables-mod-ulog/description
|
|
iptables extensions for user-space packet logging.
|
|
|
|
Targets:
|
|
- ULOG
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-nflog
|
|
$(call Package/iptables/Module, +kmod-nfnetlink-log +kmod-ipt-nflog)
|
|
TITLE:=Netfilter NFLOG target
|
|
endef
|
|
|
|
define Package/iptables-mod-nflog/description
|
|
iptables extension for user-space logging via NFNETLINK.
|
|
|
|
Includes:
|
|
- libxt_NFLOG
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-trace
|
|
$(call Package/iptables/Module, +kmod-ipt-debug)
|
|
TITLE:=Netfilter TRACE target
|
|
endef
|
|
|
|
define Package/iptables-mod-trace/description
|
|
iptables extension for TRACE target
|
|
|
|
Includes:
|
|
- libxt_TRACE
|
|
|
|
endef
|
|
|
|
|
|
define Package/iptables-mod-nfqueue
|
|
$(call Package/iptables/Module, +kmod-nfnetlink-queue +kmod-ipt-nfqueue)
|
|
TITLE:=Netfilter NFQUEUE target
|
|
endef
|
|
|
|
define Package/iptables-mod-nfqueue/description
|
|
iptables extension for user-space queuing via NFNETLINK.
|
|
|
|
Includes:
|
|
- libxt_NFQUEUE
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-hashlimit
|
|
$(call Package/iptables/Module, +kmod-ipt-hashlimit)
|
|
TITLE:=hashlimit matching
|
|
endef
|
|
|
|
define Package/iptables-mod-hashlimit/description
|
|
iptables extensions for hashlimit matching
|
|
|
|
Matches:
|
|
- hashlimit
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-rpfilter
|
|
$(call Package/iptables/Module, +kmod-ipt-rpfilter)
|
|
TITLE:=rpfilter iptables extension
|
|
endef
|
|
|
|
define Package/iptables-mod-rpfilter/description
|
|
iptables extensions for reverse path filter test on a packet
|
|
|
|
Matches:
|
|
- rpfilter
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-iprange
|
|
$(call Package/iptables/Module, +kmod-ipt-iprange)
|
|
TITLE:=IP range extension
|
|
endef
|
|
|
|
define Package/iptables-mod-iprange/description
|
|
iptables extensions for matching ip ranges.
|
|
|
|
Matches:
|
|
- iprange
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-cluster
|
|
$(call Package/iptables/Module, +kmod-ipt-cluster)
|
|
TITLE:=Match cluster extension
|
|
endef
|
|
|
|
define Package/iptables-mod-cluster/description
|
|
iptables extensions for matching cluster.
|
|
|
|
Netfilter (IPv4/IPv6) module for matching cluster
|
|
This option allows you to build work-load-sharing clusters of
|
|
network servers/stateful firewalls without having a dedicated
|
|
load-balancing router/server/switch. Basically, this match returns
|
|
true when the packet must be handled by this cluster node. Thus,
|
|
all nodes see all packets and this match decides which node handles
|
|
what packets. The work-load sharing algorithm is based on source
|
|
address hashing.
|
|
|
|
This module is usable for ipv4 and ipv6.
|
|
|
|
If you select it, it enables kmod-ipt-cluster.
|
|
|
|
see `iptables -m cluster --help` for more information.
|
|
endef
|
|
|
|
define Package/iptables-mod-clusterip
|
|
$(call Package/iptables/Module, +kmod-ipt-clusterip)
|
|
TITLE:=Clusterip extension
|
|
endef
|
|
|
|
define Package/iptables-mod-clusterip/description
|
|
iptables extensions for CLUSTERIP.
|
|
The CLUSTERIP target allows you to build load-balancing clusters of
|
|
network servers without having a dedicated load-balancing
|
|
router/server/switch.
|
|
|
|
If you select it, it enables kmod-ipt-clusterip.
|
|
|
|
see `iptables -j CLUSTERIP --help` for more information.
|
|
endef
|
|
|
|
define Package/iptables-mod-extra
|
|
$(call Package/iptables/Module, +kmod-ipt-extra)
|
|
TITLE:=Other extra iptables extensions
|
|
endef
|
|
|
|
define Package/iptables-mod-extra/description
|
|
Other extra iptables extensions.
|
|
|
|
Matches:
|
|
- addrtype
|
|
- condition
|
|
- owner
|
|
- pkttype
|
|
- quota
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-physdev
|
|
$(call Package/iptables/Module, +kmod-ipt-physdev)
|
|
TITLE:=physdev iptables extension
|
|
endef
|
|
|
|
define Package/iptables-mod-physdev/description
|
|
The iptables physdev match.
|
|
endef
|
|
|
|
define Package/iptables-mod-led
|
|
$(call Package/iptables/Module, +kmod-ipt-led)
|
|
TITLE:=LED trigger iptables extension
|
|
endef
|
|
|
|
define Package/iptables-mod-led/description
|
|
iptables extension for triggering a LED.
|
|
|
|
Targets:
|
|
- LED
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-socket
|
|
$(call Package/iptables/Module, +kmod-ipt-socket)
|
|
TITLE:=Socket match iptables extensions
|
|
endef
|
|
|
|
define Package/iptables-mod-socket/description
|
|
Socket match iptables extensions.
|
|
|
|
Matches:
|
|
- socket
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-tproxy
|
|
$(call Package/iptables/Module, +kmod-ipt-tproxy)
|
|
TITLE:=Transparent proxy iptables extensions
|
|
endef
|
|
|
|
define Package/iptables-mod-tproxy/description
|
|
Transparent proxy iptables extensions.
|
|
|
|
Targets:
|
|
- TPROXY
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-tee
|
|
$(call Package/iptables/Module, +kmod-ipt-tee)
|
|
TITLE:=TEE iptables extensions
|
|
endef
|
|
|
|
define Package/iptables-mod-tee/description
|
|
TEE iptables extensions.
|
|
|
|
Targets:
|
|
- TEE
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-u32
|
|
$(call Package/iptables/Module, +kmod-ipt-u32)
|
|
TITLE:=U32 iptables extensions
|
|
endef
|
|
|
|
define Package/iptables-mod-u32/description
|
|
U32 iptables extensions.
|
|
|
|
Matches:
|
|
- u32
|
|
|
|
endef
|
|
|
|
define Package/iptables-mod-checksum
|
|
$(call Package/iptables/Module, +kmod-ipt-checksum)
|
|
TITLE:=IP CHECKSUM target extension
|
|
endef
|
|
|
|
define Package/iptables-mod-checksum/description
|
|
iptables extension for the CHECKSUM calculation target
|
|
endef
|
|
|
|
define Package/ip6tables-zz-legacy
|
|
$(call Package/iptables/Default)
|
|
DEPENDS:=@IPV6 +kmod-ip6tables +xtables-legacy
|
|
CATEGORY:=Network
|
|
TITLE:=IPv6 firewall administration tool
|
|
PROVIDES:=ip6tables ip6tables-legacy
|
|
ALTERNATIVES:=\
|
|
200:/usr/sbin/ip6tables:/usr/sbin/xtables-legacy-multi \
|
|
200:/usr/sbin/ip6tables-restore:/usr/sbin/xtables-legacy-multi \
|
|
200:/usr/sbin/ip6tables-save:/usr/sbin/xtables-legacy-multi
|
|
endef
|
|
|
|
define Package/ip6tables-nft
|
|
$(call Package/iptables/Default)
|
|
DEPENDS:=@IPV6 +kmod-ip6tables +xtables-nft
|
|
TITLE:=IP firewall administration tool nft
|
|
PROVIDES:=ip6tables
|
|
ALTERNATIVES:=\
|
|
300:/usr/sbin/ip6tables:/usr/sbin/xtables-nft-multi \
|
|
300:/usr/sbin/ip6tables-restore:/usr/sbin/xtables-nft-multi \
|
|
300:/usr/sbin/ip6tables-save:/usr/sbin/xtables-nft-multi
|
|
endef
|
|
|
|
define Package/ip6tables-nft/description
|
|
Extra ip6tables nftables nft binaries.
|
|
ip6tables-nft
|
|
ip6tables-nft-restore
|
|
ip6tables-nft-save
|
|
ip6tables-translate
|
|
ip6tables-restore-translate
|
|
endef
|
|
|
|
define Package/ip6tables-extra
|
|
$(call Package/iptables/Default)
|
|
DEPENDS:=+libxtables +kmod-ip6tables-extra
|
|
TITLE:=IPv6 header matching modules
|
|
endef
|
|
|
|
define Package/ip6tables-extra/description
|
|
iptables header matching modules for IPv6
|
|
endef
|
|
|
|
define Package/ip6tables-mod-nat
|
|
$(call Package/iptables/Default)
|
|
DEPENDS:=+libxtables +kmod-ipt-nat6
|
|
TITLE:=IPv6 NAT extensions
|
|
endef
|
|
|
|
define Package/ip6tables-mod-nat/description
|
|
iptables extensions for IPv6-NAT targets.
|
|
endef
|
|
|
|
define Package/libip4tc
|
|
$(call Package/iptables/Default)
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=IPv4 firewall - shared libiptc library
|
|
ABI_VERSION:=2
|
|
endef
|
|
|
|
define Package/libip6tc
|
|
$(call Package/iptables/Default)
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=IPv6 firewall - shared libiptc library
|
|
ABI_VERSION:=2
|
|
endef
|
|
|
|
define Package/libiptext
|
|
$(call Package/iptables/Default)
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=IPv4 firewall - shared libiptext library
|
|
ABI_VERSION:=0
|
|
DEPENDS:=+libxtables
|
|
endef
|
|
|
|
define Package/libiptext6
|
|
$(call Package/iptables/Default)
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=IPv6 firewall - shared libiptext library
|
|
ABI_VERSION:=0
|
|
DEPENDS:=+libxtables
|
|
endef
|
|
|
|
define Package/libiptext-nft
|
|
$(call Package/iptables/Default)
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=IPv4/IPv6 firewall - shared libiptext nft library
|
|
ABI_VERSION:=0
|
|
DEPENDS:=+libxtables
|
|
endef
|
|
|
|
define Package/libxtables
|
|
$(call Package/iptables/Default)
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=IPv4/IPv6 firewall - shared xtables library
|
|
MENU:=1
|
|
ABI_VERSION:=12
|
|
DEPENDS:=+IPTABLES_CONNLABEL:libnetfilter-conntrack
|
|
endef
|
|
|
|
define Package/libxtables/config
|
|
config IPTABLES_CONNLABEL
|
|
bool "Enable Connlabel support"
|
|
default n
|
|
help
|
|
This enable connlabel support in iptables.
|
|
endef
|
|
|
|
TARGET_CPPFLAGS := \
|
|
-I$(PKG_BUILD_DIR)/include \
|
|
-I$(LINUX_DIR)/user_headers/include \
|
|
$(TARGET_CPPFLAGS)
|
|
|
|
TARGET_CFLAGS += \
|
|
-I$(PKG_BUILD_DIR)/include \
|
|
-I$(LINUX_DIR)/user_headers/include \
|
|
-ffunction-sections -fdata-sections \
|
|
-DNO_LEGACY
|
|
|
|
TARGET_LDFLAGS += \
|
|
-Wl,--gc-sections
|
|
|
|
CONFIGURE_ARGS += \
|
|
--enable-shared \
|
|
--enable-static \
|
|
--enable-devel \
|
|
--with-kernel="$(LINUX_DIR)/user_headers" \
|
|
--with-xtlibdir=/usr/lib/iptables \
|
|
--with-xt-lock-name=/var/run/xtables.lock \
|
|
$(if $(CONFIG_IPTABLES_CONNLABEL),,--disable-connlabel) \
|
|
$(if $(CONFIG_IPV6),,--disable-ipv6)
|
|
|
|
MAKE_FLAGS := \
|
|
$(TARGET_CONFIGURE_OPTS) \
|
|
COPT_FLAGS="$(TARGET_CFLAGS)" \
|
|
KERNEL_DIR="$(LINUX_DIR)/user_headers/" PREFIX=/usr \
|
|
KBUILD_OUTPUT="$(LINUX_DIR)" \
|
|
BUILTIN_MODULES="$(patsubst ip6t_%,%,$(patsubst ipt_%,%,$(patsubst xt_%,%,$(IPT_BUILTIN) $(IPT_CONNTRACK-m) $(IPT_NAT-m))))"
|
|
|
|
ifneq ($(wildcard $(PKG_BUILD_DIR)/.config_*),$(subst .configured_,.config_,$(STAMP_CONFIGURED)))
|
|
define Build/Configure/rebuild
|
|
$(FIND) $(PKG_BUILD_DIR) -name \*.o -or -name \*.\?o -or -name \*.a | $(XARGS) rm -f
|
|
rm -f $(PKG_BUILD_DIR)/.config_*
|
|
rm -f $(PKG_BUILD_DIR)/.configured_*
|
|
touch $(subst .configured_,.config_,$(STAMP_CONFIGURED))
|
|
endef
|
|
endif
|
|
|
|
define Build/Configure
|
|
$(Build/Configure/rebuild)
|
|
$(Build/Configure/Default)
|
|
endef
|
|
|
|
define Build/InstallDev
|
|
$(INSTALL_DIR) $(1)/usr/include
|
|
$(INSTALL_DIR) $(1)/usr/include/iptables
|
|
$(INSTALL_DIR) $(1)/usr/include/net/netfilter
|
|
|
|
# XXX: iptables header fixup, some headers are not installed by iptables anymore
|
|
$(CP) $(PKG_BUILD_DIR)/include/iptables/*.h $(1)/usr/include/iptables/
|
|
$(CP) $(PKG_BUILD_DIR)/include/iptables.h $(1)/usr/include/
|
|
$(CP) $(PKG_BUILD_DIR)/include/ip6tables.h $(1)/usr/include/
|
|
$(CP) $(PKG_BUILD_DIR)/include/libiptc $(1)/usr/include/
|
|
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libxtables.so* $(1)/usr/lib/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libip*tc.so* $(1)/usr/lib/
|
|
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/xtables.pc $(1)/usr/lib/pkgconfig/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libip*tc.pc $(1)/usr/lib/pkgconfig/
|
|
|
|
# XXX: needed by firewall3
|
|
$(CP) $(PKG_BUILD_DIR)/extensions/libiptext*.so $(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/xtables-legacy/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/xtables-legacy-multi $(1)/usr/sbin/
|
|
endef
|
|
|
|
define Package/iptables-zz-legacy/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/iptables-legacy{,-restore,-save} $(1)/usr/sbin/
|
|
$(INSTALL_DIR) $(1)/usr/lib/iptables
|
|
endef
|
|
|
|
define Package/xtables-nft/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/xtables-nft-multi $(1)/usr/sbin/
|
|
endef
|
|
|
|
define Package/arptables-nft/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/arptables-nft{,-restore,-save} $(1)/usr/sbin/
|
|
$(INSTALL_DIR) $(1)/usr/lib/iptables
|
|
$(CP) $(PKG_BUILD_DIR)/extensions/libarpt_*.so $(1)/usr/lib/iptables/
|
|
endef
|
|
|
|
define Package/ebtables-nft/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/ebtables-nft{,-restore,-save} $(1)/usr/sbin/
|
|
$(INSTALL_DIR) $(1)/usr/lib/iptables
|
|
$(CP) $(PKG_BUILD_DIR)/extensions/libebt_*.so $(1)/usr/lib/iptables/
|
|
endef
|
|
|
|
define Package/iptables-nft/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/iptables-nft{,-restore,-save} $(1)/usr/sbin/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/iptables{,-restore}-translate $(1)/usr/sbin/
|
|
endef
|
|
|
|
define Package/ip6tables-zz-legacy/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/ip6tables-legacy{,-restore,-save} $(1)/usr/sbin/
|
|
endef
|
|
|
|
define Package/ip6tables-nft/install
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/ip6tables-nft{,-restore,-save} $(1)/usr/sbin/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/ip6tables{,-restore}-translate $(1)/usr/sbin/
|
|
endef
|
|
|
|
define Package/libip4tc/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libip4tc.so.* $(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/libip6tc/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libip6tc.so.* $(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/libiptext/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_BUILD_DIR)/extensions/libiptext.so $(1)/usr/lib/
|
|
$(CP) $(PKG_BUILD_DIR)/extensions/libiptext4.so $(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/libiptext6/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_BUILD_DIR)/extensions/libiptext6.so $(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/libiptext-nft/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_BUILD_DIR)/extensions/libiptext_*.so $(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/libxtables/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libxtables.so.* $(1)/usr/lib/
|
|
endef
|
|
|
|
define BuildPlugin
|
|
define Package/$(1)/install
|
|
$(INSTALL_DIR) $$(1)/usr/lib/iptables
|
|
for m in $(patsubst xt_%,ipt_%,$(2)) $(patsubst ipt_%,xt_%,$(2)) $(patsubst xt_%,ip6t_%,$(2)) $(patsubst ip6t_%,xt_%,$(2)); do \
|
|
if [ -f $(PKG_INSTALL_DIR)/usr/lib/iptables/lib$$$$$$$${m}.so ]; then \
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/iptables/lib$$$$$$$${m}.so $$(1)/usr/lib/iptables/ ; \
|
|
fi; \
|
|
done
|
|
$(3)
|
|
endef
|
|
|
|
$$(eval $$(call BuildPackage,$(1)))
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,libxtables))
|
|
$(eval $(call BuildPackage,libip4tc))
|
|
$(eval $(call BuildPackage,libip6tc))
|
|
$(eval $(call BuildPackage,libiptext))
|
|
$(eval $(call BuildPackage,libiptext6))
|
|
$(eval $(call BuildPackage,libiptext-nft))
|
|
$(eval $(call BuildPackage,xtables-legacy))
|
|
$(eval $(call BuildPackage,iptables-zz-legacy))
|
|
$(eval $(call BuildPackage,xtables-nft))
|
|
$(eval $(call BuildPackage,arptables-nft))
|
|
$(eval $(call BuildPackage,ebtables-nft))
|
|
$(eval $(call BuildPackage,iptables-nft))
|
|
$(eval $(call BuildPlugin,iptables-mod-conntrack-extra,$(IPT_CONNTRACK_EXTRA-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-conntrack-label,$(IPT_CONNTRACK_LABEL-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-extra,$(IPT_EXTRA-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-physdev,$(IPT_PHYSDEV-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-filter,$(IPT_FILTER-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-ipopt,$(IPT_IPOPT-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-ipsec,$(IPT_IPSEC-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-nat-extra,$(IPT_NAT_EXTRA-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-iprange,$(IPT_IPRANGE-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-cluster,$(IPT_CLUSTER-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-clusterip,$(IPT_CLUSTERIP-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-ulog,$(IPT_ULOG-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-hashlimit,$(IPT_HASHLIMIT-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-rpfilter,$(IPT_RPFILTER-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-led,$(IPT_LED-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-socket,$(IPT_SOCKET-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-tproxy,$(IPT_TPROXY-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-tee,$(IPT_TEE-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-u32,$(IPT_U32-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-nflog,$(IPT_NFLOG-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-trace,$(IPT_DEBUG-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-nfqueue,$(IPT_NFQUEUE-m)))
|
|
$(eval $(call BuildPlugin,iptables-mod-checksum,$(IPT_CHECKSUM-m)))
|
|
$(eval $(call BuildPackage,ip6tables-zz-legacy))
|
|
$(eval $(call BuildPackage,ip6tables-nft))
|
|
$(eval $(call BuildPlugin,ip6tables-extra,$(IPT_IPV6_EXTRA-m)))
|
|
$(eval $(call BuildPlugin,ip6tables-mod-nat,$(IPT_NAT6-m)))
|
|
|