From 5602db911cac66648088297c621317d49188c0ca Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Sun, 20 May 2012 21:08:17 +0400 Subject: [PATCH] add snort ebuild with snortsam support and initial patch for traffic redirection action --- net-analyzer/snort/ChangeLog | 915 ++++++++++++++++++ net-analyzer/snort/Manifest | 7 + 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 0 -> 28987 bytes .../files/snortsam-redirect-2.9.2.2.patch | 60 ++ net-analyzer/snort/snort-2.9.2.2-r9999.ebuild | 272 ++++++ 7 files changed, 1327 insertions(+) create mode 100644 net-analyzer/snort/ChangeLog create mode 100644 net-analyzer/snort/Manifest create mode 100644 net-analyzer/snort/files/snort.confd.2 create mode 100644 net-analyzer/snort/files/snort.rc11 create mode 100644 net-analyzer/snort/files/snortsam-2.9.2.2.diff.gz create mode 100644 net-analyzer/snort/files/snortsam-redirect-2.9.2.2.patch create mode 100644 net-analyzer/snort/snort-2.9.2.2-r9999.ebuild diff --git a/net-analyzer/snort/ChangeLog b/net-analyzer/snort/ChangeLog new file mode 100644 index 0000000..2239020 --- /dev/null +++ b/net-analyzer/snort/ChangeLog @@ -0,0 +1,915 @@ +# 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 new file mode 100644 index 0000000..a9544ee --- /dev/null +++ b/net-analyzer/snort/Manifest @@ -0,0 +1,7 @@ +AUX snort.confd.2 420 RMD160 66bead70bfb5752d7f9779803453bdecf2694fee SHA1 d4917da66def50d09430a0dff4b2e86103a4834a SHA256 337378f098e0cd59fb5c28a26b5b74b32168cf48596064469e6a5ba04fe3a36f +AUX snort.rc11 1473 RMD160 f9d1a9bfbe88b0bcb5dbecbab3ee3fc647f0a9ff SHA1 cf97f12c9560b85d6ac12492020c5222eb4613b3 SHA256 280ed4fb18c871ca83469a4dd1485f47d422b9d4476613711707c627176e4774 +AUX snortsam-2.9.2.2.diff.gz 28987 RMD160 b09a856bffa47300d3421029ce55375e96eeadf1 SHA1 403ffb76323be7ffee57062fad0cfd61cce755ab SHA256 61c6104778a1cd2d0795be0a7b3d67460955e5ffab392852a930b167c1fe27f2 +AUX snortsam-redirect-2.9.2.2.patch 2370 RMD160 e289bee7423286d287d876792bc47ea6e447cd11 SHA1 00e35d6c10f8eb61b2d348567d9d1fbee931a2aa SHA256 f5111fce50d5578446bd4eb788a9d974ee4ee3c3a27c8e3e2e5a148c59491d3c +DIST snort-2.9.2.2.tar.gz 6529966 RMD160 2c5f3d9d28de860f906c6f229721833b856705c8 SHA1 5b1e9bd527ecba7e42c007ae1a62ff51a4adb2c6 SHA256 63f4eeee24d79e4a4e4b573e085d0d2fd78fcf3b7ea730c37eab7b47fcd9b954 +EBUILD snort-2.9.2.2-r9999.ebuild 9536 RMD160 6eaa6ccae82ac0e752316a646f3c16b094e40354 SHA1 3d8e60f92a7aba3150427446244aeb8625ccbdea SHA256 bad1c917896d45db4649ce70d7003e1e46e5490c9bd8b6820d7eb3186c398f44 +MISC ChangeLog 33624 RMD160 a39244fe968467d72330e62b4e54aaae363a650f SHA1 767a852c3f3a1e3905406ebed2da5b138ff0b543 SHA256 b9d25fcbc4f88b0aa35f78dfd776fa1a673461f4e20fa19a2245e0ac703b0f25 diff --git a/net-analyzer/snort/files/snort.confd.2 b/net-analyzer/snort/files/snort.confd.2 new file mode 100644 index 0000000..780c910 --- /dev/null +++ b/net-analyzer/snort/files/snort.confd.2 @@ -0,0 +1,16 @@ +# 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 new file mode 100644 index 0000000..8277575 --- /dev/null +++ b/net-analyzer/snort/files/snort.rc11 @@ -0,0 +1,57 @@ +#!/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 new file mode 100644 index 0000000000000000000000000000000000000000..2952ae85917bb15046c5b4e6b9d5082aad70e9cd GIT binary patch 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 +567,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 +891,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); +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 new file mode 100644 index 0000000..deac581 --- /dev/null +++ b/net-analyzer/snort/snort-2.9.2.2-r9999.ebuild @@ -0,0 +1,272 @@ +# 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 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" + 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 \ + --enable-sourcefire +} + +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 +}