From 08b6a519759d28c5759c3e4c633f526aab939daf Mon Sep 17 00:00:00 2001 From: overweight <5324761+overweight@user.noreply.gitee.com> Date: Mon, 30 Sep 2019 10:37:43 -0400 Subject: [PATCH] Package init --- 0001-add-RARP-and-update-iana-url.patch | 44 +++++ ebtables-2.0.0-audit.patch | 157 ++++++++++++++++++ ebtables-2.0.10-linkfix.patch | 16 ++ ebtables-2.0.10-lockdirfix.patch | 50 ++++++ ebtables-2.0.10-noflush.patch | 69 ++++++++ ebtables-2.0.10-norootinst.patch | 66 ++++++++ ebtables-2.0.9-lsb.patch | 106 ++++++++++++ ebtables-save | 43 +++++ ...bles-use-flock-for-concurrent-option.patch | 113 +++++++++++++ ebtables-v2.0.10-4.tar.gz | Bin 0 -> 103764 bytes ebtables.service | 11 ++ ebtables.spec | 106 ++++++++++++ ebtables.systemd | 74 +++++++++ 13 files changed, 855 insertions(+) create mode 100644 0001-add-RARP-and-update-iana-url.patch create mode 100644 ebtables-2.0.0-audit.patch create mode 100644 ebtables-2.0.10-linkfix.patch create mode 100644 ebtables-2.0.10-lockdirfix.patch create mode 100644 ebtables-2.0.10-noflush.patch create mode 100644 ebtables-2.0.10-norootinst.patch create mode 100644 ebtables-2.0.9-lsb.patch create mode 100755 ebtables-save create mode 100644 ebtables-use-flock-for-concurrent-option.patch create mode 100644 ebtables-v2.0.10-4.tar.gz create mode 100644 ebtables.service create mode 100644 ebtables.spec create mode 100644 ebtables.systemd diff --git a/0001-add-RARP-and-update-iana-url.patch b/0001-add-RARP-and-update-iana-url.patch new file mode 100644 index 0000000..1528413 --- /dev/null +++ b/0001-add-RARP-and-update-iana-url.patch @@ -0,0 +1,44 @@ +From 908d41de58d46262e719fff778950a6f893a02f8 Mon Sep 17 00:00:00 2001 +From: Bart De Schuymer +Date: Tue, 3 Jul 2012 18:47:32 +0000 +Subject: [PATCH 01/16] add RARP and update iana url + +--- + userspace/ebtables2/ethertypes | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +index 5e700f663987..813177b74588 100644 +--- a/ethertypes ++++ b/ethertypes +@@ -5,6 +5,7 @@ + # + # This list could be found on: + # http://www.iana.org/assignments/ethernet-numbers ++# http://www.iana.org/assignments/ieee-802-numbers + # + # ... #Comment + # +@@ -21,15 +22,16 @@ LAT 6004 # DEC LAT + DIAG 6005 # DEC Diagnostics + CUST 6006 # DEC Customer use + SCA 6007 # DEC Systems Comms Arch +-TEB 6558 # Trans Ether Bridging [RFC1701] +-RAW_FR 6559 # Raw Frame Relay [RFC1701] ++TEB 6558 # Trans Ether Bridging [RFC1701] ++RAW_FR 6559 # Raw Frame Relay [RFC1701] ++RARP 8035 # Reverse ARP [RFC903] + AARP 80F3 # Appletalk AARP +-ATALK 809B # Appletalk ++ATALK 809B # Appletalk + 802_1Q 8100 8021q 1q 802.1q dot1q # 802.1Q Virtual LAN tagged frame + IPX 8137 # Novell IPX + NetBEUI 8191 # NetBEUI + IPv6 86DD ip6 # IP version 6 +-PPP 880B # PPP ++PPP 880B # PPP + ATMMPOA 884C # MultiProtocol over ATM + PPP_DISC 8863 # PPPoE discovery messages + PPP_SES 8864 # PPPoE session messages +-- +1.8.5.3 + diff --git a/ebtables-2.0.0-audit.patch b/ebtables-2.0.0-audit.patch new file mode 100644 index 0000000..c1d85e9 --- /dev/null +++ b/ebtables-2.0.0-audit.patch @@ -0,0 +1,157 @@ +--- ebtables2.orig/extensions/ebt_AUDIT.c 1970-01-01 01:00:00.000000000 +0100 ++++ ebtables2.orig/extensions/ebt_AUDIT.c 2011-01-07 10:53:46.680329228 +0100 +@@ -0,0 +1,110 @@ ++ ++#include ++#include ++#include ++#include ++#include "../include/ebtables_u.h" ++#include ++ ++#define AUDIT_TYPE '1' ++static struct option opts[] = ++{ ++ { "audit-type" , required_argument, 0, AUDIT_TYPE }, ++ { 0 } ++}; ++ ++static void print_help() ++{ ++ printf( ++ "AUDIT target options:\n" ++ " --audit-type TYPE : Set action type to record.\n"); ++} ++ ++static void init(struct ebt_entry_target *target) ++{ ++ struct xt_AUDIT_info *info = (struct xt_AUDIT_info *) target->data; ++ ++ info->type = 0; ++} ++ ++static int parse(int c, char **argv, int argc, ++ const struct ebt_u_entry *entry, unsigned int *flags, ++ struct ebt_entry_target **target) ++{ ++ struct xt_AUDIT_info *info = (struct xt_AUDIT_info *) (*target)->data; ++ ++ switch (c) { ++ case AUDIT_TYPE: ++ ebt_check_option2(flags, AUDIT_TYPE); ++ ++ if (!strcasecmp(optarg, "accept")) ++ info->type = XT_AUDIT_TYPE_ACCEPT; ++ else if (!strcasecmp(optarg, "drop")) ++ info->type = XT_AUDIT_TYPE_DROP; ++ else if (!strcasecmp(optarg, "reject")) ++ info->type = XT_AUDIT_TYPE_REJECT; ++ else ++ ebt_print_error2("Bad action type value `%s'", optarg); ++ ++ break; ++ default: ++ return 0; ++ } ++ return 1; ++} ++ ++static void final_check(const struct ebt_u_entry *entry, ++ const struct ebt_entry_match *match, const char *name, ++ unsigned int hookmask, unsigned int time) ++{ ++} ++ ++static void print(const struct ebt_u_entry *entry, ++ const struct ebt_entry_target *target) ++{ ++ const struct xt_AUDIT_info *info = ++ (const struct xt_AUDIT_info *) target->data; ++ ++ printf("--audit-type "); ++ ++ switch(info->type) { ++ case XT_AUDIT_TYPE_ACCEPT: ++ printf("accept"); ++ break; ++ case XT_AUDIT_TYPE_DROP: ++ printf("drop"); ++ break; ++ case XT_AUDIT_TYPE_REJECT: ++ printf("reject"); ++ break; ++ } ++} ++ ++static int compare(const struct ebt_entry_target *t1, ++ const struct ebt_entry_target *t2) ++{ ++ const struct xt_AUDIT_info *info1 = ++ (const struct xt_AUDIT_info *) t1->data; ++ const struct xt_AUDIT_info *info2 = ++ (const struct xt_AUDIT_info *) t2->data; ++ ++ return info1->type == info2->type; ++} ++ ++static struct ebt_u_target AUDIT_target = ++{ ++ .name = "AUDIT", ++ .size = sizeof(struct xt_AUDIT_info), ++ .help = print_help, ++ .init = init, ++ .parse = parse, ++ .final_check = final_check, ++ .print = print, ++ .compare = compare, ++ .extra_ops = opts, ++}; ++ ++void _init(void) ++{ ++ ebt_register_target(&AUDIT_target); ++} +--- ebtables2.orig/extensions/Makefile 2011-01-07 10:55:28.077246240 +0100 ++++ ebtables2.orig/extensions/Makefile 2011-01-07 10:53:46.686329230 +0100 +@@ -1,7 +1,7 @@ + #! /usr/bin/make + + EXT_FUNC+=802_3 nat arp arpreply ip ip6 standard log redirect vlan mark_m mark \ +- pkttype stp among limit ulog nflog ++ pkttype stp among limit ulog nflog AUDIT + EXT_TABLES+=filter nat broute + EXT_OBJS+=$(foreach T,$(EXT_FUNC), extensions/ebt_$(T).o) + EXT_OBJS+=$(foreach T,$(EXT_TABLES), extensions/ebtable_$(T).o) +--- a/include/linux/netfilter/xt_AUDIT.h ++++ a/include/linux/netfilter/xt_AUDIT.h +@@ -0,0 +1,30 @@ ++/* ++ * Header file for iptables xt_AUDIT target ++ * ++ * (C) 2010-2011 Thomas Graf ++ * (C) 2010-2011 Red Hat, Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ */ ++ ++#ifndef _XT_AUDIT_TARGET_H ++#define _XT_AUDIT_TARGET_H ++ ++#include ++ ++enum { ++ XT_AUDIT_TYPE_ACCEPT = 0, ++ XT_AUDIT_TYPE_DROP, ++ XT_AUDIT_TYPE_REJECT, ++ __XT_AUDIT_TYPE_MAX, ++}; ++ ++#define XT_AUDIT_TYPE_MAX (__XT_AUDIT_TYPE_MAX - 1) ++ ++struct xt_AUDIT_info { ++ __u8 type; /* XT_AUDIT_TYPE_* */ ++}; ++ ++#endif /* _XT_AUDIT_TARGET_H */ diff --git a/ebtables-2.0.10-linkfix.patch b/ebtables-2.0.10-linkfix.patch new file mode 100644 index 0000000..b140d72 --- /dev/null +++ b/ebtables-2.0.10-linkfix.patch @@ -0,0 +1,16 @@ +diff -up ebtables-v2.0.10-4/extensions/Makefile.linkfix ebtables-v2.0.10-4/extensions/Makefile +--- ebtables-v2.0.10-4/extensions/Makefile.linkfix 2011-12-15 15:02:47.000000000 -0500 ++++ ebtables-v2.0.10-4/extensions/Makefile 2012-04-05 15:52:09.563511746 -0400 +@@ -9,9 +9,10 @@ EXT_LIBS+=$(foreach T,$(EXT_FUNC), exten + EXT_LIBS+=$(foreach T,$(EXT_TABLES), extensions/libebtable_$(T).so) + EXT_LIBSI+=$(foreach T,$(EXT_FUNC), -lebt_$(T)) + EXT_LIBSI+=$(foreach T,$(EXT_TABLES), -lebtable_$(T)) ++EXT_LDFLAGS+=-L. -lebtc + +-extensions/ebt_%.so: extensions/ebt_%.o +- $(CC) $(LDFLAGS) -shared -o $@ -lc $< -nostartfiles ++extensions/ebt_%.so: extensions/ebt_%.o libebtc.so ++ $(CC) $(LDFLAGS) $(EXT_LDFLAGS) -shared -o $@ -lc $< -nostartfiles + + extensions/libebt_%.so: extensions/ebt_%.so + mv $< $@ diff --git a/ebtables-2.0.10-lockdirfix.patch b/ebtables-2.0.10-lockdirfix.patch new file mode 100644 index 0000000..9fadf08 --- /dev/null +++ b/ebtables-2.0.10-lockdirfix.patch @@ -0,0 +1,50 @@ +diff -up ebtables-v2.0.10-4/ebtables.8.lockdirfix ebtables-v2.0.10-4/ebtables.8 +--- ebtables-v2.0.10-4/ebtables.8.lockdirfix 2016-01-18 11:13:21.707069702 -0500 ++++ ebtables-v2.0.10-4/ebtables.8 2016-01-18 11:13:40.554953365 -0500 +@@ -1103,7 +1103,7 @@ arp message and the hardware address len + .br + .SH FILES + .I /etc/ethertypes +-.I /var/lib/ebtables/lock ++.I /run/ebtables.lock + .SH ENVIRONMENT VARIABLES + .I EBTABLES_ATOMIC_FILE + .SH MAILINGLISTS +diff -up ebtables-v2.0.10-4/INSTALL.lockdirfix ebtables-v2.0.10-4/INSTALL +--- ebtables-v2.0.10-4/INSTALL.lockdirfix 2016-01-18 11:15:31.458268826 -0500 ++++ ebtables-v2.0.10-4/INSTALL 2016-01-18 11:15:53.890130367 -0500 +@@ -31,7 +31,7 @@ WHAT GETS INSTALLED AND WHAT OPTIONS ARE + copied to /etc/rc.d/init.d (change with option INITDIR) + - The ebtables configuration file (ebtables-config) is copied to /etc/sysconfig + - ebtables can use a lock file to enable concurrent execution of the ebtables +- tool. The standard location of the lock file is /var/lib/ebtables/lock. ++ tool. The standard location of the lock file is /run/ebtables.lock. + Include LOCKFILE=<> if you want to use another file. + + That's all +diff -up ebtables-v2.0.10-4/libebtc.c.lockdirfix ebtables-v2.0.10-4/libebtc.c +--- ebtables-v2.0.10-4/libebtc.c.lockdirfix 2016-01-18 11:12:14.347485472 -0500 ++++ ebtables-v2.0.10-4/libebtc.c 2016-01-18 11:13:06.515163472 -0500 +@@ -134,8 +134,8 @@ void ebt_list_extensions() + } + + #ifndef LOCKFILE +-#define LOCKDIR "/var/lib/ebtables" +-#define LOCKFILE LOCKDIR"/lock" ++#define LOCKDIR "/run" ++#define LOCKFILE LOCKDIR"/ebtables.lock" + #endif + static int lockfd = -1, locked; + int use_lockfd; +diff -up ebtables-v2.0.10-4/Makefile.lockdirfix ebtables-v2.0.10-4/Makefile +--- ebtables-v2.0.10-4/Makefile.lockdirfix 2016-01-18 11:14:10.715767201 -0500 ++++ ebtables-v2.0.10-4/Makefile 2016-01-18 11:15:20.506336425 -0500 +@@ -5,7 +5,7 @@ PROGRELEASE:=4 + PROGVERSION_:=2.0.10 + PROGVERSION:=$(PROGVERSION_)-$(PROGRELEASE) + PROGDATE:=December\ 2011 +-LOCKFILE?=/var/lib/ebtables/lock ++LOCKFILE?=/run/ebtables.lock + LOCKDIR:=$(shell echo $(LOCKFILE) | sed 's/\(.*\)\/.*/\1/')/ + + # default paths diff --git a/ebtables-2.0.10-noflush.patch b/ebtables-2.0.10-noflush.patch new file mode 100644 index 0000000..42d5611 --- /dev/null +++ b/ebtables-2.0.10-noflush.patch @@ -0,0 +1,69 @@ +commit 3a25ae2361da048f24524d8e63d70f4cd40444f3 +Author: Sanket Shah +Date: Wed Jul 31 21:40:08 2013 +0200 + + Add --noflush command line support for ebtables-restore + +diff --git a/ebtables-restore.c b/ebtables-restore.c +index ea02960..bb4d0cf 100644 +--- a/ebtables-restore.c ++++ b/ebtables-restore.c +@@ -22,13 +22,25 @@ + #include + #include + #include ++#include + #include "include/ebtables_u.h" + ++static const struct option options[] = { ++ {.name = "noflush", .has_arg = 0, .val = 'n'}, ++ { 0 } ++}; ++ + static struct ebt_u_replace replace[3]; + void ebt_early_init_once(); + + #define OPT_KERNELDATA 0x800 /* Also defined in ebtables.c */ + ++static void print_usage() ++{ ++ fprintf(stderr, "Usage: ebtables-restore [ --noflush ]\n"); ++ exit(1); ++} ++ + static void copy_table_names() + { + strcpy(replace[0].name, "filter"); +@@ -41,11 +53,20 @@ static void copy_table_names() + int main(int argc_, char *argv_[]) + { + char *argv[EBTD_ARGC_MAX], cmdline[EBTD_CMDLINE_MAXLN]; +- int i, offset, quotemode = 0, argc, table_nr = -1, line = 0, whitespace; ++ int i, offset, quotemode = 0, argc, table_nr = -1, line = 0, whitespace, c, flush = 1; + char ebtables_str[] = "ebtables"; + +- if (argc_ != 1) +- ebtrest_print_error("options are not supported"); ++ while ((c = getopt_long(argc_, argv_, "n", options, NULL)) != -1) { ++ switch(c) { ++ case 'n': ++ flush = 0; ++ break; ++ default: ++ print_usage(); ++ break; ++ } ++ } ++ + ebt_silent = 0; + copy_table_names(); + ebt_early_init_once(); +@@ -68,7 +89,7 @@ int main(int argc_, char *argv_[]) + ebtrest_print_error("table '%s' was not recognized", cmdline+1); + table_nr = i; + replace[table_nr].command = 11; +- ebt_get_kernel_table(&replace[table_nr], 1); ++ ebt_get_kernel_table(&replace[table_nr], flush); + replace[table_nr].command = 0; + replace[table_nr].flags = OPT_KERNELDATA; /* Prevent do_command from initialising replace */ + continue; diff --git a/ebtables-2.0.10-norootinst.patch b/ebtables-2.0.10-norootinst.patch new file mode 100644 index 0000000..0017720 --- /dev/null +++ b/ebtables-2.0.10-norootinst.patch @@ -0,0 +1,66 @@ +diff -up ebtables-v2.0.10-1/Makefile.orig ebtables-v2.0.10-1/Makefile +--- ebtables-v2.0.10-1/Makefile.orig 2011-07-10 05:28:52.000000000 -0400 ++++ ebtables-v2.0.10-1/Makefile 2011-07-11 10:45:00.323426448 -0400 +@@ -157,31 +157,31 @@ tmp3:=$(shell printf $(PIPE) | sed 's/\/ + scripts: ebtables-save ebtables.sysv ebtables-config + cat ebtables-save | sed 's/__EXEC_PATH__/$(tmp1)/g' > ebtables-save_ + mkdir -p $(DESTDIR)$(BINDIR) +- install -m 0755 -o root -g root ebtables-save_ $(DESTDIR)$(BINDIR)/ebtables-save ++ install -m 0755 ebtables-save_ $(DESTDIR)$(BINDIR)/ebtables-save + cat ebtables.sysv | sed 's/__EXEC_PATH__/$(tmp1)/g' | sed 's/__SYSCONFIG__/$(tmp2)/g' > ebtables.sysv_ + if [ "$(DESTDIR)" != "" ]; then mkdir -p $(DESTDIR)$(INITDIR); fi +- if test -d $(DESTDIR)$(INITDIR); then install -m 0755 -o root -g root ebtables.sysv_ $(DESTDIR)$(INITDIR)/ebtables; fi ++ if test -d $(DESTDIR)$(INITDIR); then install -m 0755 ebtables.sysv_ $(DESTDIR)$(INITDIR)/ebtables; fi + cat ebtables-config | sed 's/__SYSCONFIG__/$(tmp2)/g' > ebtables-config_ + if [ "$(DESTDIR)" != "" ]; then mkdir -p $(DESTDIR)$(SYSCONFIGDIR); fi +- if test -d $(DESTDIR)$(SYSCONFIGDIR); then install -m 0600 -o root -g root ebtables-config_ $(DESTDIR)$(SYSCONFIGDIR)/ebtables-config; fi ++ if test -d $(DESTDIR)$(SYSCONFIGDIR); then install -m 0600 ebtables-config_ $(DESTDIR)$(SYSCONFIGDIR)/ebtables-config; fi + rm -f ebtables-save_ ebtables.sysv_ ebtables-config_ + + tmp4:=$(shell printf $(LOCKFILE) | sed 's/\//\\\//g') + $(MANDIR)/man8/ebtables.8: ebtables.8 + mkdir -p $(DESTDIR)$(@D) + sed -e 's/$$(VERSION)/$(PROGVERSION)/' -e 's/$$(DATE)/$(PROGDATE)/' -e 's/$$(LOCKFILE)/$(tmp4)/' ebtables.8 > ebtables.8_ +- install -m 0644 -o root -g root ebtables.8_ $(DESTDIR)$@ ++ install -m 0644 ebtables.8_ $(DESTDIR)$@ + rm -f ebtables.8_ + + $(DESTDIR)$(ETHERTYPESFILE): ethertypes + mkdir -p $(@D) +- install -m 0644 -o root -g root $< $@ ++ install -m 0644 $< $@ + + .PHONY: exec + exec: ebtables ebtables-restore + mkdir -p $(DESTDIR)$(BINDIR) +- install -m 0755 -o root -g root $(PROGNAME) $(DESTDIR)$(BINDIR)/$(PROGNAME) +- install -m 0755 -o root -g root ebtables-restore $(DESTDIR)$(BINDIR)/ebtables-restore ++ install -m 0755 $(PROGNAME) $(DESTDIR)$(BINDIR)/$(PROGNAME) ++ install -m 0755 ebtables-restore $(DESTDIR)$(BINDIR)/ebtables-restore + + .PHONY: install + install: $(MANDIR)/man8/ebtables.8 $(DESTDIR)$(ETHERTYPESFILE) exec scripts +@@ -205,18 +205,18 @@ release: + rm -f extensions/ebt_inat.c + rm -rf $(CVSDIRS) + mkdir -p include/linux/netfilter_bridge +- install -m 0644 -o root -g root \ ++ install -m 0644 \ + $(KERNEL_INCLUDES)/linux/netfilter_bridge.h include/linux/ + # To keep possible compile error complaints about undefined ETH_P_8021Q + # off my back +- install -m 0644 -o root -g root \ ++ install -m 0644 \ + $(KERNEL_INCLUDES)/linux/if_ether.h include/linux/ +- install -m 0644 -o root -g root \ ++ install -m 0644 \ + $(KERNEL_INCLUDES)/linux/types.h include/linux/ +- install -m 0644 -o root -g root \ ++ install -m 0644 \ + $(KERNEL_INCLUDES)/linux/netfilter_bridge/*.h \ + include/linux/netfilter_bridge/ +- install -m 0644 -o root -g root \ ++ install -m 0644 \ + include/ebtables.h include/linux/netfilter_bridge/ + make clean + touch * diff --git a/ebtables-2.0.9-lsb.patch b/ebtables-2.0.9-lsb.patch new file mode 100644 index 0000000..721deea --- /dev/null +++ b/ebtables-2.0.9-lsb.patch @@ -0,0 +1,106 @@ +diff -up ebtables-v2.0.9-1/ebtables.sysv.lsb ebtables-v2.0.9-1/ebtables.sysv +--- ebtables-v2.0.9-1/ebtables.sysv.lsb 2010-01-15 11:39:31.000000000 +0100 ++++ ebtables-v2.0.9-1/ebtables.sysv 2010-01-15 12:52:24.000000000 +0100 +@@ -18,9 +18,9 @@ source /etc/sysconfig/network + # Check that networking is up. + [ ${NETWORKING} = "no" ] && exit 0 + +-[ -x __EXEC_PATH__/ebtables ] || exit 1 +-[ -x __EXEC_PATH__/ebtables-save ] || exit 1 +-[ -x __EXEC_PATH__/ebtables-restore ] || exit 1 ++[ -x __EXEC_PATH__/ebtables ] || exit 5 ++[ -x __EXEC_PATH__/ebtables-save ] || exit 5 ++[ -x __EXEC_PATH__/ebtables-restore ] || exit 5 + + RETVAL=0 + prog="ebtables" +@@ -39,6 +39,7 @@ config=__SYSCONFIG__/$prog-config + [ -f "$config" ] && . "$config" + + start() { ++ [ "$EUID" != "0" ] && exit 4 + echo -n $"Starting $desc ($prog): " + if [ "$EBTABLES_BINARY_FORMAT" = "yes" ]; then + for table in $(ls __SYSCONFIG__/ebtables.* 2>/dev/null | sed -e 's/.*ebtables\.//' -e '/save/d' ); do +@@ -50,7 +51,7 @@ start() { + + if [ $RETVAL -eq 0 ]; then + success "$prog startup" +- rm -f /var/lock/subsys/$prog ++ touch "/var/lock/subsys/$prog" + else + failure "$prog startup" + fi +@@ -58,6 +59,7 @@ start() { + } + + stop() { ++ [ "$EUID" != "0" ] && exit 4 + echo -n $"Stopping $desc ($prog): " + for table in $(grep '^ebtable_' /proc/modules | sed -e 's/ebtable_\([^ ]*\).*/\1/'); do + __EXEC_PATH__/ebtables -t $table --init-table || RETVAL=1 +@@ -71,7 +73,7 @@ stop() { + + if [ $RETVAL -eq 0 ]; then + success "$prog shutdown" +- rm -f /var/lock/subsys/$prog ++ rm -f "/var/lock/subsys/$prog" + else + failure "$prog shutdown" + fi +@@ -79,11 +81,13 @@ stop() { + } + + restart() { ++ [ "$EBTABLES_SAVE_ON_RESTART" = "yes" ] && save + stop + start + } + + save() { ++ [ "$EUID" != "0" ] && exit 4 + echo -n $"Saving $desc ($prog): " + if [ "$EBTABLES_TEXT_FORMAT" = "yes" ]; then + if [ -e __SYSCONFIG__/ebtables ]; then +@@ -116,30 +120,34 @@ save() { + + case "$1" in + start) ++ [ -f "/var/lock/subsys/$prog" ] && exit 0 + start + ;; + stop) + [ "$EBTABLES_SAVE_ON_STOP" = "yes" ] && save + stop + ;; +- restart|reload) +- [ "$EBTABLES_SAVE_ON_RESTART" = "yes" ] && save ++ restart|force-reload) + restart + ;; +- condrestart) +- [ -e /var/lock/subsys/$prog ] && restart +- RETVAL=$? ++ reload) ++ [ ! -f "/var/lock/subsys/$prog" ] && exit 7 ++ restart ++ ;; ++ condrestart|try-restart) ++ [ ! -e "/var/lock/subsys/$prog" ] && exit 0 ++ restart + ;; + save) + save + ;; + status) ++ [ -f "/var/lock/subsys/$prog" ] && RETVAL=0 || RETVAL=3 + __EXEC_PATH__/ebtables-save +- RETVAL=$? + ;; + *) + echo $"Usage $0 {start|stop|restart|condrestart|save|status}" +- RETVAL=1 ++ RETVAL=2 + esac + + exit $RETVAL diff --git a/ebtables-save b/ebtables-save new file mode 100755 index 0000000..2d7fc4e --- /dev/null +++ b/ebtables-save @@ -0,0 +1,43 @@ +#!/bin/bash + +EBTABLES="/sbin/ebtables" + +[ -x "$EBTABLES" ] || exit 1 + +echo "# Generated by ebtables-save v1.0 on $(date)" + +cnt="" +[ "x$EBTABLES_SAVE_COUNTER" = "xyes" ] && cnt="--Lc" + +for table_name in $(grep -E '^ebtable_' /proc/modules | cut -f1 -d' ' | sed s/ebtable_//); do + table=$($EBTABLES -t $table_name -L $cnt) + [ $? -eq 0 ] || { echo "$table"; exit -1; } + + chain="" + rules="" + while read line; do + [ -z "$line" ] && continue + + case "$line" in + Bridge\ table:\ *) + echo "*${line:14}" + ;; + Bridge\ chain:\ *) + chain="${line:14}" + chain="${chain%%,*}" + policy="${line##*policy: }" + echo ":$chain $policy" + ;; + *) + if [ "$cnt" = "--Lc" ]; then + line=${line/, pcnt \=/ -c} + line=${line/-- bcnt \=/} + fi + rules="$rules-A $chain $line\n" + ;; + esac + done < + +diff -Nur ebtables-v2.0.10-4_orig/ebtables.c ebtables-v2.0.10-4/ebtables.c +--- ebtables-v2.0.10-4_orig/ebtables.c 2019-09-24 15:24:49.560000000 +0800 ++++ ebtables-v2.0.10-4/ebtables.c 2019-09-24 15:28:35.324000000 +0800 +@@ -528,12 +528,6 @@ + ebt_iterate_targets(merge_target); + } + +-/* signal handler, installed when the option --concurrent is specified. */ +-static void sighandler(int signum) +-{ +- exit(-1); +-} +- + /* We use exec_style instead of #ifdef's because ebtables.so is a shared object. */ + int do_command(int argc, char *argv[], int exec_style, + struct ebt_u_replace *replace_) +@@ -1047,8 +1041,6 @@ + strcpy(replace->filename, optarg); + break; + case 13 : /* concurrent */ +- signal(SIGINT, sighandler); +- signal(SIGTERM, sighandler); + use_lockfd = 1; + break; + case 1 : +diff -Nur ebtables-v2.0.10-4_orig/libebtc.c ebtables-v2.0.10-4/libebtc.c +--- ebtables-v2.0.10-4_orig/libebtc.c 2019-09-24 15:24:49.564000000 +0800 ++++ ebtables-v2.0.10-4/libebtc.c 2019-09-24 15:34:02.592000000 +0800 +@@ -31,6 +31,7 @@ + #include "include/ethernetdb.h" + #include + #include ++#include + #include + #include + #include +@@ -137,58 +138,17 @@ + #define LOCKDIR "/run" + #define LOCKFILE LOCKDIR"/ebtables.lock" + #endif +-static int lockfd = -1, locked; + int use_lockfd; + /* Returns 0 on success, -1 when the file is locked by another process + * or -2 on any other error. */ + static int lock_file() + { +- int try = 0; +- int ret = 0; +- sigset_t sigset; +- +-tryagain: +- /* the SIGINT handler will call unlock_file. To make sure the state +- * of the variable locked is correct, we need to temporarily mask the +- * SIGINT interrupt. */ +- sigemptyset(&sigset); +- sigaddset(&sigset, SIGINT); +- sigprocmask(SIG_BLOCK, &sigset, NULL); +- lockfd = open(LOCKFILE, O_CREAT | O_EXCL | O_WRONLY, 00600); +- if (lockfd < 0) { +- if (errno == EEXIST) +- ret = -1; +- else if (try == 1) +- ret = -2; +- else { +- if (mkdir(LOCKDIR, 00700)) +- ret = -2; +- else { +- try = 1; +- goto tryagain; +- } +- } +- } else { +- close(lockfd); +- locked = 1; +- } +- sigprocmask(SIG_UNBLOCK, &sigset, NULL); +- return ret; ++int fd = open(LOCKFILE, O_CREAT, 00600); ++ if (fd < 0) ++ return -2; ++ return flock(fd, LOCK_EX); + } + +-void unlock_file() +-{ +- if (locked) { +- remove(LOCKFILE); +- locked = 0; +- } +-} +- +-void __attribute__ ((destructor)) onexit() +-{ +- if (use_lockfd) +- unlock_file(); +-} + /* Get the table from the kernel or from a binary file + * init: 1 = ask the kernel for the initial contents of a table, i.e. the + * way it looks when the table is insmod'ed diff --git a/ebtables-v2.0.10-4.tar.gz b/ebtables-v2.0.10-4.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..eb998757f7d6189052374967bd9cd65046158a5b GIT binary patch literal 103764 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�aPdg|D@E^f|p!O&97F=AZ7+@y{YngdFDbG?b<{ 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ⅈIG(cIH>>FNM!Gk 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⩔b4AS; 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 literal 0 HcmV?d00001 diff --git a/ebtables.service b/ebtables.service new file mode 100644 index 0000000..e0b0162 --- /dev/null +++ b/ebtables.service @@ -0,0 +1,11 @@ +[Unit] +Description=Ethernet Bridge Filtering tables + +[Service] +Type=oneshot +RemainAfterExit=yes +ExecStart=/usr/libexec/ebtables start +ExecStop=/usr/libexec/ebtables stop + +[Install] +WantedBy=multi-user.target diff --git a/ebtables.spec b/ebtables.spec new file mode 100644 index 0000000..319c94d --- /dev/null +++ b/ebtables.spec @@ -0,0 +1,106 @@ +%global ebminor 4 + +Name: ebtables +Version: 2.0.10 +Release: 30 +Summary: A filtering tool for a Linux-based bridging firewall +License: GPLv2+ +URL: http://ebtables.sourceforge.net/ +Source0: http://downloads.sourceforge.net/ebtables/ebtables-v%{version}-%{ebminor}.tar.gz +Source1: ebtables-save +Source2: ebtables.systemd +Source3: ebtables.service + +#patches from fedora/redhat repository +Patch0001: ebtables-2.0.10-norootinst.patch +Patch0002: ebtables-2.0.9-lsb.patch +Patch0003: ebtables-2.0.10-linkfix.patch +Patch0004: ebtables-2.0.0-audit.patch +Patch0005: 0001-add-RARP-and-update-iana-url.patch +Patch0006: ebtables-2.0.10-lockdirfix.patch +Patch0007: ebtables-2.0.10-noflush.patch +# patch0008 from https://patchwork.ozlabs.org +Patch0008: ebtables-use-flock-for-concurrent-option.patch + +BuildRequires: systemd +Requires: systemd %{_sbindir}/update-alternatives +Conflicts: setup < 2.10.4-1 + +%description +The ebtables program is a filtering tool for a Linux-based bridging firewall.It enables transparent filtering of network traffic passing through a Linux bridge.The filtering possibilities are limited to link layer filtering and some basic filtering on higher network layers. +The ebtables tool can be combined with the other Linux filtering tools to make a bridging firewall that is also capable of filtering these higher network layers. This is enabled through the bridge-netfilter architecture which is a part of the standard Linux kernel. + +%package help +Summary: help documents for ebtables + +%description help +Help package contains some doc and man help files for ebtables. + +%prep +%autosetup -n %{name}-v%{version}-%{ebminor} -p1 +f=THANKS; iconv -f iso-8859-1 -t utf-8 $f -o $f.utf8 ; mv $f.utf8 $f + +%build +%make_build CFLAGS="${RPM_OPT_FLAGS}" LIBDIR="/%{_lib}/ebtables" BINDIR="%{_sbindir}" MANDIR="%{_mandir}" LDFLAGS="${RPM_LD_FLAGS} -Wl,-z,now" + +%install +install -d %{buildroot}{%{_initrddir},%{_unitdir},%{_libexecdir},%{_sysconfdir}/sysconfig} +install -p %{SOURCE3} %{buildroot}%{_unitdir}/ +chmod -x %{buildroot}%{_unitdir}/*.service +install -m0755 %{SOURCE2} %{buildroot}%{_libexecdir}/ebtables +%make_install LIBDIR="/%{_lib}/ebtables" BINDIR="%{_sbindir}" MANDIR="%{_mandir}" +touch %{buildroot}%{_sysconfdir}/sysconfig/{ebtables.nat,ebtables.filter,ebtables.broute} + +rm -f %{buildroot}%{_sbindir}/ebtables-save +install %{SOURCE1} %{buildroot}%{_sbindir}/ebtables-save + +mv %{buildroot}/%{_lib}/ebtables/libebtc.so %{buildroot}/%{_lib}/ +mv %{buildroot}%{_sbindir}/ebtables %{buildroot}%{_sbindir}/ebtables-legacy +touch %{buildroot}%{_sbindir}/ebtables + +%post +%systemd_post ebtables.service +%?ldconfig +if [ "$(readlink -e %{_sbindir}/ebtables)" == %{_sbindir}/ebtables ]; then + rm -f %{_sbindir}/ebtables +fi +%{_sbindir}/update-alternatives --install %{_sbindir}/ebtables ebtables %{_sbindir}/ebtables-legacy 10 + +%preun +%systemd_preun ebtables.service + +%postun +%systemd_postun_with_restart ebtables.service +%?ldconfig +if [ $1 -eq 0 ]; then + %{_sbindir}/update-alternatives --remove ebtables %{_sbindir}/ebtables-legacy +fi + +%files +%license COPYING +%{_unitdir}/ebtables.service +%{_libexecdir}/ebtables +/%{_lib}/libebtc.so +/%{_lib}/ebtables/ +%{_sbindir}/ebtables-* +%exclude %{_initrddir} +%exclude %{_sysconfdir}/ethertypes +%config(noreplace) %{_sysconfdir}/sysconfig/ebtables-config +%ghost %{_sbindir}/ebtables +%ghost %{_sysconfdir}/sysconfig/{ebtables.filter,ebtables.nat,ebtables.broute} + +%files help +%doc ChangeLog THANKS +%doc %{_mandir}/man8/ebtables.8* + +%changelog +* Thu Sep 24 2019 gaoguanghui - 2.0.10-30 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:this patch made future ebtables processes wait indefinitely for the lock to + become free + +* Mon Sep 16 2019 yanzhihua - 2.0.10-29 +- Package init + diff --git a/ebtables.systemd b/ebtables.systemd new file mode 100644 index 0000000..bf06d8a --- /dev/null +++ b/ebtables.systemd @@ -0,0 +1,74 @@ +#!/bin/bash + +RETVAL=0 + +initialize() { + # Initialize $TYPE tables + echo -n $" $TYPE tables: " + if [ -r /etc/sysconfig/ebtables.$TYPE ]; then + /sbin/ebtables -t $TYPE --atomic-file /etc/sysconfig/ebtables.$TYPE --atomic-commit > /dev/null || RETVAL=1 + else + echo -n "not configured" + fi + if [ $RETVAL -eq 0 ]; then + echo -n $"[ OK ]" + echo -ne "\r" + else + echo -n $"[FAILED]" + echo -ne "\r" + fi +} + +case $1 in + start) + # Initialize filter tables + TYPE=filter + initialize + + # Initialize NAT tables + echo + TYPE=nat + initialize + + # Initialize broute tables + echo + TYPE=broute + initialize + ;; + stop) + /sbin/ebtables -t filter --init-table || RETVAL=1 + /sbin/ebtables -t nat --init-table || RETVAL=1 + /sbin/ebtables -t broute --init-table || RETVAL=1 + + for mod in $(grep -E '^(ebt|ebtable)_' /proc/modules | cut -f1 -d' ') ebtables; do + /sbin/rmmod $mod || RETVAL=1 + done + + if [ $RETVAL -eq 0 ]; then + echo -n $"[ OK ]" + echo -ne "\r" + else + echo -n $"[FAILED]" + echo -ne "\r" + fi + ;; + save) + echo -n $"Saving Ethernet bridge filtering (ebtables): " + /sbin/ebtables -t filter --atomic-file /etc/sysconfig/ebtables.filter --atomic-save || RETVAL=1 + /sbin/ebtables -t nat --atomic-file /etc/sysconfig/ebtables.nat --atomic-save || RETVAL=1 + /sbin/ebtables -t broute --atomic-file /etc/sysconfig/ebtables.broute --atomic-save || RETVAL=1 + if [ $RETVAL -eq 0 ]; then + echo -n $"[ OK ]" + echo -ne "\r" + else + echo -n $"[FAILED]" + echo -ne "\r" + fi + ;; + *) + echo "usage: ${0##*/} {start|stop|save}" >&2 + exit 1 + ;; +esac + +# vim:set ts=2 sw=2 ft=sh et: