From 27ebbf6263aedf949213245e73265605a2355164 Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Mon, 28 Dec 2020 13:19:49 +0300 Subject: [PATCH] Drop outdated Snort and Snortsam --- net-analyzer/snort/ChangeLog | 915 ------------------ net-analyzer/snort/Manifest | 1 - net-analyzer/snort/files/snort.confd.2 | 16 - net-analyzer/snort/files/snort.rc11 | 57 -- .../snort/files/snortsam-2.9.2.2.diff.gz | Bin 28987 -> 0 bytes .../files/snortsam-redirect-2.9.2.2.patch | 94 -- net-analyzer/snort/snort-2.9.2.2-r9999.ebuild | 272 ------ net-analyzer/snortsam/Manifest | 2 - .../files/snortsam-2.70-redirect.patch | 513 ---------- .../snortsam/snortsam-2.70-r9999.ebuild | 58 -- 10 files changed, 1928 deletions(-) delete mode 100644 net-analyzer/snort/ChangeLog delete mode 100644 net-analyzer/snort/Manifest delete mode 100644 net-analyzer/snort/files/snort.confd.2 delete mode 100644 net-analyzer/snort/files/snort.rc11 delete mode 100644 net-analyzer/snort/files/snortsam-2.9.2.2.diff.gz delete mode 100644 net-analyzer/snort/files/snortsam-redirect-2.9.2.2.patch delete mode 100644 net-analyzer/snort/snort-2.9.2.2-r9999.ebuild delete mode 100644 net-analyzer/snortsam/Manifest delete mode 100644 net-analyzer/snortsam/files/snortsam-2.70-redirect.patch delete mode 100644 net-analyzer/snortsam/snortsam-2.70-r9999.ebuild diff --git a/net-analyzer/snort/ChangeLog b/net-analyzer/snort/ChangeLog deleted file mode 100644 index 2239020..0000000 --- a/net-analyzer/snort/ChangeLog +++ /dev/null @@ -1,915 +0,0 @@ -# ChangeLog for net-analyzer/snort -# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-analyzer/snort/ChangeLog,v 1.192 2012/04/04 09:39:53 patrick Exp $ - -*snort-2.9.2.2 (04 Apr 2012) - - 04 Apr 2012; Patrick Lauer +snort-2.9.2.2.ebuild: - Bump - - 11 Mar 2012; Joshua Kinard snort-2.9.1.ebuild, - snort-2.9.2.1.ebuild: - Both 2.9.1 and 2.9.2* should be using daq-0.6 or greater. - -*snort-2.9.2.1 (11 Mar 2012) - - 11 Mar 2012; Joshua Kinard - -files/snort-2.8.4-libnet.patch, -snort-2.8.5.1.ebuild, - -snort-2.8.5.3.ebuild, -snort-2.8.6.ebuild, -snort-2.8.6.1.ebuild, - -snort-2.9.0.4-r1.ebuild, snort-2.9.0.5.ebuild, snort-2.9.1.ebuild, - -snort-2.9.2.ebuild, +snort-2.9.2.1.ebuild, -files/pcap_memory.patch, - -files/snort.rc9, -files/snort.reload.rc1, metadata.xml: - Drop old versions and associated files, add 2.9.2.1, and tweak SRC_URI to use - a download URL specified on the Snort website that doesn't require manual - updating for each new release. - - 11 Mar 2012; Tim Harder snort-2.9.2.ebuild: - Fix multilib issue (bug #403725, patch by Rick Farina). - -*snort-2.9.2 (11 Jan 2012) - - 11 Jan 2012; Patrick Lauer +snort-2.9.2.ebuild: - Bump - - 29 Sep 2011; Peter Volkov snort-2.9.1.ebuild: - Fix inability to remove .la files, bug 384443 thank Juergen Rose for report - and Jason Wallace for fix. - -*snort-2.9.1 (22 Sep 2011) - - 22 Sep 2011; Patrick Lauer +snort-2.9.1.ebuild, - +files/snort.confd.2, +files/snort.rc11, metadata.xml: - Bump for #382851, thanks to Jason Wallace - - 21 Sep 2011; Tony Vroon snort-2.9.0.5.ebuild: - Marked stable on AMD64 based on arch testing by Agostino "ago" Sarubbo & - Elijah "Armageddon" El Lazkani in bug #382857. - - 24 Jul 2011; Kacper Kowalik snort-2.9.0.5.ebuild: - Marked ~ppc/~ppc64 wrt #351551 - - 24 Apr 2011; Raúl Porcel snort-2.9.0.4-r1.ebuild, - snort-2.9.0.5.ebuild: - Add ~sparc wrt #351551 - -*snort-2.9.0.5 (13 Apr 2011) - - 13 Apr 2011; Patrick Lauer +snort-2.9.0.5.ebuild: - Bump for #362417 - - 02 Apr 2011; Samuli Suominen snort-2.8.5.1.ebuild, - snort-2.8.5.3.ebuild, snort-2.8.6.ebuild, snort-2.8.6.1.ebuild: - Use net-libs/libpcap instead of virtual/libpcap wrt #358835. - - 17 Mar 2011; Patrick Lauer snort-2.9.0.4-r1.ebuild: - amd64 stable as I accidentally dropped .3 with stable keyword - - 17 Mar 2011; Patrick Lauer -snort-2.9.0.1.ebuild, - -snort-2.9.0.2.ebuild, -snort-2.9.0.3.ebuild, -snort-2.9.0.4.ebuild, - snort-2.9.0.4-r1.ebuild: - Push alpha keyword to .4 and remove old 2.9 versions - - 13 Mar 2011; Markus Meier snort-2.9.0.4-r1.ebuild: - add ~arm, bug #351551 - - 07 Mar 2011; Tobias Klausmann snort-2.9.0.3.ebuild: - Keyworded on alpha, bug #351551 - -*snort-2.9.0.4-r1 (01 Mar 2011) - - 01 Mar 2011; Joshua Kinard +snort-2.9.0.4-r1.ebuild: - Fix #356905, upstream released a patch to address a bug with partial HTTP URI - decoding and incremented the internal build number, but did not bump the - version number on the available tarball. Build is now 111 from 110. - - 28 Feb 2011; Jeroen Roovers snort-2.9.0.4.ebuild: - Do not install temporary log files (bug #356547). - - 26 Feb 2011; Thomas Kahle snort-2.9.0.4.ebuild: - x86 stable per bug 351549 - - 25 Feb 2011; Patrick Lauer files/disabledynamic.patch: - Fixing patch - - 25 Feb 2011; Patrick Lauer files/disabledynamic.patch: - Fixing confused patch - -*snort-2.9.0.4 (24 Feb 2011) - - 24 Feb 2011; Patrick Lauer +snort-2.9.0.4.ebuild, - +files/disabledynamic.patch, metadata.xml: - Bump for #355865, thanks to Jason Wallace - - 14 Jan 2011; Markos Chandras snort-2.9.0.3.ebuild: - Stable on amd64 wrt bug #351549 - -*snort-2.9.0.3 (13 Jan 2011) - - 13 Jan 2011; Patrick Lauer snort-2.8.5.1.ebuild, - +snort-2.9.0.3.ebuild: - Bump for #351459, dropping x86 stable keyword as libprelude dropped it. - -*snort-2.9.0.2 (03 Dec 2010) - - 03 Dec 2010; Patrick Lauer +snort-2.9.0.2.ebuild: - Bump for #347459 - -*snort-2.9.0.1 (02 Nov 2010) - - 02 Nov 2010; Patrick Lauer +snort-2.9.0.1.ebuild, - +files/snort.rc10, metadata.xml: - Bump for #341013, many ebuild improvements by Jason Wallace and pva - -*snort-2.8.6.1 (13 Aug 2010) - - 13 Aug 2010; Patrick Lauer +snort-2.8.6.1.ebuild: - Bump, ebuild cleanups by Jason Wallace, fixes #331069 - - 19 Jul 2010; Markus Meier snort-2.8.6.ebuild: - add ~arm, bug #301080 - - 11 Jul 2010; Patrick Lauer +snort-2.8.5.3.ebuild: - Readding last 2.8.5 release by popular request - - 18 Jun 2010; Patrick Lauer -snort-2.8.4.1.ebuild, - -snort-2.8.5.2.ebuild, -snort-2.8.5.3.ebuild: - Remove old - - 17 Jun 2010; Patrick Lauer snort-2.8.4.1.ebuild, - snort-2.8.5.1.ebuild, snort-2.8.5.2.ebuild, snort-2.8.5.3.ebuild, - snort-2.8.6.ebuild: - Migrating away from deprecated postgres virtuals - -*snort-2.8.6 (02 Jun 2010) - - 02 Jun 2010; Patrick Lauer +snort-2.8.6.ebuild, - metadata.xml: - Bump, fixes #319279. Thanks to Jason Wallace and Brett Edgar - -*snort-2.8.5.3 (02 Mar 2010) - - 02 Mar 2010; Patrick Lauer +snort-2.8.5.3.ebuild: - Bump for #307351, thanks to Jason Wallace - -*snort-2.8.5.2 (04 Jan 2010) - - 04 Jan 2010; Patrick Lauer +snort-2.8.5.2.ebuild: - Bump, thanks to Jason Wallace - - 26 Dec 2009; Raúl Porcel snort-2.8.5.1.ebuild: - Add ~sparc wrt #268620 - - 26 Nov 2009; Joseph Jezak snort-2.8.5.1.ebuild: - Marked ppc stable for bug #291357. - - 17 Nov 2009; Brent Baude snort-2.8.5.1.ebuild: - Marking snort-2.8.5.1 ppc64 for bug 291357 - - 07 Nov 2009; Tobias Klausmann snort-2.8.5.1.ebuild: - Stable on alpha, bug #291357 - - 04 Nov 2009; Markus Meier snort-2.8.5.1.ebuild: - amd64/x86 stable, bug #291357 - -*snort-2.8.5.1 (02 Nov 2009) - - 02 Nov 2009; Patrick Lauer +snort-2.8.5.1.ebuild, - +files/snort.reload.rc1, metadata.xml: - Bump, thanks to Jason Wallace. Fixes #291558 #291604 #291357 - - 12 Sep 2009; Víctor Ostorga - -files/snort-2.6.1.1-libnet.patch, -files/snort-2.6.1.2-libdir.patch, - -files/snort-2.6.1.2-react.patch, -files/snort-2.6.1.4-libdnet-ip6.patch, - -files/snort-2.6.1.4-server_stats.patch, - -files/snort-2.8.3.1-libnet.patch, -files/snort.rc7, -files/snort.rc8, - -files/spo_database_fix.patch: - Cleaning out unused files - - 17 Aug 2009; Patrick Lauer snort-2.8.4.1.ebuild: - Small typo fix, closes #279926 - - 31 May 2009; Patrick Lauer -snort-2.6.1.3-r1.ebuild, - -snort-2.6.1.4.ebuild, -snort-2.6.1.4-r1.ebuild, -snort-2.7.0.1.ebuild, - -snort-2.8.3.1.ebuild, -snort-2.8.4-r2.ebuild, metadata.xml: - Removing old - - 31 May 2009; Patrick Lauer -snort-2.4.5.ebuild: - Removing old for #271680 - - 25 May 2009; Peter Volkov snort-2.8.4.1.ebuild: - emake should have die at the end. - - 21 May 2009; Brent Baude snort-2.8.4.1.ebuild: - stable ppc, bug 268620 - - 13 May 2009; Markus Meier snort-2.8.4.1.ebuild: - amd64/x86 stable, bug #268620 - - 11 May 2009; Peter Volkov metadata.xml: - Added Jason Wallace to maintainers. - - 11 May 2009; Brent Baude snort-2.8.4.1.ebuild: - stable ppc64, bug 268620 - - 09 May 2009; Tobias Klausmann snort-2.8.4.1.ebuild: - Stable on alpha, bug #268620 - -*snort-2.8.4.1 (05 May 2009) - - 05 May 2009; Patrick Lauer +snort-2.8.4.1.ebuild: - Bump to 2.8.4.1, thanks to Jason Wallace. Closes #268620 - -*snort-2.8.4-r2 (30 Apr 2009) - - 30 Apr 2009; Patrick Lauer -snort-2.8.4.ebuild, - -snort-2.8.4-r1.ebuild, +snort-2.8.4-r2.ebuild: - Lots of small fixes thanks to Jason Wallace. Fixes #266930. - -*snort-2.8.4-r1 (18 Apr 2009) - - 18 Apr 2009; Patrick Lauer +snort-2.8.4-r1.ebuild: - Small compilation fix for ipv6+prelude useflag combo. Thanks to Jason - Wallace. - -*snort-2.8.4 (17 Apr 2009) - - 17 Apr 2009; Patrick Lauer - +files/snort-2.8.4-libnet.patch, +files/pcap_memory.patch, - files/snort.confd, +files/snort.rc9, +files/spo_database_fix.patch, - metadata.xml, +snort-2.8.4.ebuild: - Bump to 2.8.4. Reworked ebuild thanks to Jason Wallace. Lots of changes, - see bug #266288 for details. - -*snort-2.6.1.4-r1 (01 Mar 2009) - - 01 Mar 2009; Patrick Lauer - +files/snort-2.6.1.4-server_stats.patch, +snort-2.6.1.4-r1.ebuild: - Fixing snort 2.6.1.4 for gcc 4.3.3 / foritfy_sources. Fixes #258487. Patch - by Attila Fazekas. - - 26 Jan 2009; Mike Frysinger snort-2.8.3.1.ebuild: - Drop usage of USE=pic here. - - 02 Jan 2009; Tobias Scherbaum - snort-2.8.3.1.ebuild: - Fix postgres dep, #253429 - - 31 Dec 2008; Tobias Scherbaum metadata.xml, - snort-2.8.3.1.ebuild: - Various QA fixes, as requested by Mr_Bones_. Also describe local use-flags - (and switch pthreads to just threads), though those local use-flags do need - some better descriptions. Hey, at least I do care ... - -*snort-2.8.3.1 (23 Nov 2008) - - 23 Nov 2008; Marcelo Goes - +files/snort-2.8.3.1-libnet.patch, +snort-2.8.3.1.ebuild: - 2.8.3.1 version bump with many changes for bug 245752. Thanks to Jason - Wallace and Antixrict for the rewrite. Currently in package.mask for testing. - - 04 Aug 2008; Jeroen Roovers metadata.xml: - Describe local USE flags for GLEP 56. - - 21 May 2008; Tiziano Müller snort-2.4.5.ebuild, - snort-2.6.1.3-r1.ebuild, snort-2.6.1.4.ebuild, snort-2.7.0.1.ebuild: - Changed dependency for postgresql from dev-db/postgresql to - virtual/postgresql-server - - 19 May 2008; Tiziano Müller snort-2.4.5.ebuild, - snort-2.6.1.3-r1.ebuild, snort-2.6.1.4.ebuild, snort-2.7.0.1.ebuild: - Changed dependency for postgresql to virtual/postgresql-base - - 13 May 2008; Ferris McCormick snort-2.6.1.3-r1.ebuild, - snort-2.6.1.4.ebuild: - Making ~sparc again for testing, Bug #221917 - -*snort-2.7.0.1 (05 Sep 2007) - - 05 Sep 2007; Markus Ullmann +snort-2.7.0.1.ebuild: - Version bump wrt bug #185501, needs more testing - - 22 Apr 2007; Daniel Black +files/snort.rc7, - -files/snort.rc9, +snort-2.4.5.ebuild, snort-2.6.1.4.ebuild, - -snort-2.6.1.4-r1.ebuild: - snort.conf default to install to /etc/snort/snort.conf.distrib like the init - script says. No includes proper amd64 library paths too - - 07 Apr 2007; Raphael Marichez - +files/snort-2.6.1.4-libdnet-ip6.patch, snort-2.6.1.4.ebuild: - Fix #173594, ip6 header redeclaration if libdnet. - -*snort-2.6.1.4 (06 Apr 2007) - - 06 Apr 2007; Marcelo Goes +snort-2.6.1.4.ebuild: - 2.6.1.4 version bump. - - 28 Feb 2007; Daniel Black - snort-2.6.1.3-r1.ebuild: - ewarn fixed as per bug #168714 thanks to Toralf - -*snort-2.6.1.3-r1 (28 Feb 2007) - - 28 Feb 2007; Daniel Black -snort-2.6.1.3.ebuild, - +snort-2.6.1.3-r1.ebuild: - -m better default config thanks to Mike Gualtieri as per bug #166874 - - 27 Feb 2007; Tobias Scherbaum - snort-2.6.1.3.ebuild: - Stable on ppc wrt bug #167730. - - 27 Feb 2007; Steve Dibb snort-2.6.1.3.ebuild: - amd64 stable, security bug 167730 - - 21 Feb 2007; Daniel Black snort-2.6.1.2.ebuild, - snort-2.6.1.3.ebuild: - gre patches included in the latest. Fix ebuild error with USE=gre too. - Thanks Tobias bug #167730 - - 20 Feb 2007; Markus Rothe snort-2.6.1.3.ebuild: - Stable on ppc64; bug #167730 - - 20 Feb 2007; Markus Ullmann snort-2.6.1.3.ebuild: - Stable on x86 for bug #167730 - -*snort-2.6.1.3 (20 Feb 2007) - - 20 Feb 2007; Markus Ullmann +snort-2.6.1.3.ebuild: - Security bump wrt bug #167730 - - 11 Feb 2007; Simon Stelling - +files/snort-2.6.1.2-libdir.patch, snort-2.6.1.2.ebuild: - fix multilib-strict and mark stable on amd64; security bug 161632 - - 01 Feb 2007; Markus Ullmann - +files/snort-2.6.1.2-react.patch, snort-2.6.1.2.ebuild: - Add patch for react failure, see bug #162598 for details, thanks to - perry@csk.pl - - 31 Jan 2007; Tobias Scherbaum - snort-2.6.1.2.ebuild: - Stable on ppc wrt bug #161632. - - 27 Jan 2007; Raúl Porcel snort-2.6.1.2.ebuild: - x86 stable wrt bug 161632 - - 27 Jan 2007; Markus Rothe snort-2.6.1.2.ebuild: - Stable on ppc64; bug #161632 - -*snort-2.6.1.2 (17 Jan 2007) - - 17 Jan 2007; Markus Ullmann - +files/snort-2.6.1.1-gre.patch, -snort-2.6.0.ebuild, - -snort-2.6.1.1.ebuild, +snort-2.6.1.2.ebuild: - Fix for security bug #161632 and bug #161750 - - 25 Nov 2006; Cedric Krier snort-2.4.5.ebuild: - Fix bug #149496 - -*snort-2.6.1.1 (25 Nov 2006) - - 25 Nov 2006; Cedric Krier - +files/snort-2.6.1.1-libnet.patch, +files/snort.rc8, - +snort-2.6.1.1.ebuild: - Version bump thanks to Jason Wallace - - 23 Nov 2006; Francesco Riosa snort-2.4.5.ebuild, - snort-2.6.0.ebuild: - dev-db/mysql => virtual/mysql - - 31 Oct 2006; Markus Ullmann snort-2.6.0.ebuild: - Adding -j1 o fix parallel make issue - - 09 Oct 2006; Markus Ullmann snort-2.4.5.ebuild, - snort-2.6.0.ebuild: - Updating deps wrt bug #143033 - - 20 Sep 2006; Stefaan De Roeck snort-2.6.0.ebuild: - Keyworded ~alpha, as there seems to be no reason to keep -alpha - -*snort-2.6.0 (08 Jul 2006) - - 08 Jul 2006; Marcelo Goes +snort-2.6.0.ebuild: - 2.6.0 version bump for bug 136250. Thanks to Ed Davison , Andrew Ross , - Jason Wallace and Brett Edgar . Currently in package.mask for testing. - - 08 Jul 2006; Marcelo Goes - -files/2.3.0-libnet-1.0.patch, -files/snort-2.3.3-log.c.diff, - -files/snort-2.4.4-demarc-patch.diff, -files/snort.rc6, - -snort-2.3.3.ebuild, -snort-2.3.3-r1.ebuild, -snort-2.4.3.ebuild, - -snort-2.4.3-r1.ebuild, -snort-2.4.3-r2.ebuild, -snort-2.4.4.ebuild, - -snort-2.4.4-r1.ebuild: - Remove old ebuilds and unused files. - - 10 Jun 2006; Thomas Cort snort-2.4.5.ebuild: - Stable on amd64 wrt security Bug #135112. - - 07 Jun 2006; Mark Loeser snort-2.4.5.ebuild: - Stable on x86; bug #135112 - - 06 Jun 2006; Tobias Scherbaum snort-2.4.5.ebuild: - ppc stable, bug #135112 - - 06 Jun 2006; Markus Rothe snort-2.4.5.ebuild: - Stable on ppc64; bug #135112 - - 06 Jun 2006; Markus Ullmann snort-2.3.3.ebuild, - snort-2.3.3-r1.ebuild, snort-2.4.3.ebuild, snort-2.4.3-r1.ebuild, - snort-2.4.3-r2.ebuild, snort-2.4.4.ebuild, snort-2.4.4-r1.ebuild, - snort-2.4.5.ebuild: - Changing dep to virtual/libpcap wrt bug #117898 - -*snort-2.4.5 (06 Jun 2006) - - 06 Jun 2006; Markus Ullmann +snort-2.4.5.ebuild: - Version bump wrt bug #135112 - -*snort-2.4.4-r1 (01 Jun 2006) - - 01 Jun 2006; Markus Ullmann +snort-2.4.4-r1.ebuild: - Applying security patch from bug #135112 - - 30 Apr 2006; Simon Stelling snort-2.4.3-r1.ebuild: - stable on amd64 - -*snort-2.4.4 (09 Mar 2006) - - 09 Mar 2006; Marcelo Goes +snort-2.4.4.ebuild: - 2.4.4 version bump for bug 125607, requested by Ken Garland . - - 20 Feb 2006; Markus Rothe snort-2.4.3-r1.ebuild: - Stable on ppc64 - - 17 Feb 2006; Michael Hanselmann snort-2.4.3-r1.ebuild: - Stable on ppc. - -*snort-2.4.3-r2 (17 Feb 2006) - - 17 Feb 2006; Marcelo Goes +files/snort.rc7, - +snort-2.4.3-r2.ebuild: - Add --pidfile option to init script for bug 123169. Thanks to Eric Brown - . - - 15 Feb 2006; Markus Ullmann snort-2.3.3.ebuild, - snort-2.3.3-r1.ebuild, snort-2.4.3.ebuild, snort-2.4.3-r1.ebuild: - Removing virtual/libpcap wrt bug #117898 - - 14 Feb 2006; Mark Loeser snort-2.4.3-r1.ebuild: - Stable on x86; bug #118708 - -*snort-2.4.3-r1 (27 Jan 2006) - - 27 Jan 2006; Marcelo Goes -snort-2.4.1.ebuild, - -snort-2.4.1-r1.ebuild, +snort-2.4.3-r1.ebuild: - Install basic rules for bug 110103. Thanks to Mark Conway and Donald R. Gray Jr . - - 03 Dec 2005; Tom Gall snort-2.3.3-r1.ebuild: - stable on ppc64 - - 26 Nov 2005; Benjamin Smee files/snort.rc6: - Change to init script to accept CONF - -*snort-2.4.3 (19 Oct 2005) - - 19 Oct 2005; Benjamin Smee +snort-2.4.3.ebuild: - revbump for bug #109730 - -*snort-2.4.1-r1 (08 Oct 2005) - - 08 Oct 2005; Benjamin Smee +snort-2.4.1-r1.ebuild: - New conf.d and init.d files as well as sguil integration - - 25 Sep 2005; Marcelo Goes -snort-2.3.0-r1.ebuild, - -snort-2.3.2.ebuild, snort-2.3.3-r1.ebuild, snort-2.4.1.ebuild: - Remove old ebuilds, depend on >=dev-libs/libprelude-0.9.0. - - 21 Sep 2005; Mark Loeser snort-2.3.3.ebuild: - Stable on x86 - - 17 Sep 2005; Michael Hanselmann snort-2.3.3.ebuild: - Stable on ppc. - -*snort-2.4.1 (17 Sep 2005) - - 17 Sep 2005; Marcelo Goes - +files/snort-2.3.3-log.c.diff, snort-2.3.3.ebuild, snort-2.3.3-r1.ebuild, - -snort-2.4.0.ebuild, +snort-2.4.1.ebuild: - Add patch and 2.4.1 version bump for bug 105852. - - 03 Sep 2005; snort-2.4.0.ebuild: - Fixed ebuild as per bug #103482 thanks to yoann@prelude-ids.org - - 23 Aug 2005; Aaron Walker snort-2.3.0-r1.ebuild, - snort-2.3.2.ebuild, snort-2.3.3.ebuild, snort-2.3.3-r1.ebuild, - snort-2.4.0.ebuild: - Use -1 instead of /bin/false, bug #103421. - - 03 Aug 2005; Marcelo Goes snort-2.4.0.ebuild: - Install community rules. - - 01 Aug 2005; Marcelo Goes snort-2.4.0.ebuild: - In Soviet Russia, prelude enables you. Using use_enable instead of use_with - for prelude. Thanks to BaSS and dragonheart for pointing this out. - - 29 Jul 2005; Daniel Black snort-2.3.0-r1.ebuild, - snort-2.3.2.ebuild, snort-2.3.3.ebuild, snort-2.3.3-r1.ebuild, - snort-2.4.0.ebuild: - removed die from epatch || die. - - 29 Jul 2005; Marcelo Goes snort-2.4.0.ebuild: - Use Gentoo mirrors for patches instead of my dev space. - -*snort-2.4.0 (29 Jul 2005) - - 29 Jul 2005; Marcelo Goes - -files/2.0.6-libnet-1.0.patch, -files/2.1.2-libnet-1.0.patch, - -files/snort-2.0.6-gcc3.patch, -files/snort-2.1.2-gcc3.patch, - -files/snort-2.1.3-gcc3.patch, -files/snort-drop-calculation.diff, - -snort-2.0.6.ebuild, -snort-2.1.3.ebuild, -snort-2.2.0.ebuild, - -snort-2.3.0_rc2.ebuild, -snort-2.3.0.ebuild, +snort-2.4.0.ebuild, - -snort-2.4.20050508.ebuild: - Removing ebuilds prior to 2.3.0 and 2.4.0 version bump. - - 25 Jul 2005; Marcelo Goes snort-2.3.3-r1.ebuild: - Move snort user code from pkg_preinst to pkg_setup, changed it a bit. Fixes - bug 94161. Thanks to kakou and Marco Morales - . - - 24 Jul 2005; Marcelo Goes snort-2.3.3-r1.ebuild: - Fix RULEPATH in example config. Fixes bug 99397. Thanks to Marco Morales - . - - 27 Jun 2005; Markus Rothe snort-2.3.3-r1.ebuild, - snort-2.4.20050508.ebuild: - Added ~ppc64 - - 25 Jun 2005; Marcelo Goes snort-2.3.3-r1.ebuild: - Install rules in /etc/snort/rules for cleaner layout. Fixes bug 95368. - Thanks to Greg Watson . - - 26 May 2005; Marcelo Goes : - Took snort-2.3.3-r1 out of package.mask. - -*snort-2.3.3-r1 (08 May 2005) - - 08 May 2005; Marcelo Goes +snort-2.3.3-r1.ebuild, - +snort-2.4.20050508.ebuild: - Prelude patching fun. Making snort-2.3.3-r1 depend on >=libprelude-0.9.0_rc1 - and using patch from their mailing list, as pointed out by Yoann - Vandoorselaere . Also, I made a cvs snapshot of - snort-2.4, which does not require patching anymore, since prelude patches were - accepted in snort. Of course, both new ebuilds are in package.mask for testing - - I expect unexpected borks. This hopefully fixes bug 91820. Thanks to dago - for reporting. - -*snort-2.3.3 (07 May 2005) - - 07 May 2005; Aaron Walker +snort-2.3.3.ebuild: - Version bump for bug 91673. - - 19 Apr 2005; Aaron Walker snort-2.3.2.ebuild: - Marked stable on x86. - - 22 Mar 2005; Aaron Walker snort-2.3.2.ebuild: - Fix missing patch for bug 86219. - -*snort-2.3.2 (19 Mar 2005) - - 19 Mar 2005; Aaron Walker snort-2.3.0-r1.ebuild, - +snort-2.3.2.ebuild: - Version bump; marked 2.3.0-r1 stable on x86. - - 09 Feb 2005; Aaron Walker snort-2.3.0-r1.ebuild, - snort-2.3.0.ebuild, snort-2.3.0_rc2.ebuild: - Fix typo in pkg_postinst for bug 81415. - - 07 Feb 2005; Daniel Black snort-2.3.0-r1.ebuild: - ppc stable - -*snort-2.3.0-r1 (06 Feb 2005) - - 06 Feb 2005; Aaron Walker +snort-2.3.0-r1.ebuild, - snort-2.3.0.ebuild: - Revision bump for bug 80831; added sguil support. Marked 2.3.0 stable on x86. - - 29 Jan 2005; Daniel Black snort-2.0.6.ebuild, - snort-2.1.3.ebuild, snort-2.2.0.ebuild, snort-2.3.0.ebuild, - snort-2.3.0_rc2.ebuild: - changed net-libs/libpcap depend to virtual/libcap - -*snort-2.3.0 (27 Jan 2005) - - 27 Jan 2005; Aaron Walker - +files/2.3.0-libnet-1.0.patch, -files/2.3.0_rc2-libnet-1.0.patch, - +snort-2.3.0.ebuild, snort-2.3.0_rc2.ebuild: - 2.3.0 final; added support for snort-inline via USE=inline. Updated - libnet-1.0 patch to also patch inline.c. Closes bugs 79708 and 79664. - - 25 Jan 2005; Daniel Black snort-2.0.6.ebuild, - snort-2.1.3.ebuild, snort-2.2.0.ebuild, snort-2.3.0_rc2.ebuild: - change shell of snort user to /bin/false as per bug #79216. Thanks to Sascha - Nitsch - - 25 Jan 2005; Aaron Walker snort-2.3.0_rc2.ebuild: - Run autoreconf since it looks like autogen.sh is no longer provided; fixes - bug 79389. - - 11 Jan 2005; Jason Wever snort-2.0.6.ebuild, - snort-2.1.3.ebuild, snort-2.2.0.ebuild, snort-2.3.0_rc2.ebuild: - Masked on sparc wrt bugs #29661 and #75395. - - 11 Jan 2005; Daniel Black snort-2.3.0_rc2.ebuild: - unmasked and x86, ppc stable - -*snort-2.3.0_rc2 (11 Jan 2005) - - 11 Jan 2005; Daniel Black - +files/2.3.0_rc2-libnet-1.0.patch, +snort-2.3.0_rc2.ebuild: - Version bump as per security bug #75395. Still masked pending - further testing - - 28 Nov 2004; Eldad Zack snort-2.1.3.ebuild, - snort-2.2.0.ebuild: - Small post install info error. Thanks to John Barton - for reporting. Closes #72570. - - 30 Oct 2004; Eldad Zack -snort-2.1.2.ebuild, - snort-2.2.0.ebuild: - x86 stable. - - 29 Oct 2004; Eldad Zack snort-2.1.3.ebuild, - snort-2.2.0.ebuild: - Added einfo for MySQL/PostgreSQL usage. Closes #68922. - - 16 Aug 2004; Eldad Zack snort-2.1.3.ebuild, - snort-2.2.0.ebuild: - x86 stable. added ~ppc which was omitted between 2.1.2 and 2.1.3. - -*snort-2.2.0 (15 Aug 2004) - - 15 Aug 2004; Eldad Zack -snort-2.1.0-r1.ebuild, - -snort-2.1.0.ebuild, +snort-2.2.0.ebuild: - Version bump - - 01 Jul 2004; Jon Hood snort-2.0.6.ebuild, - snort-2.1.0-r1.ebuild, snort-2.1.0.ebuild, snort-2.1.1.ebuild, - snort-2.1.2.ebuild, snort-2.1.3.ebuild: - change virtual/glibc to virtual/libc - -*snort-2.1.3 (01 Jul 2004) - - 01 Jul 2004; Eldad Zack +files/snort-2.1.3-gcc3.patch, - +snort-2.1.3.ebuild: - Version bump, added snortsam support. - - 19 Jun 2004; Michael Hanselmann snort-2.0.6.ebuild: - Marked snort 2.0.6 as ~ppc - - 19 Jun 2004; David Holm snort-2.1.2.ebuild: - Added to ~ppc. - - 19 May 2004; Michael Boman snort-1.9.1-r3.ebuild, - snort-2.0.0.ebuild, snort-2.0.1-r1.ebuild, snort-2.0.2.ebuild, - snort-2.0.5-r1.ebuild, snort-2.0.5-r2.ebuild, snort-2.0.5.ebuild, - files/1.9.1-libnet-1.0.patch, files/2.0.0-libnet-1.0.patch, - files/2.0.1-libnet-1.0.patch, files/2.0.2-libnet-1.0.patch, - files/2.0.5-libnet-1.0.patch, files/snort-1.9.0-gentoo.diff, - files/snort-1.9.1-alpha-core_vuln.diff, files/snort-1.9.1-alpha.patch, - files/snort-1.9.1-configure.patch, files/snort-2.0.2-gcc3.patch, - files/snort-2.0.5-gcc3.patch: - Cleaning out old ebuilds - - 17 May 2004; Michael Boman snort-2.1.2.ebuild: - Mark 2.1.2 stable on x86 - - 14 Apr 2004; Jon Hood files/2.1.2-libnet-1.0.patch: - added patch, fixes #47229 - - 06 Apr 2004; Joshua Brindle snort-2.1.1.ebuild, - snort-2.1.2.ebuild: - added selinux policy to rdepend - - 01 Apr 2004; Michael Boman snort-2.1.1.ebuild: - Marked stable on x86 - -*snort-2.1.2 (01 Apr 2004) - - 01 Apr 2004; Michael Boman snort-2.1.2.ebuild, - files/snort-2.1.2-gcc3.patch: - New upstream version. - - 16 Mar 2004; Michael Boman snort-2.0.0.ebuild, - snort-2.0.1-r1.ebuild, snort-2.0.2.ebuild, snort-2.0.5-r1.ebuild, - snort-2.0.5.ebuild, snort-2.1.0.ebuild, snort-2.1.1.ebuild: - Changed ebuilds to use 'sed -i ...' instead of 'sed ... < file > file.new' - syntax. - -*snort-2.1.1 (09 Mar 2004) - - 09 Mar 2004; Michael Boman snort-2.1.1.ebuild, - files/2.1.1-libnet-1.0.patch, files/snort-2.1.1-gcc3.patch, - files/snort-2.1.1-pgsql.patch: - New upstream version. Closes #44067. - - 08 Mar 2004; Michael Boman files/2.0.6-libnet-1.0.patch: - Added missing file. Closing bug #43990. - - 04 Mar 2004; Jason Wever snort-2.0.6.ebuild: - Marked stable on sparc. If you have any problems on sparc, check gentoo bug - #29661. - -*snort-2.1.0-r1 (08 Jan 2004) - - 08 Jan 2004; Michael Boman snort-2.1.0-r1.ebuild, - files/snort-2.1.0-pgsql.patch: - Made use of 'doc' USE flag to install signature documentation. Patched - configure.in to solve bug #37436. - - 07 Jan 2004; Michael Boman snort-2.1.0.ebuild: - Forgot to include the threshold.conf file in the installation process. - -*snort-2.1.0 (06 Jan 2004) - - 06 Jan 2004; Michael Boman snort-2.1.0.ebuild, - files/2.1.0-libnet-1.0.patch, files/snort-2.1.0-gcc3.patch: - New upstream version. Breaks prelude support, samba support is now - obsoleted by upstream. Ebuild with prelude support will follow once - a updated patch is made availble. - -*snort-2.0.6 (21 Dec 2003) - - 21 Dec 2003; Michael Boman snort-2.0.6.ebuild: - New upstream version - - 20 Dec 2003; Michael Boman snort-2.0.5-r2.ebuild: - Bump to stable on x86 - Added ~amd64 to KEYWORDS (fixes bug #36098) - - 16 Dec 2003; Mike Frysinger : - Port the libnet-1.0 patch to snort-2.0.0 to help out the sparc peeps. - -*snort-2.0.5-r2 (09 Dec 2003) - - 09 Dec 2003; Michael Boman snort-2.0.5-r2.ebuild: - Forgot to add etc/prelude-classification.config to the files that should be in - /etc/snort if you are using prelude - - 09 Dec 2003; Michael Boman snort-2.0.5-r2.ebuild: - Added patch to fix drop packet calculations - -*snort-2.0.5-r1 (28 Nov 2003) - - 28 Nov 2003; Michael Boman snort-2.0.5-r1.ebuild: - - Made flexresp optional (controlled by "flexresp" local USE flag), closes #34150. - - Made smbalert optional (controlled by "samba" USE flag). - - Threading support was never officially supported in Snort, and has - been removed from ebuild now as the code is, if not already has been, - cleaned from the source tree. - - Updated prelude patch. - - Assigned myself as the primary maintainer of this ebuild, with the - hardened as the herd. - -*snort-2.0.5 (24 Nov 2003) - - 24 Nov 2003; Daniel Ahlberg snort-2.0.5.ebuild : - Version bump. Closing #29609 and #32950. - - 28 Oct 2003; Martin Holzer snort-2.0.2.ebuild: - adding gcc3 patch. Closes #30540. - - 08 Oct 2003; Jason Wever snort-2.0.2.ebuild: - masked on sparc until bug #30540 is fixed. - -*snort-2.0.2 (06 Oct 2003) - - 06 Oct 2003; Daniel Ahlberg snort-2.0.2.ebuild: - Version bump - -*snort-2.0.1-r1 (21 Aug 2003) - - 21 Aug 2003; Mike Frysinger : - Patch to compile against SLOT-ed libnet-1.0.x #17772. - Also fix user adding to enewuser/enewgroup and switch use - flags over to `use_enable`. - -*snort-1.9.1-r3 (21 Aug 2003) - - 21 Aug 2003; Mike Frysinger : - Patch to compile against SLOT-ed libnet-1.0.x #17772. - Also fix user adding to enewuser/enewgroup and switch use - flags over to `use_enable`. - -*snort-2.0.1 (09 Aug 2003) - - 11 Aug 2003; snort-2.0.1.ebuild, - files/snort-2.0.1+prelude.patch: - Snort 2.0.x does not support snmp bug #26310, Moved large prelude patch to - mirror:// - - 09 Aug 2003; snort-2.0.1.ebuild, - files/snort-2.0.1+prelude.patch: - Added libprelude support to snort. Closes bug 19672. - Upgraded to new upstream version (2.0.1) - -*snort-1.9.1-r2 (22 Apr 2003) - - 22 Apr 2003; Tavis Ormandy snort-1.9.1-r2.ebuild, - snort-2.0.0.ebuild, files/snort-1.9.1-alpha-core_vuln.diff: - snort 2.0.0 is broken on Alpha, backporting the integer overflow fix to snort - 1.9.1 while its being fixed, and bumping version - - 22 Apr 2003; Daniel Ahlberg snort-2.0.0.ebuild files/snort.confd : - Closing #11643. Unmasking becuse of GLSA. - -*snort-2.0.0 (16 Apr 2003) - - 16 Apr 2003; Joshua Brindle Manifest, - snort-2.0.0.ebuild: - 2.0.0 released, yay - -*snort-1.9.1-r1 (29 Mar 2003) - - 29 Mar 2003; Aron Griffis snort-1.9.1-r1.ebuild, - files/snort-1.9.1-alpha.patch: - Add patch and bump revision for alpha. Thanks to Tavis Ormandy for providing - this in bug #18258 - -*snort-1.9.1 (04 Mar 2003) - - 04 Mar 2003; Daniel Ahlberg : - Security update. - - 06 Dec 2002; Rodney Rees : changed sparc ~sparc keywords - -*snort-1.9.0 (24 Oct 2002) - - 24 Oct 2002; Daniel Ahlberg : - Version bump. Found by Torgeir Hansen in #8925. - Added support for specifying listening interface. Closes #6822. - Addes support for snmp, closes #7299. - Locked down dependency on libnet some more. - -*snort-1.8.7 (23 Jul 2002) - - 24 Oct 2002; Daniel Ahlberg files/snort.confd : - Added support for specifying listening interface. Closes #6822. - Locked down dependency on libnet some more. - - 30 Aug 2002; Seemant Kulleen snort-1.8.7.ebuild : - - /var/log/snort now has a .keep in it. Closes bug #7271 by - mcummings@gentoo.org (Michael Cummings) - - 26 Jul 2002; Daniel Ahlberg snort-1.8.7.ebuild snort-1.8.6.ebuild : - - Fix for bug #5592. - - 23 Jul 2002; Daniel Ahlberg snort-1.8.7.ebuild : - - New version. - -*snort-1.8.6 (11 Mar 2003) - - 13 Jul 2003; Daniel Ahlberg : - Added missing changelog entry. - -*snort-1.8.5 (6 Apr 2002) - - 18 Jul 2002; Kyle Manna snort-1.8.6.ebuild : - - Added KEYWORDS. - - 28 Jun 2002; Thilo Bangert : - - moved to net-analyzer - added SLOT - added LICENSE - - 6 Apr 2002; Matthew Kennedy ChangeLog, - snort-1.8.5.ebuild, files/digest-snort-1.8.5: - - Added dependency for PostgreSQL. Moved netlib dep from RDEPEND to - DEPEND (it is statically linked). Version bump to latest. - -*snort-1.8.3-r1 (8 Feb 2002) - - 8 Feb 2002; Donny Davies Changelog, - snort-1.8.3-r1.ebuild, files/digest-snort-1.8.3-r1, - files/snort.confd, files/snort.rc6 files/snort.conf : - - Fix for nonexistant /etc/conf.d/snort. Make user/group addition - a little smarter. - -*snort-1.8.3 (1 Feb 2002) - - 1 Feb 2002; G.Bevin ChangeLog : - - Added initial ChangeLog which should be updated whenever the package is - updated in any way. This changelog is targetted to users. This means that the - comments should well explained and written in clean English. The details about - writing correct changelogs are explained in the skel.ChangeLog file which you - can find in the root directory of the portage repository. - diff --git a/net-analyzer/snort/Manifest b/net-analyzer/snort/Manifest deleted file mode 100644 index 5bef353..0000000 --- a/net-analyzer/snort/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST snort-2.9.2.2.tar.gz 6529966 SHA256 63f4eeee24d79e4a4e4b573e085d0d2fd78fcf3b7ea730c37eab7b47fcd9b954 diff --git a/net-analyzer/snort/files/snort.confd.2 b/net-analyzer/snort/files/snort.confd.2 deleted file mode 100644 index 780c910..0000000 --- a/net-analyzer/snort/files/snort.confd.2 +++ /dev/null @@ -1,16 +0,0 @@ -# Config file for /etc/init.d/snort - -# The following options are now set in your snort.conf file: -# config set_gid: -# config set_uid: -# config snaplen: -# config bpf_file: -# config logdir: - -# The only options that should be set here are SNORT_IFACE and SNORT_CONF. - -# This tell snort which interface to listen on (any for every interface) -SNORT_IFACE="eth1" - -# Probably not this either -SNORT_CONF="/etc/snort/snort.conf" diff --git a/net-analyzer/snort/files/snort.rc11 b/net-analyzer/snort/files/snort.rc11 deleted file mode 100644 index 8277575..0000000 --- a/net-analyzer/snort/files/snort.rc11 +++ /dev/null @@ -1,57 +0,0 @@ -#!/sbin/runscript -# Copyright 1999-2011 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-analyzer/snort/files/snort.rc11,v 1.1 2011/09/22 17:39:51 patrick Exp $ - -opts="checkconfig reload" - -depend() { - need net - after mysql - after postgresql -} - -checkconfig() { - if [ ! -e ${SNORT_CONF} ] ; then - eerror "You need a configuration file to run snort" - eerror "There is an example config in /etc/snort/snort.conf.distrib" - return 1 - fi -} - -start() { - checkconfig || return 1 - ebegin "Starting snort" - start-stop-daemon --start --quiet --exec /usr/bin/snort \ - -- --nolock-pidfile --pid-path /var/run/snort -D -i ${SNORT_IFACE} \ - -c ${SNORT_CONF} >/dev/null 2>&1 - eend $? -} - -stop() { - ebegin "Stopping snort" - start-stop-daemon --stop --quiet --pidfile /var/run/snort/snort_${SNORT_IFACE}.pid - # Snort needs a few seconds to fully shutdown - sleep 15 - eend $? -} - -reload() { - - local SNORT_PID="`cat /var/run/snort/snort_${SNORT_IFACE}.pid`" - local SNORT_USER="`ps -p ${SNORT_PID} --no-headers -o user`" - - if [ ! -f /var/run/snort/snort_${SNORT_IFACE}.pid ]; then - eerror "Snort isn't running" - return 1 - elif [ ${SNORT_USER} != root ]; then - eerror "Snort must be running as root for reload to work!" - return 1 - else - checkconfig || return 1 - ebegin "Reloading Snort" - start-stop-daemon --signal HUP --pidfile /var/run/snort/snort_${SNORT_IFACE}.pid - fi -} - - diff --git a/net-analyzer/snort/files/snortsam-2.9.2.2.diff.gz b/net-analyzer/snort/files/snortsam-2.9.2.2.diff.gz deleted file mode 100644 index 2952ae85917bb15046c5b4e6b9d5082aad70e9cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28987 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 /* inbound and outbound block */ - optp->who=FWSAM_WHO_SRC; /* the source */ - optp->loglevel=FWSAM_LOG_LONGALERT; /* the log level default */ -+ optp->action = FWSAM_STATUS_BLOCK; /* type of action */ - /* parse the fwsam keywords */ - - #ifdef FWSAMDEBUG -@@ -566,6 +573,17 @@ - optp->duration=0; - else - possprob=TRUE; -+ if (!possprob) -+ { -+ char* tok = ap; -+ char* action = strtok(tok, ","); -+ action = strtok(NULL, ","); -+ if (action != NULL) -+ { -+ // set our custom action for redirecting traffic instead of blocking -+ optp->action = FWSAM_STATUS_REDIRECT; -+ } -+ } - } - else if(!*ap) - possprob=TRUE; -@@ -879,7 +897,7 @@ - sampacket.snortseqno[1]=(char)(station->myseqno>>8); - sampacket.fwseqno[0]=(char)station->stationseqno;/* fill station seqno */ - sampacket.fwseqno[1]=(char)(station->stationseqno>>8); -- sampacket.status=FWSAM_STATUS_BLOCK; /* set block mode */ -+ sampacket.status=optp->action; /* set action mode */ - sampacket.version=FWSAM_PACKETVERSION; /* set packet version */ - sampacket.duration[0]=(char)optp->duration; /* set duration */ - sampacket.duration[1]=(char)(optp->duration>>8); -@@ -912,10 +930,13 @@ - sampacket.sig_id[3]=(char)(event->sig_id>>24); - - #ifdef FWSAMDEBUG -- LogMessage("DEBUG => [Alert_FWsam] Sending BLOCK\n"); -+ if (optp->action==FWSAM_STATUS_REDIRECT) -+ LogMessage("DEBUG => [Alert_FWsam] Sending REDIRECT\n"); -+ else -+ LogMessage("DEBUG => [Alert_FWsam] Sending BLOCK\n"); - LogMessage("DEBUG => [Alert_FWsam] Snort SeqNo: %x\n",station->myseqno); - LogMessage("DEBUG => [Alert_FWsam] Mgmt SeqNo : %x\n",station->stationseqno); -- LogMessage("DEBUG => [Alert_FWsam] Status : %i\n",FWSAM_STATUS_BLOCK); -+ LogMessage("DEBUG => [Alert_FWsam] Status : %i\n",optp->action); - LogMessage("DEBUG => [Alert_FWsam] Mode : %i\n",optp->how|optp->who|optp->loglevel); - LogMessage("DEBUG => [Alert_FWsam] Duration : %li\n",optp->duration); - LogMessage("DEBUG => [Alert_FWsam] Protocol : %i\n",GET_IPH_PROTO(p)); -diff -ur snort-2.9.2.2-snortsam/src/output-plugins/spo_alert_fwsam.h snort-2.9.2.2/src/output-plugins/spo_alert_fwsam.h ---- snort-2.9.2.2-snortsam/src/output-plugins/spo_alert_fwsam.h 2012-05-20 18:33:57.270278999 +0400 -+++ snort-2.9.2.2/src/output-plugins/spo_alert_fwsam.h 2012-05-20 19:02:01.695332482 +0400 -@@ -107,6 +107,10 @@ - #define FWSAM_STATUS_BLOCK 3 - #define FWSAM_STATUS_UNBLOCK 9 - -+// Custom action to redirect traffic instead of drop -+#define FWSAM_STATUS_REDIRECT 10 -+ -+ - #define FWSAM_STATUS_OK 4 /* fw to snort */ - #define FWSAM_STATUS_ERROR 5 - #define FWSAM_STATUS_NEWKEY 6 -@@ -186,6 +190,7 @@ - unsigned char who; - unsigned char how; - unsigned char loglevel; -+ unsigned char action; // type of action - } FWsamOptions; - - typedef struct _FWsamlistpointer diff --git a/net-analyzer/snort/snort-2.9.2.2-r9999.ebuild b/net-analyzer/snort/snort-2.9.2.2-r9999.ebuild deleted file mode 100644 index ae0c515..0000000 --- a/net-analyzer/snort/snort-2.9.2.2-r9999.ebuild +++ /dev/null @@ -1,272 +0,0 @@ -# Copyright 1999-2012 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-analyzer/snort/snort-2.9.2.2.ebuild,v 1.1 2012/04/04 09:39:53 patrick Exp $ - -EAPI="2" -inherit eutils autotools flag-o-matic multilib - -DESCRIPTION="The de facto standard for intrusion detection/prevention" -HOMEPAGE="http://www.snort.org/" -SRC_URI="http://www.snort.org/dl/snort-current/${P}.tar.gz" -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86 ~mips" -IUSE="static +dynamicplugin +zlib +gre +mpls +targetbased +decoder-preprocessor-rules -+ppm +perfprofiling linux-smp-stats inline-init-failopen +threads debug +active-response -+normalizer reload-error-restart +react +flexresp3 +paf large-pcap-64bit -aruba mysql odbc postgres selinux -snortsam" - -DEPEND=">=net-libs/libpcap-1.0.0 - >=net-libs/daq-0.6 - >=dev-libs/libpcre-6.0 - dev-libs/libdnet - postgres? ( dev-db/postgresql-base ) - mysql? ( virtual/mysql ) - odbc? ( dev-db/unixODBC ) - zlib? ( sys-libs/zlib )" - -RDEPEND="${DEPEND} - selinux? ( sec-policy/selinux-snort )" - -pkg_setup() { - - if use zlib && ! use dynamicplugin; then - eerror "You have enabled the 'zlib' USE flag but not the 'dynamicplugin' USE flag." - eerror "'zlib' requires 'dynamicplugin' be enabled." - die - fi - - # pre_inst() is a better place to put this - # but we need it here for the 'fowners' statements in src_install() - enewgroup snort - enewuser snort -1 -1 /dev/null snort - -} - -src_prepare() { - - #Multilib fix for the sf_engine - einfo "Applying multilib fix." - sed -i -e 's|${exec_prefix}/lib|${exec_prefix}/'$(get_libdir)'|g' \ - "${WORKDIR}/${P}/src/dynamic-plugins/sf_engine/Makefile.am" \ - || die "sed for sf_engine failed" - - #Multilib fix for the curent set of dynamic-preprocessors - for i in ftptelnet smtp ssh dns ssl dcerpc2 sdf imap pop rzb_saac sip reputation gtp modbus dnp3; do - sed -i -e 's|${exec_prefix}/lib|${exec_prefix}/'$(get_libdir)'|g' \ - "${WORKDIR}/${P}/src/dynamic-preprocessors/$i/Makefile.am" \ - || die "sed for $i failed." - done - - # Pinkbyte: add patch for snortsam support - if use snortsam; then - epatch "${FILESDIR}/snortsam-${PV}.diff.gz" - epatch "${FILESDIR}/snortsam-redirect-${PV}.patch" - use debug && append-flags "-DFWSAMDEBUG" - fi - # - - AT_M4DIR=m4 eautoreconf -} - -src_configure() { - econf \ - $(use_enable !static shared) \ - $(use_enable static) \ - $(use_enable static so-with-static-lib) \ - $(use_enable dynamicplugin) \ - $(use_enable zlib) \ - $(use_enable gre) \ - $(use_enable mpls) \ - $(use_enable targetbased) \ - $(use_enable decoder-preprocessor-rules) \ - $(use_enable ppm) \ - $(use_enable perfprofiling) \ - $(use_enable linux-smp-stats) \ - $(use_enable inline-init-failopen) \ - $(use_enable threads pthread) \ - $(use_enable debug) \ - $(use_enable debug debug-msgs) \ - $(use_enable debug corefiles) \ - $(use_enable !debug dlclose) \ - $(use_enable active-response) \ - $(use_enable normalizer) \ - $(use_enable reload-error-restart) \ - $(use_enable react) \ - $(use_enable flexresp3) \ - $(use_enable paf) \ - $(use_enable large-pcap-64bit large-pcap) \ - $(use_enable aruba) \ - $(use_with mysql) \ - $(use_with odbc) \ - $(use_with postgres postgresql) \ - --enable-ipv6 \ - --enable-reload \ - --disable-prelude \ - --disable-build-dynamic-examples \ - --disable-profile \ - --disable-ppm-test \ - --disable-intel-soft-cpm \ - --disable-static-daq \ - --disable-rzb-saac \ - --without-oracle -} - -src_install() { - - emake DESTDIR="${D}" install || die "emake failed" - - dodir /var/log/snort \ - /var/run/snort \ - /etc/snort/rules \ - /etc/snort/so_rules \ - /usr/$(get_libdir)/snort_dynamicrules \ - || die "Failed to create core directories" - - # config.log and build.log are needed by Sourcefire - # to trouble shoot build problems and bug reports so we are - # perserving them incase the user needs upstream support. - dodoc RELEASE.NOTES ChangeLog \ - doc/* \ - tools/u2boat/README.u2boat \ - schemas/* || die "Failed to install snort docs" - - insinto /etc/snort - doins etc/attribute_table.dtd \ - etc/classification.config \ - etc/gen-msg.map \ - etc/reference.config \ - etc/threshold.conf \ - etc/unicode.map || die "Failed to install docs in etc" - - # We use snort.conf.distrib because the config file is complicated - # and the one shipped with snort can change drastically between versions. - # Users should migrate setting by hand and not with etc-update. - newins etc/snort.conf snort.conf.distrib \ - || die "Failed to add snort.conf.distrib" - - # config.log and build.log are needed by Sourcefire - # to troubleshoot build problems and bug reports so we are - # perserving them incase the user needs upstream support. - # 'die' was intentionally not added here. - if [ -f "${WORKDIR}/${PF}/config.log" ]; then - dodoc "${WORKDIR}/${PF}/config.log" - fi - if [ -f "${T}/build.log" ]; then - dodoc "${T}/build.log" - fi - - insinto /etc/snort/preproc_rules - doins preproc_rules/decoder.rules \ - preproc_rules/preprocessor.rules \ - preproc_rules/sensitive-data.rules || die "Failed to install preproc rule files" - - fowners -R snort:snort \ - /var/log/snort \ - /var/run/snort \ - /etc/snort || die - - newinitd "${FILESDIR}/snort.rc11" snort || die "Failed to install snort init script" - newconfd "${FILESDIR}/snort.confd.2" snort || die "Failed to install snort confd file" - - # Sourcefire uses Makefiles to install docs causing Bug #297190. - # This removes the unwanted doc directory and rogue Makefiles. - rm -rf "${D}"usr/share/doc/snort || die "Failed to remove SF doc directories" - rm "${D}"usr/share/doc/"${PF}"/Makefile* || die "Failed to remove doc make files" - - #Remove unneeded .la files (Bug #382863) - rm "${D}"usr/$(get_libdir)/snort_dynamicengine/libsf_engine.la || die - rm "${D}"usr/$(get_libdir)/snort_dynamicpreprocessor/libsf_*_preproc.la || die "Failed to remove libsf_?_preproc.la" - - # Set the correct lib path for dynamicengine, dynamicpreprocessor, and dynamicdetection - sed -i -e 's|/usr/local/lib|/usr/'$(get_libdir)'|g' \ - "${D}etc/snort/snort.conf.distrib" || die - - # Set the correct rule location in the config - sed -i -e 's|RULE_PATH ../rules|RULE_PATH /etc/snort/rules|g' \ - "${D}etc/snort/snort.conf.distrib" || die - - # Set the correct preprocessor/decoder rule location in the config - sed -i -e 's|PREPROC_RULE_PATH ../preproc_rules|PREPROC_RULE_PATH /etc/snort/preproc_rules|g' \ - "${D}etc/snort/snort.conf.distrib" || die - - # Enable the preprocessor/decoder rules - sed -i -e 's|^# include $PREPROC_RULE_PATH|include $PREPROC_RULE_PATH|g' \ - "${D}etc/snort/snort.conf.distrib" || die - - sed -i -e 's|^# dynamicdetection directory|dynamicdetection directory|g' \ - "${D}etc/snort/snort.conf.distrib" || die - - # Just some clean up of trailing /'s in the config - sed -i -e 's|snort_dynamicpreprocessor/$|snort_dynamicpreprocessor|g' \ - "${D}etc/snort/snort.conf.distrib" || die - - # Make it clear in the config where these are... - sed -i -e 's|^include classification.config|include /etc/snort/classification.config|g' \ - "${D}etc/snort/snort.conf.distrib" || die - - sed -i -e 's|^include reference.config|include /etc/snort/reference.config|g' \ - "${D}etc/snort/snort.conf.distrib" || die - - # Disable all rule files by default. - sed -i -e 's|^include $RULE_PATH|# include $RULE_PATH|g' \ - "${D}etc/snort/snort.conf.distrib" || die - - # Disable normalizer preprocessor config if normalizer USE flag not set. - if ! use normalizer; then - sed -i -e 's|^preprocessor normalize|#preprocessor normalize|g' \ - "${D}etc/snort/snort.conf.distrib" || die - fi - - # Set the configured DAQ to afpacket - sed -i -e 's|^# config daq: |config daq: afpacket|g' \ - "${D}etc/snort/snort.conf.distrib" || die - - # Set the location of the DAQ modules - sed -i -e 's|^# config daq_dir: |config daq_dir: /usr/'$(get_libdir)'/daq|g' \ - "${D}etc/snort/snort.conf.distrib" || die - - # Set the DAQ mode to passive - sed -i -e 's|^# config daq_mode: |config daq_mode: passive|g' \ - "${D}etc/snort/snort.conf.distrib" || die - - # Set snort to run as snort:snort - sed -i -e 's|^# config set_gid:|config set_gid: snort|g' \ - "${D}etc/snort/snort.conf.distrib" || die - sed -i -e 's|^# config set_uid:|config set_uid: snort|g' \ - "${D}etc/snort/snort.conf.distrib" || die - - # Set the default log dir - sed -i -e 's|^# config logdir:|config logdir: /var/log/snort/|g' \ - "${D}etc/snort/snort.conf.distrib" || die - - # Set the correct so_rule location in the config - sed -i -e 's|SO_RULE_PATH ../so_rules|SO_RULE_PATH /etc/snort/so_rules|g' \ - "${D}etc/snort/snort.conf.distrib" || die -} - -pkg_postinst() { - - einfo "There have been a number of improvements and new features" - einfo "added to ${P}. Please review the RELEASE.NOTES and" - einfo "ChangLog located in /usr/share/doc/${PF}." - einfo - elog "The Sourcefire Vulnerability Research Team (VRT) recommends that" - elog "users migrate their snort.conf customizations to the latest config" - elog "file released by the VRT. You can find the latest version of the" - elog "Snort config file in /etc/snort/snort.conf.distrib." - elog - elog "!! It is important that you migrate to this new snort.conf file !!" - elog - elog "This version of the ebuild includes an updated init.d file and" - elog "conf.d file that rely on options found in the latest Snort" - elog "config file provided by the VRT." - - if use debug; then - elog "You have the 'debug' USE flag enabled. If this has been done to" - elog "troubleshoot an issue by producing a core dump or a back trace," - elog "then you need to also ensure the FEATURES variable in make.conf" - elog "contains the 'nostrip' option." - fi -} diff --git a/net-analyzer/snortsam/Manifest b/net-analyzer/snortsam/Manifest deleted file mode 100644 index 07c8547..0000000 --- a/net-analyzer/snortsam/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -DIST snortsam-2.50-ciscoacl.diff.bz2 7295 SHA256 a4f39789e9f10b95e6db1bbce5f9d26f7393161311f5c955a4b8380186a2cb6b -DIST snortsam-src-2.70.tar.gz 1971624 SHA256 442040a7281a641008f6410b7f6528d709f17d5041fd3752011075f8a38d19bc diff --git a/net-analyzer/snortsam/files/snortsam-2.70-redirect.patch b/net-analyzer/snortsam/files/snortsam-2.70-redirect.patch deleted file mode 100644 index 4cc3a7e..0000000 --- a/net-analyzer/snortsam/files/snortsam-2.70-redirect.patch +++ /dev/null @@ -1,513 +0,0 @@ -diff -ur snortsam-2.7.0-orig/src/snortsam.c snortsam/src/snortsam.c ---- snortsam-2.7.0-orig/src/snortsam.c 2012-05-20 20:59:46.277029000 +0400 -+++ snortsam/src/snortsam.c 2012-06-15 18:23:29.653032000 +0400 -@@ -1971,7 +1971,7 @@ - void block(SENSORLIST *snortbox,unsigned long bsip,unsigned short bsport, - unsigned long bdip,unsigned short bdport, - unsigned short bproto,time_t bduration,unsigned char bmode, -- time_t btime,unsigned long bsig_id) -+ time_t btime,unsigned long bsig_id,char packstat) - { unsigned long peerip,blockip; - unsigned short blockport; - time_t t; -@@ -2022,6 +2022,8 @@ - blockdata.blocktime=btime; - blockdata.sig_id=bsig_id; - blockdata.block=TRUE; -+ // Add type of block(simple block or redirect) -+ blockdata.type=packstat; - - /* check for and get a blocktime limit out of the limit list based on the sensor*/ - blockdata.duration=limit_duration_on_sensor(snortbox->snortip.s_addr,bduration); -@@ -2467,6 +2469,7 @@ - printf("Debug: Received Packet: %s\n",packet.status==FWSAM_STATUS_CHECKIN?"CHECKIN": - packet.status==FWSAM_STATUS_CHECKOUT?"CHECKOUT": - packet.status==FWSAM_STATUS_BLOCK?"BLOCK": -+ packet.status==FWSAM_STATUS_REDIRECT?"REDIRECT": - packet.status==FWSAM_STATUS_UNBLOCK?"UNBLOCK":"**UNKNOWN**"); - printf("Debug: Snort SeqNo: %x\n",packet.snortseqno[0]|(packet.snortseqno[1]<<8)); - printf("Debug: Mgmt SeqNo : %x\n",packet.fwseqno[0]|(packet.fwseqno[1]<<8)); -@@ -2512,11 +2515,12 @@ - snortbox->toberemoved=TRUE; /* Mark sensor for removal from list. */ - ret=FALSE; - } -- else if(packet.status==FWSAM_STATUS_BLOCK || packet.status==FWSAM_STATUS_UNBLOCK) /* if we received a blocking request */ -+ else if(packet.status==FWSAM_STATUS_BLOCK || packet.status==FWSAM_STATUS_REDIRECT || packet.status==FWSAM_STATUS_UNBLOCK) /* if we received a blocking or redirecting request */ - { if((( (packet.fwseqno[0]|(packet.fwseqno[1]<<8)) ==snortbox->myseqno) && ( (packet.snortseqno[0]|(packet.snortseqno[1]<<8)) ==((snortbox->snortseqno+snortbox->myseqno)&0xffff) )) || disableseqnocheck) - { packstat=packet.status; - #ifdef FWSAMDEBUG -- printf("Debug: %s request received...\n",packet.status==FWSAM_STATUS_BLOCK?"Blocking":"Unblocking"); -+ printf("Debug: %s request received...\n",packet.status==FWSAM_STATUS_BLOCK?"Blocking": -+ packet.status==FWSAM_STATUS_REDIRECT?"Redirecting":"Unblocking"); - #endif - bmode=packet.fwmode; /* save parameters from packet */ - if(packet.endiancheck==1) /* Check if peer has the same endianess */ -@@ -2604,9 +2608,9 @@ - } - else - { -- if(packstat==FWSAM_STATUS_BLOCK) -+ if(packstat==FWSAM_STATUS_BLOCK || packstat==FWSAM_STATUS_REDIRECT) - { /* call block, which performs checks */ -- block(snortbox,bsip,bsport,bdip,bdport,bproto,bduration,bmode,mytime,bsig_id); -+ block(snortbox,bsip,bsport,bdip,bdport,bproto,bduration,bmode,mytime,bsig_id,packstat); - } - else - { -diff -ur snortsam-2.7.0-orig/src/snortsam.h snortsam/src/snortsam.h ---- snortsam-2.7.0-orig/src/snortsam.h 2012-05-20 20:59:46.278524000 +0400 -+++ snortsam/src/snortsam.h 2012-06-15 18:30:41.524502000 +0400 -@@ -242,6 +242,7 @@ - #define FWSAM_STATUS_CHECKOUT 2 - #define FWSAM_STATUS_BLOCK 3 - #define FWSAM_STATUS_UNBLOCK 9 -+#define FWSAM_STATUS_REDIRECT 10 - - #define FWSAM_STATUS_OK 4 /* fw to snort */ - #define FWSAM_STATUS_ERROR 5 -@@ -291,6 +292,7 @@ - unsigned short proto; /* Protocol (if connection) */ - unsigned short mode; /* Blocking mode (src, dst, connection) */ - short block; /* block or unblock flag --- this flag is dynamically changed */ -+ char type; /* Type of block - simple block or redirect. Taken from incoming packet status */ - } BLOCKINFO; - - typedef struct _oldblockinfo /* Block info structure */ -@@ -495,7 +497,7 @@ - void block(SENSORLIST *snortbox,unsigned long bsip,unsigned short bsport, - unsigned long bdip,unsigned short bdport, - unsigned short bproto,time_t bduration,unsigned char bmode, -- time_t btime,unsigned long bsig_id); -+ time_t btime,unsigned long bsig_id,char packstat); - void unblock(BLOCKINFO *bhp,char *comment,unsigned long reqip,int force); - void addtohistory(BLOCKHISTORY *,int); - void clearhistory(void); -diff -ur snortsam-2.7.0-orig/src/ssp_iptables.c snortsam/src/ssp_iptables.c ---- snortsam-2.7.0-orig/src/ssp_iptables.c 2012-05-20 20:59:46.275601000 +0400 -+++ snortsam/src/ssp_iptables.c 2012-06-16 16:53:06.430453000 +0400 -@@ -123,204 +123,227 @@ - printf("Debug: [iptables][%lx] Plugin Blocking...\n",threadid); - #endif - -- if(bd->block) -- { snprintf(msg,sizeof(msg)-1,"Info: Blocking ip %s", inettoa(bd->blockip)); -- logmessage(3,msg,"iptables",0); -- -- switch(bd->mode&FWSAM_HOW) -- { case FWSAM_HOW_IN: -- /* Assemble command */ -- if (snprintf(iptcmd,sizeof(iptcmd)-1, -- "/sbin/iptables -I FORWARD -i %s -s %s -j DROP", -- iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd)) { -- snprintf(msg,sizeof(msg)-1,"Error: Command %s is too long", iptcmd); -- logmessage(1,msg,"iptables",0); -- return; -- } -- if (snprintf(iptcmd2,sizeof(iptcmd2)-1, -- "/sbin/iptables -I INPUT -i %s -s %s -j DROP", -- iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd2)) { -- snprintf(msg,sizeof(msg)-1,"Error: Command2 %s is too long", iptcmd2); -- logmessage(1,msg,"iptables",0); -- return; -- } -- break; -- case FWSAM_HOW_OUT: -- /* Assemble command */ -- if (snprintf(iptcmd,sizeof(iptcmd)-1, -- "/sbin/iptables -I FORWARD -i %s -d %s -j DROP", -- iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd)) { -- snprintf(msg,sizeof(msg)-1,"Error: Command %s is too long", iptcmd); -- logmessage(1,msg,"iptables",0); -- return; -- } -- if (snprintf(iptcmd2,sizeof(iptcmd2)-1, -- "/sbin/iptables -I INPUT -i %s -d %s -j DROP", -- iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd2)) { -- snprintf(msg,sizeof(msg)-1,"Error: Command2 %s is too long", iptcmd2); -- logmessage(1,msg,"iptables",0); -- return; -- } -- break; -- case FWSAM_HOW_INOUT: -- /* Assemble command - block src*/ -- if ((snprintf(iptcmd,sizeof(iptcmd)-1, -- "/sbin/iptables -I FORWARD -i %s -s %s -j DROP", -- iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd)) || (snprintf(iptcmd1,sizeof(iptcmd1)-1, -- "/sbin/iptables -I FORWARD -i %s -d %s -j DROP", -- iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd1))) { -- snprintf(msg,sizeof(msg)-1,"Error: Command %s is too long", iptcmd); -- logmessage(1,msg,"iptables",0); -- return; -- } -- if ((snprintf(iptcmd2,sizeof(iptcmd2)-1, -- "/sbin/iptables -I INPUT -i %s -s %s -j DROP", -- iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd2)) || (snprintf(iptcmd4,sizeof(iptcmd4)-1, -- "/sbin/iptables -I INPUT -i %s -d %s -j DROP", -- iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd4))) { -- snprintf(msg,sizeof(msg)-1,"Error: Command2 %s is too long", iptcmd2); -- logmessage(1,msg,"iptables",0); -- return; -- } -- break; -- case FWSAM_HOW_THIS: -- /* Assemble command */ -- if (snprintf(iptcmd,sizeof(iptcmd)-1, -- "/sbin/iptables -I FORWARD -i %s -s %s -d %s -p %d --dport %d -j DROP", -- iptp->iface, inettoa(bd->blockip), inettoa(bd->peerip), bd->proto, bd->port) >= sizeof(iptcmd)) { -- snprintf(msg,sizeof(msg)-1,"Error: Command %s is too long", iptcmd); -- logmessage(1,msg,"iptables",0); -- return; -- } -- if (snprintf(iptcmd2,sizeof(iptcmd2)-1, -- "/sbin/iptables -I INPUT -i %s -s %s -d %s -p %d --dport %d -j DROP", -- iptp->iface, inettoa(bd->blockip), inettoa(bd->peerip), bd->proto, bd->port) >= sizeof(iptcmd2)) { -- snprintf(msg,sizeof(msg)-1,"Error: Command2 %s is too long", iptcmd2); -- logmessage(1,msg,"iptables",0); -- return; -- } -- break; -- } -- } -- else -- { -- snprintf(msg,sizeof(msg)-1,"Info: UnBlocking ip %s", inettoa(bd->blockip)); -- logmessage(1,msg,"iptables",0); --switch(bd->mode&FWSAM_HOW) -- { case FWSAM_HOW_IN: -- /* Assemble command */ -- if (snprintf(iptcmd,sizeof(iptcmd)-1, -- "/sbin/iptables -D FORWARD -i %s -s %s -j DROP", -- iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd)) { -- snprintf(msg,sizeof(msg)-1,"Error: Command %s is too long", iptcmd); -- logmessage(1,msg,"iptables",0); -- return; -- } -- if (snprintf(iptcmd2,sizeof(iptcmd2)-1, -- "/sbin/iptables -D INPUT -i %s -s %s -j DROP", -- iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd2)) { -- snprintf(msg,sizeof(msg)-1,"Error: Command2 %s is too long", iptcmd2); -- logmessage(1,msg,"iptables",0); -- return; -- } -- break; -- case FWSAM_HOW_OUT: -- /* Assemble command */ -- if (snprintf(iptcmd,sizeof(iptcmd)-1, -- "/sbin/iptables -D FORWARD -i %s -d %s -j DROP", -- iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd)) { -- snprintf(msg,sizeof(msg)-1,"Error: Command %s is too long", iptcmd); -- logmessage(1,msg,"iptables",0); -- return; -- } -- if (snprintf(iptcmd2,sizeof(iptcmd2)-1, -- "/sbin/iptables -D INPUT -i %s -d %s -j DROP", -- iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd2)) { -- snprintf(msg,sizeof(msg)-1,"Error: Command2 %s is too long", iptcmd2); -- logmessage(1,msg,"iptables",0); -- return; -- } -- break; -- case FWSAM_HOW_INOUT: -- /* Assemble command - block src*/ -- if ((snprintf(iptcmd,sizeof(iptcmd)-1, -- "/sbin/iptables -D FORWARD -i %s -s %s -j DROP", -- iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd)) || (snprintf(iptcmd1,sizeof(iptcmd1)-1, -- "/sbin/iptables -D FORWARD -i %s -d %s -j DROP", -- iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd1))) { -- snprintf(msg,sizeof(msg)-1,"Error: Command %s is too long", iptcmd); -- logmessage(1,msg,"iptables",0); -- return; -- } -- if ((snprintf(iptcmd2,sizeof(iptcmd2)-1, -- "/sbin/iptables -D INPUT -i %s -s %s -j DROP", -- iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd2)) || (snprintf(iptcmd4,sizeof(iptcmd4)-1, -- "/sbin/iptables -D INPUT -i %s -d %s -j DROP", -- iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd4))) { -- snprintf(msg,sizeof(msg)-1,"Error: Command2 %s is too long", iptcmd2); -- logmessage(1,msg,"iptables",0); -- return; -- } -- break; -- case FWSAM_HOW_THIS: -- /* Assemble command */ -- if (snprintf(iptcmd,sizeof(iptcmd)-1, -- "/sbin/iptables -D FORWARD -i %s -s %s -d %s -p %d --dport %d -j DROP", -- iptp->iface, inettoa(bd->blockip), inettoa(bd->peerip), bd->proto, bd->port) >= sizeof(iptcmd)) { -- snprintf(msg,sizeof(msg)-1,"Error: Command %s is too long", iptcmd); -- logmessage(1,msg,"iptables",0); -- return; -- } -- if (snprintf(iptcmd2,sizeof(iptcmd2)-1, -- "/sbin/iptables -D INPUT -i %s -s %s -d %s -p %d --dport %d -j DROP", -- iptp->iface, inettoa(bd->blockip), inettoa(bd->peerip), bd->proto, bd->port) >= sizeof(iptcmd)) { -- snprintf(msg,sizeof(msg)-1,"Error: Command2 %s is too long", iptcmd2); -- logmessage(1,msg,"iptables",0); -- return; -- } -- break; -- } -- } --#ifdef FWSAMDEBUG -- printf("Debug: [iptables][%lx] command %s\n", threadid, iptcmd); -- printf("Debug: [iptables][%lx] command2 %s\n", threadid, iptcmd2); --#endif -- /* Run the command */ -- if (system(iptcmd) != 0) { -- snprintf(msg,sizeof(msg)-1,"Error: Command %s Failed", iptcmd); -- logmessage(3,msg,"iptables",0); -- } else { -- snprintf(msg,sizeof(msg)-1,"Info: Command %s Executed Successfully", iptcmd); -- logmessage(3,msg,"iptables",0); -- } -- if (system(iptcmd2) != 0) { -- snprintf(msg,sizeof(msg)-1,"Error: Command2 %s Failed", iptcmd2); -- logmessage(1,msg,"iptables",0); -- } else { -- snprintf(msg,sizeof(msg)-1,"Info: Command2 %s Executed Successfully", iptcmd2); -- logmessage(3,msg,"iptables",0); -- } -- --/*inventiva-recorte*/ -- if((bd->mode&FWSAM_HOW)==FWSAM_HOW_INOUT) -- { -- if (system(iptcmd1) != 0) { -- snprintf(msg,sizeof(msg)-1,"Error: Command %s Failed", iptcmd1); -- logmessage(3,msg,"iptables",0); -- } else { -- snprintf(msg,sizeof(msg)-1,"Info: Command %s Executed Successfully", iptcmd1); -- logmessage(3,msg,"iptables",0); -- } -- if (system(iptcmd4) != 0) { -- snprintf(msg,sizeof(msg)-1,"Error: Command2 %s Failed", iptcmd4); -- logmessage(1,msg,"iptables",0); -- } else { -- snprintf(msg,sizeof(msg)-1,"Info: Command2 %s Executed Successfully", iptcmd4); -- logmessage(3,msg,"iptables",0); -- } -- } -- -- -+ if(bd->block) -+ { snprintf(msg,sizeof(msg)-1,"Info: Blocking ip %s", inettoa(bd->blockip)); -+ logmessage(3,msg,"iptables",0); -+ -+ switch(bd->mode&FWSAM_HOW) -+ { case FWSAM_HOW_IN: -+ /* Assemble command */ -+ if (snprintf(iptcmd,sizeof(iptcmd)-1, -+ "/sbin/iptables -I FORWARD -i %s -s %s -j DROP", -+ iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd)) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command %s is too long", iptcmd); -+ logmessage(1,msg,"iptables",0); -+ return; -+ } -+ if (snprintf(iptcmd2,sizeof(iptcmd2)-1, -+ "/sbin/iptables -I INPUT -i %s -s %s -j DROP", -+ iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd2)) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command2 %s is too long", iptcmd2); -+ logmessage(1,msg,"iptables",0); -+ return; -+ } -+ break; -+ case FWSAM_HOW_OUT: -+ /* Assemble command */ -+ if (snprintf(iptcmd,sizeof(iptcmd)-1, -+ "/sbin/iptables -I FORWARD -i %s -d %s -j DROP", -+ iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd)) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command %s is too long", iptcmd); -+ logmessage(1,msg,"iptables",0); -+ return; -+ } -+ if (snprintf(iptcmd2,sizeof(iptcmd2)-1, -+ "/sbin/iptables -I INPUT -i %s -d %s -j DROP", -+ iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd2)) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command2 %s is too long", iptcmd2); -+ logmessage(1,msg,"iptables",0); -+ return; -+ } -+ break; -+ case FWSAM_HOW_INOUT: -+{ -+ char* cmdstr_fwd; -+ char cmdstr_fwd_redirect[]="/sbin/iptables -t mangle -I PREROUTING -i %s -s %s -j MARK --set-mark 255"; -+ char cmdstr_fwd_block[]="/sbin/iptables -I FORWARD -i %s -s %s -j DROP"; -+ if (bd->type==FWSAM_STATUS_BLOCK) -+ cmdstr_fwd=cmdstr_fwd_block; -+ else -+ cmdstr_fwd=cmdstr_fwd_redirect; -+ /* Assemble command - block src*/ -+ if ((snprintf(iptcmd,sizeof(iptcmd)-1, -+ cmdstr_fwd, -+ iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd)) || (snprintf(iptcmd1,sizeof(iptcmd1)-1, -+ "/sbin/iptables -I FORWARD -i %s -d %s -j DROP", -+ iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd1))) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command %s is too long", iptcmd); -+ logmessage(1,msg,"iptables",0); -+ return; -+ } -+ if (bd->type==FWSAM_STATUS_BLOCK) -+ if ((snprintf(iptcmd2,sizeof(iptcmd2)-1, -+ "/sbin/iptables -I INPUT -i %s -s %s -j DROP", -+ iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd2)) || (snprintf(iptcmd4,sizeof(iptcmd4)-1, -+ "/sbin/iptables -I INPUT -i %s -d %s -j DROP", -+ iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd4))) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command2 %s is too long", iptcmd2); -+ logmessage(1,msg,"iptables",0); -+ return; -+ } -+} -+ break; -+ case FWSAM_HOW_THIS: -+ /* Assemble command */ -+ if (snprintf(iptcmd,sizeof(iptcmd)-1, -+ "/sbin/iptables -I FORWARD -i %s -s %s -d %s -p %d --dport %d -j DROP", -+ iptp->iface, inettoa(bd->blockip), inettoa(bd->peerip), bd->proto, bd->port) >= sizeof(iptcmd)) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command %s is too long", iptcmd); -+ logmessage(1,msg,"iptables",0); -+ return; -+ } -+ if (snprintf(iptcmd2,sizeof(iptcmd2)-1, -+ "/sbin/iptables -I INPUT -i %s -s %s -d %s -p %d --dport %d -j DROP", -+ iptp->iface, inettoa(bd->blockip), inettoa(bd->peerip), bd->proto, bd->port) >= sizeof(iptcmd2)) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command2 %s is too long", iptcmd2); -+ logmessage(1,msg,"iptables",0); -+ return; -+ } -+ break; -+ } -+ } -+ else -+ { -+ snprintf(msg,sizeof(msg)-1,"Info: UnBlocking ip %s", inettoa(bd->blockip)); -+ logmessage(1,msg,"iptables",0); -+ -+switch(bd->mode&FWSAM_HOW) -+ { case FWSAM_HOW_IN: -+ /* Assemble command */ -+ if (snprintf(iptcmd,sizeof(iptcmd)-1, -+ "/sbin/iptables -D FORWARD -i %s -s %s -j DROP", -+ iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd)) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command %s is too long", iptcmd); -+ logmessage(1,msg,"iptables",0); -+ return; -+ } -+ if (snprintf(iptcmd2,sizeof(iptcmd2)-1, -+ "/sbin/iptables -D INPUT -i %s -s %s -j DROP", -+ iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd2)) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command2 %s is too long", iptcmd2); -+ logmessage(1,msg,"iptables",0); -+ return; -+ } -+ break; -+ case FWSAM_HOW_OUT: -+ /* Assemble command */ -+ if (snprintf(iptcmd,sizeof(iptcmd)-1, -+ "/sbin/iptables -D FORWARD -i %s -d %s -j DROP", -+ iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd)) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command %s is too long", iptcmd); -+ logmessage(1,msg,"iptables",0); -+ return; -+ } -+ if (snprintf(iptcmd2,sizeof(iptcmd2)-1, -+ "/sbin/iptables -D INPUT -i %s -d %s -j DROP", -+ iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd2)) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command2 %s is too long", iptcmd2); -+ logmessage(1,msg,"iptables",0); -+ return; -+ } -+ break; -+ case FWSAM_HOW_INOUT: -+{ -+ char* cmdstr_fwd; -+ char cmdstr_fwd_unredirect[]="/sbin/iptables -t mangle -D PREROUTING -i %s -s %s -j MARK --set-mark 255"; -+ char cmdstr_fwd_unblock[]="/sbin/iptables -D FORWARD -i %s -s %s -j DROP"; -+ if (bd->type==FWSAM_STATUS_BLOCK) -+ cmdstr_fwd=cmdstr_fwd_unblock; -+ else -+ cmdstr_fwd=cmdstr_fwd_unredirect; -+ /* Assemble command - block src*/ -+ if ((snprintf(iptcmd,sizeof(iptcmd)-1, -+ cmdstr_fwd, -+ iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd)) || (snprintf(iptcmd1,sizeof(iptcmd1)-1, -+ "/sbin/iptables -D FORWARD -i %s -d %s -j DROP", -+ iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd1))) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command %s is too long", iptcmd); -+ logmessage(1,msg,"iptables",0); -+ return; -+ } -+ if (bd->type==FWSAM_STATUS_BLOCK) -+ if ((snprintf(iptcmd2,sizeof(iptcmd2)-1, -+ "/sbin/iptables -D INPUT -i %s -s %s -j DROP", -+ iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd2)) || (snprintf(iptcmd4,sizeof(iptcmd4)-1, -+ "/sbin/iptables -D INPUT -i %s -d %s -j DROP", -+ iptp->iface, inettoa(bd->blockip)) >= sizeof(iptcmd4))) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command2 %s is too long", iptcmd2); -+ logmessage(1,msg,"iptables",0); -+ return; -+ } -+} -+ break; -+ case FWSAM_HOW_THIS: -+ /* Assemble command */ -+ if (snprintf(iptcmd,sizeof(iptcmd)-1, -+ "/sbin/iptables -D FORWARD -i %s -s %s -d %s -p %d --dport %d -j DROP", -+ iptp->iface, inettoa(bd->blockip), inettoa(bd->peerip), bd->proto, bd->port) >= sizeof(iptcmd)) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command %s is too long", iptcmd); -+ logmessage(1,msg,"iptables",0); -+ return; -+ } -+ if (snprintf(iptcmd2,sizeof(iptcmd2)-1, -+ "/sbin/iptables -D INPUT -i %s -s %s -d %s -p %d --dport %d -j DROP", -+ iptp->iface, inettoa(bd->blockip), inettoa(bd->peerip), bd->proto, bd->port) >= sizeof(iptcmd)) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command2 %s is too long", iptcmd2); -+ logmessage(1,msg,"iptables",0); -+ return; -+ } -+ break; -+ } -+ } -+#ifdef FWSAMDEBUG -+ printf("Debug: [iptables][%lx] command %s\n", threadid, iptcmd); -+ printf("Debug: [iptables][%lx] command2 %s\n", threadid, iptcmd2); -+#endif -+ /* Run the command */ -+ if (system(iptcmd) != 0) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command %s Failed", iptcmd); -+ logmessage(3,msg,"iptables",0); -+ } else { -+ snprintf(msg,sizeof(msg)-1,"Info: Command %s Executed Successfully", iptcmd); -+ logmessage(3,msg,"iptables",0); -+ } -+ if (bd->type==FWSAM_STATUS_BLOCK) -+ if (system(iptcmd2) != 0) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command2 %s Failed", iptcmd2); -+ logmessage(1,msg,"iptables",0); -+ } else { -+ snprintf(msg,sizeof(msg)-1,"Info: Command2 %s Executed Successfully", iptcmd2); -+ logmessage(3,msg,"iptables",0); -+ } -+ -+/*inventiva-recorte*/ -+ if((bd->mode&FWSAM_HOW)==FWSAM_HOW_INOUT) -+ { -+ if (system(iptcmd1) != 0) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command %s Failed", iptcmd1); -+ logmessage(3,msg,"iptables",0); -+ } else { -+ snprintf(msg,sizeof(msg)-1,"Info: Command %s Executed Successfully", iptcmd1); -+ logmessage(3,msg,"iptables",0); -+ } -+ if (bd->type==FWSAM_STATUS_BLOCK) -+ if (system(iptcmd4) != 0) { -+ snprintf(msg,sizeof(msg)-1,"Error: Command2 %s Failed", iptcmd4); -+ logmessage(1,msg,"iptables",0); -+ } else { -+ snprintf(msg,sizeof(msg)-1,"Info: Command2 %s Executed Successfully", iptcmd4); -+ logmessage(3,msg,"iptables",0); -+ } -+ } -+ -+ - #ifdef SAVETABLES - /* Save command */ - if (system(savecmd) != 0) { diff --git a/net-analyzer/snortsam/snortsam-2.70-r9999.ebuild b/net-analyzer/snortsam/snortsam-2.70-r9999.ebuild deleted file mode 100644 index 45f6e3d..0000000 --- a/net-analyzer/snortsam/snortsam-2.70-r9999.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2011 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-analyzer/snortsam/snortsam-2.70.ebuild,v 1.3 2011/11/18 05:09:16 jer Exp $ - -EAPI="4" - -inherit eutils toolchain-funcs - -MY_P="${PN}-src-${PV}" -DESCRIPTION="Snort plugin that allows automated blocking of IP addresses on several firewalls" -HOMEPAGE="http://www.snortsam.net/" -SRC_URI="http://www.snortsam.net/files/snortsam/${MY_P}.tar.gz - mirror://gentoo/${PN}-2.50-ciscoacl.diff.bz2" - -LICENSE="as-is" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86" -IUSE="debug" - -S=${WORKDIR}/${PN} - -src_prepare() { - sed -i makesnortsam.sh \ - -e "s:sbin/functions.sh:etc/init.d/functions.sh:" \ - -e "s:-O2 : ${CFLAGS} :" \ - -e "s:gcc :$(tc-getCC) :" \ - -e "/^LDFLAGS=/d" \ - -e "s:\( -o ../snortsam\): ${LDFLAGS}\1:" \ - -e "s:\${SSP_LINUX_SRC} -o \${SNORTSAM}:& \${LINUX_LDFLAGS}:" \ - || die "sed failed" - - find "${S}" -depth -type d -name CVS -exec rm -rf \{\} \; -} - -src_compile() { - # Pinkbyte: patch for traffic redirection support - epatch "${FILESDIR}/${P}-redirect.patch" - # - sh makesnortsam.sh || die "makesnortsam.sh failed" -} - -src_install() { - if use debug; then - newbin snortsam-debug snortsam - else - dobin snortsam - fi - find "${S}" -depth -type f -name "*.asc" -exec rm -f {} \; - dodoc -r docs/ conf/ -} - -pkg_postinst() { - elog - elog "To use snortsam with snort, you'll have to compile snort with USE=snortsam." - elog "Read the INSTALL file to configure snort for snortsam, and configure" - elog "snortsam for your particular firewall." - elog -}