Add snort-wireless to -ng
authorFlorian Fainelli <florian@openwrt.org>
Mon, 13 Nov 2006 12:45:06 +0000 (12:45 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Mon, 13 Nov 2006 12:45:06 +0000 (12:45 +0000)
SVN-Revision: 5520

net/snort-wireless/Makefile [new file with mode: 0644]
net/snort-wireless/files/snort-wireless.default [new file with mode: 0644]
net/snort-wireless/files/snort-wireless.init [new file with mode: 0644]
net/snort-wireless/patches/500-no-config-search.patch [new file with mode: 0644]
net/snort-wireless/patches/750-lightweight-config.patch [new file with mode: 0644]

diff --git a/net/snort-wireless/Makefile b/net/snort-wireless/Makefile
new file mode 100644 (file)
index 0000000..8e2ea62
--- /dev/null
@@ -0,0 +1,146 @@
+# 
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=snort-wireless
+PKG_VERSION:=2.4.3-alpha04
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://www.snort-wireless.org/files/
+PKG_MD5SUM:=1aa699ae279bf7a1140cf6cca02f9999
+PKG_CAT:=zcat
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/snort-wireless/Default
+  SUBMENU:=snort-wireless (Ligthweight Network Intrusion Detection System)
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=+libnet0 +libpcap +libpcre
+  TITLE:=Ligthweight Network Intrusion Detection System
+  URL:=http://www.snort-wireless.org/
+endef
+
+define Package/snort-wireless
+  $(call Package/snort-wireless/Default)
+endef
+
+define Package/snort-wireless-mysql
+  $(call Package/snort-wireless/Default)
+  DEPENDS+= +libmysqlclient
+  TITLE+= (MySQL)
+endef
+
+define Package/snort-wireless-pgsql
+  $(call Package/snort-wireless/Default)
+  DEPENDS+= +libpq
+  TITLE+= (PostgreSQL)
+endef
+
+
+ifneq ($(SDK),)
+  CONFIG_PACKAGE_snort-wireless:=m
+  CONFIG_PACKAGE_snort-wireless-mysql:=m
+  CONFIG_PACKAGE_snort-wireless-pgsql:=m
+endif
+
+define Compile/Template
+
+$(PKG_BUILD_DIR)/snort-wireless-$(1): $(PKG_BUILD_DIR)/.configured
+       touch -r $(PKG_BUILD_DIR)/Makefile.am $(PKG_BUILD_DIR)/configure.in 
+       touch -r $(PKG_BUILD_DIR)/Makefile.in $(PKG_BUILD_DIR)/configure
+       -$(MAKE) -C $(PKG_BUILD_DIR) distclean
+       $(call Build/Configure/Default, \
+               --enable-flexresp \
+               --with-libnet-includes="$(STAGING_DIR)/usr/lib/libnet-1.0.x/include" \
+               --with-libnet-libraries="$(STAGING_DIR)/usr/lib/libnet-1.0.x/lib" \
+               --with-libpcap-includes="$(STAGING_DIR)/usr/include" \
+               --with-libpcap-libraries="$(STAGING_DIR)/usr/lib" \
+               --with-libpcre-includes="$(STAGING_DIR)/usr/include" \
+               --with-libpcre-libraries="$(STAGING_DIR)/usr/lib" \
+               $(2) \
+               , \
+               CPPFLAGS="$$$$CPPFLAGS -I$(STAGING_DIR)/usr/include/mysql" \
+               LDFLAGS="$$$$LDFLAGS -L$(STAGING_DIR)/usr/lib/mysql" \
+               PATH="$(STAGING_DIR)/usr/lib/libnet-1.0.x/bin:$$$$PATH" \
+               $(3) \
+       );
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               extra_incl="" \
+               all
+       mv $(PKG_BUILD_DIR)/src/snort $(PKG_BUILD_DIR)/snort-wireless-$(1)
+
+$(PKG_BUILD_DIR)/.built: $(PKG_BUILD_DIR)/snort-wireless-$(1)
+
+endef
+
+
+define Install/Template
+
+define Package/$(1)/conffiles
+/etc/default/snort
+/etc/snort/snort.conf
+/etc/snort/threshold.conf
+endef
+
+define Package/$(1)/install
+       install -d -m0755 $$(1)/usr/sbin
+       install -m0755 $(PKG_BUILD_DIR)/snort-wireless-$(2) $$(1)/usr/sbin/snort
+       install -d -m0755 $$(1)/etc/snort
+       install -m0644 $(PKG_BUILD_DIR)/etc/snort.conf $$(1)/etc/snort/
+       install -m0644 $(PKG_BUILD_DIR)/etc/classification.config $$(1)/etc/snort/
+       install -m0644 $(PKG_BUILD_DIR)/etc/gen-msg.map $$(1)/etc/snort/
+       install -m0644 $(PKG_BUILD_DIR)/etc/reference.config $$(1)/etc/snort/
+       install -m0644 $(PKG_BUILD_DIR)/etc/sid-msg.map $$(1)/etc/snort/
+       install -m0644 $(PKG_BUILD_DIR)/etc/threshold.conf $$(1)/etc/snort/
+       install -m0644 $(PKG_BUILD_DIR)/etc/unicode.map $$(1)/etc/snort/
+       install -d -m0755 $$(1)/etc/default
+       install -m0644 ./files/snort-wireless.default $$(1)/etc/default/snort
+       install -d -m0755 $$(1)/etc/init.d
+       install -m0755 ./files/snort-wireless.init $$(1)/etc/init.d/snort
+endef
+
+endef
+
+
+ifneq ($(CONFIG_PACKAGE_snort-wireless),)
+  $(eval $(call Compile/Template,basic, \
+               --without-mysql \
+               --without-postgresql \
+  ))
+  $(eval $(call Install/Template,snort,basic))
+endif
+ifneq ($(CONFIG_PACKAGE_snort-wireless-mysql),)
+  $(eval $(call Compile/Template,mysql, \
+               --with-mysql="$(STAGING_DIR)/usr" \
+               --without-postgresql \
+  ))
+  $(eval $(call Install/Template,snort-wireless-mysql,mysql))
+endif
+ifneq ($(CONFIG_PACKAGE_snort-pgsql),)
+  $(eval $(call Compile/Template,pgsql, \
+               --without-mysql \
+               --with-postgresql="$(STAGING_DIR)/usr" \
+  ))
+  $(eval $(call Install/Template,snort-wireless-pgsql,pgsql))
+endif
+
+define Build/Configure
+endef
+
+define Build/Compile
+endef
+
+$(eval $(call BuildPackage,snort-wireless))
+$(eval $(call BuildPackage,snort-wireless-mysql))
+$(eval $(call BuildPackage,snort-wireless-pgsql))
diff --git a/net/snort-wireless/files/snort-wireless.default b/net/snort-wireless/files/snort-wireless.default
new file mode 100644 (file)
index 0000000..796a893
--- /dev/null
@@ -0,0 +1,2 @@
+INTERFACE="vlan1" # WAN
+OPTIONS="-i $INTERFACE -c /etc/snort/snort.conf -D -N -q -s"
diff --git a/net/snort-wireless/files/snort-wireless.init b/net/snort-wireless/files/snort-wireless.init
new file mode 100644 (file)
index 0000000..8c019c4
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+DEFAULT=/etc/default/snort
+LOG_D=/var/log/snort
+RUN_D=/var/run
+[ -f $DEFAULT ] && . $DEFAULT
+PID_F=$RUN_D/snort_$INTERFACE.pid
+
+case $1 in
+ start)
+  [ -d $LOG_D ] || mkdir -p $LOG_D
+  [ -d $RUN_D ] || mkdir -p $RUN_D
+  snort $OPTIONS
+  ;;
+ stop)
+  [ -f $PID_F ] && kill $(cat $PID_F)
+  ;;
+ *)
+  echo "usage: $0 (start|stop)"
+  exit 1
+esac
+
+exit $?
diff --git a/net/snort-wireless/patches/500-no-config-search.patch b/net/snort-wireless/patches/500-no-config-search.patch
new file mode 100644 (file)
index 0000000..d674ba6
--- /dev/null
@@ -0,0 +1,35 @@
+--- snort-2.3.2-orig/src/snort.c       2005-01-13 21:36:20.000000000 +0100
++++ snort-2.3.2-1/src/snort.c  2005-04-04 20:03:34.000000000 +0200
+@@ -1949,7 +1949,7 @@
+ {
+     struct stat st;
+     int i;
+-    char *conf_files[]={"/etc/snort.conf", "./snort.conf", NULL};
++    char *conf_files[]={"/etc/snort/snort.conf", NULL};
+     char *fname = NULL;
+     char *home_dir = NULL;
+     char *rval = NULL;
+@@ -1970,23 +1970,6 @@
+         i++;
+     }
+-    /* search for .snortrc in the HOMEDIR */
+-    if(!rval)
+-    {
+-        if((home_dir = getenv("HOME")))
+-        {
+-            /* create the full path */
+-            fname = (char *)malloc(strlen(home_dir) + strlen("/.snortrc") + 1);
+-            if(!fname)
+-                FatalError("Out of memory searching for config file\n");
+-
+-            if(stat(fname, &st) != -1)
+-                rval = fname;
+-            else
+-                free(fname);
+-        }
+-    }
+-
+     return rval;
+ }
diff --git a/net/snort-wireless/patches/750-lightweight-config.patch b/net/snort-wireless/patches/750-lightweight-config.patch
new file mode 100644 (file)
index 0000000..daea3be
--- /dev/null
@@ -0,0 +1,178 @@
+--- snort-wireless-2.4.3-alpha04/etc/snort.conf        2005-10-21 09:41:01.000000000 +0200
++++ /Users/florian/telechargements/snort.conf  2005-10-30 13:20:17.000000000 +0100
+@@ -6,6 +6,7 @@
+ #
+ ###################################################
+ # This file contains a sample snort configuration. 
++# Most preprocessors and rules were disabled to save memory.
+ # You can take the following steps to create your own custom configuration:
+ #
+ #  1) Set the variables for your network
+@@ -42,10 +43,10 @@
+ # or you can specify the variable to be any IP address
+ # like this:
+-var HOME_NET any
++var HOME_NET 192.168.1.0/24
+ # Set up the external network addresses as well.  A good start may be "any"
+-var EXTERNAL_NET any
++var EXTERNAL_NET !$HOME_NET
+ # Configure your wireless AP lists.  This allows snort to look for attacks
+ # against your wireless network, such as rogue access points or adhoc wireless
+@@ -137,7 +138,7 @@
+ # Path to your rules files (this can be a relative path)
+ # Note for Windows users:  You are advised to make this an absolute path,
+ # such as:  c:\snort\rules
+-var RULE_PATH ../rules
++var RULE_PATH /etc/snort/rules
+ # Configure the snort decoder
+ # ============================
+@@ -413,11 +414,11 @@
+ # lots of options available here. See doc/README.http_inspect.
+ # unicode.map should be wherever your snort.conf lives, or given
+ # a full path to where snort can find it.
+-preprocessor http_inspect: global \
+-    iis_unicode_map unicode.map 1252 
++#preprocessor http_inspect: global \
++#    iis_unicode_map unicode.map 1252 
+-preprocessor http_inspect_server: server default \
+-    profile all ports { 80 8080 8180 } oversize_dir_length 500
++#preprocessor http_inspect_server: server default \
++#    profile all ports { 80 8080 8180 } oversize_dir_length 500
+ #
+ #  Example unique server configuration
+@@ -451,7 +452,7 @@
+ # no_alert_incomplete - don't alert when a single segment
+ #                       exceeds the current packet size
+-preprocessor rpc_decode: 111 32771
++#preprocessor rpc_decode: 111 32771
+ # bo: Back Orifice detector
+ # -------------------------
+@@ -474,7 +475,7 @@
+ #   3       Back Orifice Server Traffic Detected
+ #   4       Back Orifice Snort Buffer Attack
+-preprocessor bo
++#preprocessor bo
+ # telnet_decode: Telnet negotiation string normalizer
+ # ---------------------------------------------------
+@@ -486,7 +487,7 @@
+ # This preprocessor requires no arguments.
+ # Portscan uses Generator ID 109 and does not generate any SID currently.
+-preprocessor telnet_decode
++#preprocessor telnet_decode
+ # sfPortscan
+ # ----------
+@@ -537,9 +538,9 @@
+ #       are still watched as scanner hosts.  The 'ignore_scanned' option is
+ #       used to tune alerts from very active hosts such as syslog servers, etc.
+ #
+-preprocessor sfportscan: proto  { all } \
+-                         memcap { 10000000 } \
+-                         sense_level { low }
++#preprocessor sfportscan: proto  { all } \
++#                         memcap { 10000000 } \
++#                         sense_level { low }
+ # arpspoof
+ #----------------------------------------
+@@ -814,41 +815,41 @@
+ include $RULE_PATH/bad-traffic.rules
+ include $RULE_PATH/exploit.rules
+ include $RULE_PATH/scan.rules
+-include $RULE_PATH/finger.rules
+-include $RULE_PATH/ftp.rules
+-include $RULE_PATH/telnet.rules
+-include $RULE_PATH/rpc.rules
+-include $RULE_PATH/rservices.rules
+-include $RULE_PATH/dos.rules
+-include $RULE_PATH/ddos.rules
+-include $RULE_PATH/dns.rules
+-include $RULE_PATH/tftp.rules
+-
+-include $RULE_PATH/web-cgi.rules
+-include $RULE_PATH/web-coldfusion.rules
+-include $RULE_PATH/web-iis.rules
+-include $RULE_PATH/web-frontpage.rules
+-include $RULE_PATH/web-misc.rules
+-include $RULE_PATH/web-client.rules
+-include $RULE_PATH/web-php.rules
+-
+-include $RULE_PATH/sql.rules
+-include $RULE_PATH/x11.rules
+-include $RULE_PATH/icmp.rules
+-include $RULE_PATH/netbios.rules
+-include $RULE_PATH/misc.rules
+-include $RULE_PATH/attack-responses.rules
+-include $RULE_PATH/oracle.rules
+-include $RULE_PATH/mysql.rules
+-include $RULE_PATH/snmp.rules
+-
+-include $RULE_PATH/smtp.rules
+-include $RULE_PATH/imap.rules
+-include $RULE_PATH/pop2.rules
+-include $RULE_PATH/pop3.rules
++#include $RULE_PATH/finger.rules
++#include $RULE_PATH/ftp.rules
++#include $RULE_PATH/telnet.rules
++#include $RULE_PATH/rpc.rules
++#include $RULE_PATH/rservices.rules
++#include $RULE_PATH/dos.rules
++#include $RULE_PATH/ddos.rules
++#include $RULE_PATH/dns.rules
++#include $RULE_PATH/tftp.rules
++
++#include $RULE_PATH/web-cgi.rules
++#include $RULE_PATH/web-coldfusion.rules
++#include $RULE_PATH/web-iis.rules
++#include $RULE_PATH/web-frontpage.rules
++#include $RULE_PATH/web-misc.rules
++#include $RULE_PATH/web-client.rules
++#include $RULE_PATH/web-php.rules
++
++#include $RULE_PATH/sql.rules
++#include $RULE_PATH/x11.rules
++#include $RULE_PATH/icmp.rules
++#include $RULE_PATH/netbios.rules
++#include $RULE_PATH/misc.rules
++#include $RULE_PATH/attack-responses.rules
++#include $RULE_PATH/oracle.rules
++#include $RULE_PATH/mysql.rules
++#include $RULE_PATH/snmp.rules
++
++#include $RULE_PATH/smtp.rules
++#include $RULE_PATH/imap.rules
++#include $RULE_PATH/pop2.rules
++#include $RULE_PATH/pop3.rules
+-include $RULE_PATH/nntp.rules
+-include $RULE_PATH/other-ids.rules
++#include $RULE_PATH/nntp.rules
++#include $RULE_PATH/other-ids.rules
+ # include $RULE_PATH/web-attacks.rules
+ # include $RULE_PATH/backdoor.rules
+ # include $RULE_PATH/shellcode.rules
+@@ -856,11 +857,11 @@
+ # include $RULE_PATH/porn.rules
+ # include $RULE_PATH/info.rules
+ # include $RULE_PATH/icmp-info.rules
+- include $RULE_PATH/virus.rules
++# include $RULE_PATH/virus.rules
+ # include $RULE_PATH/chat.rules
+ # include $RULE_PATH/multimedia.rules
+ # include $RULE_PATH/p2p.rules
+-include $RULE_PATH/experimental.rules
++#include $RULE_PATH/experimental.rules
+ #include $RULE_PATH/wifi.rules
+ # Include any thresholding or suppression commands. See threshold.conf in the