install-full: install install-conf install-rules
install-conf:
- install -d $(e_sysconfdir)
- @test -e $(e_sysconfdir)/suricata.yaml || install -m 600 $(top_srcdir)/suricata.yaml $(e_sysconfdir)
- @test -e $(e_sysconfdir)/classification.config || install -m 600 $(top_srcdir)/classification.config $(e_sysconfdir)
- @test -e $(e_sysconfdir)/reference.config || install -m 600 $(top_srcdir)/reference.config $(e_sysconfdir)
- install -d $(localstatedir)/log/suricata/files
+ install -d "$(e_sysconfdir)"
+ @test -e "$(e_sysconfdir)/suricata.yaml" || install -m 600 "$(top_srcdir)/suricata.yaml" "$(e_sysconfdir)"
+ @test -e "$(e_sysconfdir)/classification.config" || install -m 600 "$(top_srcdir)/classification.config" "$(e_sysconfdir)"
+ @test -e "$(e_sysconfdir)/reference.config" || install -m 600 "$(top_srcdir)/reference.config" "$(e_sysconfdir)"
+ install -d "$(e_logfilesdir)"
install-rules:
- install -d $(e_sysconfdir)/rules
- wget -qO - http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz | tar -x -z -C $(e_sysconfdir) -f -
- @test -e $(e_sysconfdir)/rules/decoder-events.rules || install -m 600 $(top_srcdir)/rules/decoder-events.rules $(e_sysconfdir)/rules/
- @test -e $(e_sysconfdir)/rules/stream-events.rules || install -m 600 $(top_srcdir)/rules/stream-events.rules $(e_sysconfdir)/rules/
- @test -e $(e_sysconfdir)/rules/smtp-events.rules || install -m 600 $(top_srcdir)/rules/smtp-events.rules $(e_sysconfdir)/rules/
- @test -e $(e_sysconfdir)/rules/http-events.rules || install -m 600 $(top_srcdir)/rules/http-events.rules $(e_sysconfdir)/rules/
+ install -d "$(e_sysconfrulesdir)"
+ wget -qO - http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz | tar -x -z -C "$(e_sysconfdir)" -f -
+ @test -e "$(e_sysconfrulesdir)decoder-events.rules" || install -m 600 "$(top_srcdir)/rules/decoder-events.rules" "$(e_sysconfrulesdir)"
+ @test -e "$(e_sysconfrulesdir)stream-events.rules" || install -m 600 "$(top_srcdir)/rules/stream-events.rules" "$(e_sysconfrulesdir)"
+ @test -e "$(e_sysconfrulesdir)smtp-events.rules" || install -m 600 "$(top_srcdir)/rules/smtp-events.rules" "$(e_sysconfrulesdir)"
+ @test -e "$(e_sysconfrulesdir)http-events.rules" || install -m 600 "$(top_srcdir)/rules/http-events.rules" "$(e_sysconfrulesdir)"
@echo ""
@echo "You can now start suricata by running as root something like '$(bindir)/suricata -c $(e_sysconfdir)/suricata.yaml -i eth0'."
@echo ""
@echo "If a library like libhtp.so is not found, you can run suricata with:"
- @echo "'LD_LIBRARY_PATH=$(prefix)/lib $(bindir)/suricata -c $(e_sysconfdir)/suricata.yaml -i eth0'."
+ @echo "'LD_LIBRARY_PATH="$(prefix)/lib" "$(bindir)/suricata" -c "$(e_sysconfdir)/suricata.yaml" -i eth0'."
@echo ""
@echo "While rules are installed now, it's highly recommended to use a rule manager for maintaining rules."
@echo "The two most common are Oinkmaster and Pulledpork. For a guide see:"
# suricata log dir
if test "$WINDOWS_PATH" = "yes"; then
- systemtype="`systeminfo | grep \"System Type\"`"
- case $systemtype in
+ systemtype="`systeminfo | grep \"based PC\"`"
+ case "$systemtype" in
*x64*)
- e_logdir="C:\\Program Files (x86)\\Suricata\\log\\"
- e_sysconfdir="C:\\Program Files (x86)\\Suricata\\"
- e_magic_file="C:\\Program Files (x86)\\Suricata\\magic.mgc"
+ e_winbase="C:\\\\Program Files (x86)\\\\Suricata"
;;
*)
- e_logdir="C:\\Program Files\\Suricata\\log\\"
- e_sysconfdir="C:\\Program Files\\Suricata\\"
- e_magic_file="C:\\Program Files\\Suricata\\magic.mgc"
+ e_winbase="C:\\\\Program Files\\\\Suricata"
;;
esac
+
+ e_sysconfdir="$e_winbase\\\\"
+ e_sysconfrulesdir="$e_winbase\\\\rules\\\\"
+ e_magic_file="$e_winbase\\\\magic.mgc"
+ e_logdir="$e_winbase\\\\log"
+ e_logfilesdir="$e_logdir\\\\files"
else
EXPAND_VARIABLE(localstatedir, e_logdir, "/log/suricata/")
+ EXPAND_VARIABLE(localstatedir, e_logfilesdir, "/log/suricata/files")
EXPAND_VARIABLE(sysconfdir, e_sysconfdir, "/suricata/")
+ EXPAND_VARIABLE(sysconfdir, e_sysconfrulesdir, "/suricata/rules")
fi
AC_SUBST(e_logdir)
+AC_SUBST(e_logfilesdir)
AC_SUBST(e_sysconfdir)
+AC_SUBST(e_sysconfrulesdir)
+AC_DEFINE_UNQUOTED([CONFIG_DIR],["$e_sysconfdir"],[Our CONFIG_DIR])
AC_SUBST(e_magic_file)
AC_OUTPUT(Makefile src/Makefile qa/Makefile qa/coccinelle/Makefile rules/Makefile doc/Makefile suricata.yaml)
util-validate.h
bin_PROGRAMS = suricata
-AM_CPPFLAGS = -DCONFIG_DIR=\"$(e_sysconfdir)\"
-
suricata_SOURCES = suricata.c suricata.h \
runmodes.c runmodes.h \
runmode-pcap.c runmode-pcap.h \
if (path == NULL)
return NULL;
strlcpy(path, defaultpath, path_len);
- if (path[strlen(path) - 1] != '/')
+#if defined OS_WIN32 || defined __CYGWIN__
+ if (path[strlen(path) - 1] != '\\')
+ strlcat(path, "\\\\", path_len);
+#else
+ if (path[strlen(path) - 1] != '/')
strlcat(path, "/", path_len);
+#endif
strlcat(path, sig_file, path_len);
} else {
path = SCStrdup(sig_file);
#define DETECT_CLASSCONFIG_REGEX "^\\s*config\\s*classification\\s*:\\s*([a-zA-Z][a-zA-Z0-9-_]*)\\s*,\\s*(.+)\\s*,\\s*(\\d+)\\s*$"
/* Default path for the classification.config file */
+#if defined OS_WIN32 || defined __CYGWIN__
+#define SC_CLASS_CONF_DEF_CONF_FILEPATH CONFIG_DIR "\\\\classification.config"
+#else
#define SC_CLASS_CONF_DEF_CONF_FILEPATH CONFIG_DIR "/classification.config"
+#endif
/* Holds a pointer to the default path for the classification.config file */
static const char *default_file_path = SC_CLASS_CONF_DEF_CONF_FILEPATH;
#define DETECT_SUPPRESS_REGEX "^,\\s*track\\s*(by_dst|by_src)\\s*,\\s*ip\\s*([\\d.:/]+)*\\s*$"
/* Default path for the threshold.config file */
+#if defined OS_WIN32 || defined __CYGWIN__
+#define THRESHOLD_CONF_DEF_CONF_FILEPATH CONFIG_DIR "\\\\threshold.config"
+#else
#define THRESHOLD_CONF_DEF_CONF_FILEPATH CONFIG_DIR "/threshold.config"
+#endif
static pcre *regex_base = NULL;
static pcre_extra *regex_base_study = NULL;