From: Florian Fainelli Date: Mon, 13 Nov 2006 12:45:06 +0000 (+0000) Subject: Add snort-wireless to -ng X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;h=9a9808df69526a19070abc5cf4811c87d075b793 Add snort-wireless to -ng SVN-Revision: 5520 --- diff --git a/net/snort-wireless/Makefile b/net/snort-wireless/Makefile new file mode 100644 index 0000000000..8e2ea629eb --- /dev/null +++ b/net/snort-wireless/Makefile @@ -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 index 0000000000..796a893b02 --- /dev/null +++ b/net/snort-wireless/files/snort-wireless.default @@ -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 index 0000000000..8c019c41d4 --- /dev/null +++ b/net/snort-wireless/files/snort-wireless.init @@ -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 index 0000000000..d674ba66aa --- /dev/null +++ b/net/snort-wireless/patches/500-no-config-search.patch @@ -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 index 0000000000..daea3be5ac --- /dev/null +++ b/net/snort-wireless/patches/750-lightweight-config.patch @@ -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