mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-07 03:29:59 +00:00
snort: add recipe
*snort - a free lightweight network intrusion detection
system for UNIX and Windows
Signed-off-by: Chunrong Guo <B40290@freescale.com>
Signed-off-by: Joe MacDonald <joe@deserted.net>
This commit is contained in:
committed by
Joe MacDonald
parent
8265d2bbc2
commit
881eb77ac6
+31
@@ -0,0 +1,31 @@
|
||||
From 4d7ebe3ed6cee72bc7db98bd408d22c10ef5dd82 Mon Sep 17 00:00:00 2001
|
||||
From: Joe MacDonald <joe@deserted.net>
|
||||
Date: Wed, 20 Nov 2013 16:06:07 -0500
|
||||
Subject: [PATCH] libpcap: search sysroot for headers
|
||||
|
||||
Configure hard-coded host header paths when building with libpcap. Point
|
||||
the search path at the sysroot instead.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Joe MacDonald <joe@deserted.net>
|
||||
---
|
||||
configure.in | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.in b/configure.in
|
||||
index e52bb6c..8ded35d 100644
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -78,7 +78,7 @@ case "$host" in
|
||||
linux="yes"
|
||||
AC_DEFINE([LINUX],[1],[Define if Linux])
|
||||
AC_SUBST(extra_incl)
|
||||
- extra_incl="-I/usr/include/pcap"
|
||||
+ extra_incl="-I=/usr/include/pcap"
|
||||
;;
|
||||
*-hpux10*|*-hpux11*)
|
||||
AC_DEFINE([HPUX],[1],[Define if HP-UX 10 or 11])
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
Upstream-Status:Inappropriate [embedded specific]
|
||||
|
||||
fix the below error:
|
||||
checking for dap address space id... configure:
|
||||
configure: error: cannot run test program while cross compiling
|
||||
|
||||
|
||||
Signed-off-by: Chunrong Guo <B40290@freescale.com>
|
||||
|
||||
--- a/configure.in 2013-08-23 00:06:37.239361932 -0500
|
||||
+++ b/configure.in 2013-08-23 00:07:32.860266534 -0500
|
||||
@@ -679,23 +679,23 @@
|
||||
|
||||
AC_CHECK_FUNCS([daq_hup_apply] [daq_acquire_with_meta])
|
||||
|
||||
-AC_MSG_CHECKING([for daq address space ID])
|
||||
-AC_RUN_IFELSE(
|
||||
-[AC_LANG_PROGRAM(
|
||||
-[[
|
||||
-#include <daq.h>
|
||||
-]],
|
||||
-[[
|
||||
- DAQ_PktHdr_t hdr;
|
||||
- hdr.address_space_id = 0;
|
||||
-]])],
|
||||
-[have_daq_address_space_id="yes"],
|
||||
-[have_daq_address_space_id="no"])
|
||||
-AC_MSG_RESULT($have_daq_address_space_id)
|
||||
-if test "x$have_daq_address_space_id" = "xyes"; then
|
||||
- AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1],
|
||||
- [DAQ version supports address space ID in header.])
|
||||
-fi
|
||||
+#AC_MSG_CHECKING([for daq address space ID])
|
||||
+#AC_RUN_IFELSE(
|
||||
+#[AC_LANG_PROGRAM(
|
||||
+#[[
|
||||
+##include <daq.h>
|
||||
+#]],
|
||||
+#[[
|
||||
+# DAQ_PktHdr_t hdr;
|
||||
+# hdr.address_space_id = 0;
|
||||
+#]])],
|
||||
+have_daq_address_space_id="yes"
|
||||
+#[have_daq_address_space_id="no"])
|
||||
+#AC_MSG_RESULT($have_daq_address_space_id)
|
||||
+#if test "x$have_daq_address_space_id" = "xyes"; then
|
||||
+# AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1],
|
||||
+# [DAQ version supports address space ID in header.])
|
||||
+#fi
|
||||
|
||||
# any sparc platform has to have this one defined.
|
||||
AC_MSG_CHECKING(for sparc)
|
||||
@@ -0,0 +1,75 @@
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
|
||||
fix the below error:
|
||||
checking for INADDR_NONE... configure:
|
||||
configure: error: cannot run test program while cross compiling
|
||||
|
||||
Signed-off-by: Chunrong Guo <B40290@freescale.com>
|
||||
|
||||
|
||||
--- a/configure.in 2013-08-21 03:56:17.197414789 -0500
|
||||
+++ b/configure.in 2013-08-21 23:19:05.298553560 -0500
|
||||
@@ -281,25 +281,7 @@
|
||||
AC_CHECK_TYPES([boolean])
|
||||
|
||||
# In case INADDR_NONE is not defined (like on Solaris)
|
||||
-have_inaddr_none="no"
|
||||
-AC_MSG_CHECKING([for INADDR_NONE])
|
||||
-AC_RUN_IFELSE(
|
||||
-[AC_LANG_PROGRAM(
|
||||
-[[
|
||||
-#include <sys/types.h>
|
||||
-#include <netinet/in.h>
|
||||
-#include <arpa/inet.h>
|
||||
-]],
|
||||
-[[
|
||||
- if (inet_addr("10,5,2") == INADDR_NONE);
|
||||
- return 0;
|
||||
-]])],
|
||||
-[have_inaddr_none="yes"],
|
||||
-[have_inaddr_none="no"])
|
||||
-AC_MSG_RESULT($have_inaddr_none)
|
||||
-if test "x$have_inaddr_none" = "xno"; then
|
||||
- AC_DEFINE([INADDR_NONE],[-1],[For INADDR_NONE definition])
|
||||
-fi
|
||||
+have_inaddr_none="yes"
|
||||
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <stdio.h>
|
||||
@@ -397,21 +379,21 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
-AC_MSG_CHECKING([for pcap_lex_destroy])
|
||||
-AC_RUN_IFELSE(
|
||||
-[AC_LANG_PROGRAM(
|
||||
-[[
|
||||
-#include <pcap.h>
|
||||
-]],
|
||||
-[[
|
||||
- pcap_lex_destroy();
|
||||
-]])],
|
||||
-[have_pcap_lex_destroy="yes"],
|
||||
-[have_pcap_lex_destroy="no"])
|
||||
-AC_MSG_RESULT($have_pcap_lex_destroy)
|
||||
-if test "x$have_pcap_lex_destroy" = "xyes"; then
|
||||
- AC_DEFINE([HAVE_PCAP_LEX_DESTROY],[1],[Can cleanup lex buffer stack created by pcap bpf filter])
|
||||
-fi
|
||||
+#AC_MSG_CHECKING([for pcap_lex_destroy])
|
||||
+#AC_RUN_IFELSE(
|
||||
+#[AC_LANG_PROGRAM(
|
||||
+#[[
|
||||
+##include <pcap.h>
|
||||
+#]],
|
||||
+#[[
|
||||
+# pcap_lex_destroy();
|
||||
+#]])],
|
||||
+have_pcap_lex_destroy="yes"
|
||||
+#[have_pcap_lex_destroy="no"])
|
||||
+#AC_MSG_RESULT($have_pcap_lex_destroy)
|
||||
+#if test "x$have_pcap_lex_destroy" = "xyes"; then
|
||||
+# AC_DEFINE([HAVE_PCAP_LEX_DESTROY],[1],[Can cleanup lex buffer stack created by pcap bpf filter])
|
||||
+#fi
|
||||
|
||||
AC_MSG_CHECKING([for pcap_lib_version])
|
||||
AC_LINK_IFELSE(
|
||||
@@ -0,0 +1,109 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Snort Startup Script modified for OpenEmbedded
|
||||
#
|
||||
|
||||
# Script variables
|
||||
|
||||
LAN_INTERFACE="$2"
|
||||
RETURN_VAL=0
|
||||
BINARY=/usr/bin/snort
|
||||
PATH=/bin:/usr/bin
|
||||
PID=/var/run/snort_${LAN_INTERFACE}_ids.pid
|
||||
DEL_PID=$PID
|
||||
LOGDIR="/var/log/snort"
|
||||
DATE=`/bin/date +%Y%m%d`
|
||||
CONFIG_FILE=/etc/snort/snort.conf
|
||||
PROG=snort
|
||||
USER=root
|
||||
GROUP=root
|
||||
|
||||
if [ ! -x "$BINARY" ]; then
|
||||
echo "ERROR: $BINARY not found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -r "$CONFIG_FILE" ]; then
|
||||
echo "ERROR: $CONFIG_FILE not found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
start()
|
||||
{
|
||||
|
||||
[ -n "$LAN_INTERFACE" ] || return 0
|
||||
# Check if log diratory is present. Otherwise, create it.
|
||||
if [ ! -d $LOGDIR/$DATE ]; then
|
||||
mkdir -d $LOGDIR/$DATE
|
||||
/bin/chown -R $USER:$USER $LOGDIR/$DATE
|
||||
/bin/chmod -R 700 $LOGDIR/$DATE
|
||||
fi
|
||||
|
||||
/bin/echo "Starting $PROG: "
|
||||
# Snort parameters
|
||||
# -D Run Snort in background (daemon) mode
|
||||
# -i <if> Listen on interface <if>
|
||||
# -u <uname> Run snort uid as <uname> user (or uid)
|
||||
# -g <gname> Run snort uid as <gname> group (or gid)
|
||||
# -c Load configuration file
|
||||
# -N Turn off logging (alerts still work) (removed to enable logging) :)
|
||||
# -l Log to directory
|
||||
# -t Chroots process to directory after initialization
|
||||
# -R <id> Include 'id' in snort_intf<id>.pid file name
|
||||
|
||||
$BINARY -D -i $LAN_INTERFACE -u $USER -g $GROUP -c $CONFIG_FILE -l $LOGDIR/$DATE -t $LOGDIR/$DATE -R _ids
|
||||
/bin/echo "$PROG startup complete."
|
||||
return $RETURN_VAL
|
||||
}
|
||||
|
||||
stop()
|
||||
{
|
||||
if [ -s $PID ]; then
|
||||
/bin/echo "Stopping $PROG with PID `cat $PID`: "
|
||||
kill -TERM `cat $PID` 2>/dev/null
|
||||
RETURN_VAL=$?
|
||||
/bin/echo "$PROG shutdown complete."
|
||||
[ -e $DEL_PID ] && rm -f $DEL_PID
|
||||
[ -e $DEL_PID.lck ] && rm -f $DEL_PID.lck
|
||||
else
|
||||
/bin/echo "ERROR: PID in $PID file not found."
|
||||
RETURN_VAL=1
|
||||
fi
|
||||
return $RETURN_VAL
|
||||
}
|
||||
|
||||
status() {
|
||||
if [ -s $PID ]; then
|
||||
echo "$PROG is running as pid `cat $PID`:"
|
||||
else
|
||||
echo "$PROG is not running."
|
||||
fi
|
||||
}
|
||||
|
||||
restart()
|
||||
{
|
||||
stop
|
||||
start
|
||||
RETURN_VAL=$?
|
||||
return $RETURN_VAL
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
status)
|
||||
status
|
||||
;;
|
||||
restart|reload)
|
||||
restart
|
||||
;;
|
||||
*)
|
||||
/bin/echo "Usage: $0 {start|stop|status|restart|reload}"
|
||||
RETURN_VAL=1
|
||||
esac
|
||||
|
||||
exit $RETURN_VAL
|
||||
@@ -0,0 +1,73 @@
|
||||
DESCRIPTION = "snort - a free lightweight network intrusion detection system for UNIX and Windows."
|
||||
HOMEPAGE = "http://www.snort.org/"
|
||||
LICENSE = "GPL-2.0"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5"
|
||||
|
||||
DEPENDS = "libpcap libpcre daq libdnet"
|
||||
|
||||
|
||||
SRC_URI = " ${GENTOO_MIRROR}/${BP}.tar.gz;name=tarball \
|
||||
file://snort.init \
|
||||
file://disable-inaddr-none.patch \
|
||||
file://disable-dap-address-space-id.patch \
|
||||
file://0001-libpcap-search-sysroot-for-headers.patch \
|
||||
"
|
||||
|
||||
SRC_URI[tarball.md5sum] = "4111df01a4f21bd1d328a18b76d625bd"
|
||||
SRC_URI[tarball.sha256sum] = "cfaa5390b1840aaaa68a6c05a7077dd92cb916e6186a014baa451d43cdb0b3bc"
|
||||
|
||||
inherit autotools gettext update-rc.d
|
||||
|
||||
INITSCRIPT_NAME = "snort"
|
||||
INITSCRIPT_PARAMS = "defaults"
|
||||
|
||||
EXTRA_OECONF = " \
|
||||
--enable-gre \
|
||||
--enable-linux-smp-stats \
|
||||
--enable-reload \
|
||||
--enable-reload-error-restart \
|
||||
--enable-targetbased \
|
||||
--disable-static-daq \
|
||||
"
|
||||
|
||||
do_install_append() {
|
||||
install -d ${D}/${sysconfdir}/snort/rules
|
||||
install -d ${D}/${sysconfdir}/snort/preproc_rules
|
||||
install -d ${D}${sysconfdir}/init.d
|
||||
for i in map config conf dtd; do
|
||||
cp ${S}/etc/*.$i ${D}/${sysconfdir}/snort/
|
||||
done
|
||||
cp ${S}/preproc_rules/*.rules ${D}/${sysconfdir}/snort/preproc_rules/
|
||||
install -m 755 ${WORKDIR}/snort.init ${D}/${sysconfdir}/init.d/snort
|
||||
mkdir -p ${D}/${localstatedir}/log/snort
|
||||
install -d ${D}/var/log/snort
|
||||
}
|
||||
|
||||
FILES_${PN} += " \
|
||||
${libdir}/snort_dynamicengine/*.so.* \
|
||||
${libdir}/snort_dynamicpreprocessor/*.so.* \
|
||||
${libdir}/snort_dynamicrules/*.so.* \
|
||||
"
|
||||
FILES_${PN}-dbg += " \
|
||||
${libdir}/snort_dynamicengine/.debug \
|
||||
${libdir}/snort_dynamicpreprocessor/.debug \
|
||||
${libdir}/snort_dynamicrules/.debug \
|
||||
"
|
||||
FILES_${PN}-staticdev += " \
|
||||
${libdir}/snort_dynamicengine/*.a \
|
||||
${libdir}/snort_dynamicpreprocessor/*.a \
|
||||
${libdir}/snort_dynamicrules/*.a \
|
||||
${libdir}/snort/dynamic_preproc/*.a \
|
||||
${libdir}/snort/dynamic_output/*.a \
|
||||
"
|
||||
FILES_${PN}-dev += " \
|
||||
${libdir}/snort_dynamicengine/*.la \
|
||||
${libdir}/snort_dynamicpreprocessor/*.la \
|
||||
${libdir}/snort_dynamicrules/*.la \
|
||||
${libdir}/snort_dynamicengine/*.so \
|
||||
${libdir}/snort_dynamicpreprocessor/*.so \
|
||||
${libdir}/snort_dynamicrules/*.so \
|
||||
${prefix}/src/snort_dynamicsrc \
|
||||
"
|
||||
|
||||
RRECOMMENDS_${PN} += "barnyard2"
|
||||
Reference in New Issue
Block a user