From: Vsevolod Stakhov Date: Thu, 6 May 2010 14:40:37 +0000 (+0400) Subject: * Add sample XML config X-Git-Tag: 0.3.0~19 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=71d0d1657d9dd40fb2bd3390e752db18327ecdf0;p=rspamd.git * Add sample XML config * Fix minor errors in logging initializing * Fix installation of config files --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b93b49c7..ef8b40182 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -512,7 +512,7 @@ ENDIF(PERL_EXECUTABLE) CONFIGURE_FILE(config.h.in src/config.h) CONFIGURE_FILE(rspamc.pl.in rspamc.pl @ONLY) -CONFIGURE_FILE(rspamd.conf.sample conf/rspamd.conf.sample @ONLY) +CONFIGURE_FILE(rspamd.xml.sample conf/rspamd.xml.sample @ONLY) ######################### LINK SECTION ############################### ADD_EXECUTABLE(rspamd ${RSPAMDSRC} ${CONTRIBSRC} ${TOKENIZERSSRC} @@ -659,12 +659,16 @@ IF(NOT EXISTS ${ETC_PREFIX}/rspamd/lotto.inc) INSTALL(FILES conf/lotto.inc DESTINATION ${ETC_PREFIX}/rspamd) ENDIF(NOT EXISTS ${ETC_PREFIX}/rspamd/lotto.inc) -INSTALL(FILES conf/rspamd.conf.sample DESTINATION ${ETC_PREFIX}/) +INSTALL(FILES conf/rspamd.xml.sample DESTINATION ${ETC_PREFIX}/) # Lua plugins INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory ${ETC_PREFIX}/rspamd/plugins)") INSTALL(DIRECTORY src/plugins/lua DESTINATION ${ETC_PREFIX}/rspamd/plugins PATTERN "*.lua") +# Lua config +INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory ${ETC_PREFIX}/rspamd/lua)") +INSTALL(DIRECTORY conf/lua DESTINATION ${ETC_PREFIX}/rspamd/ PATTERN "*.lua") + # Perl lib IF(PERL_EXECUTABLE) INSTALL(CODE "EXECUTE_PROCESS(COMMAND make install WORKING_DIRECTORY perl)") diff --git a/rspamd.conf.sample b/rspamd.conf.sample deleted file mode 100644 index 43febafca..000000000 --- a/rspamd.conf.sample +++ /dev/null @@ -1,383 +0,0 @@ -# Sample config file for rspamd -# $Id$ -# - -.include @ETC_PREFIX@/rspamd/drugs.inc -.include @ETC_PREFIX@/rspamd/lotto.inc -.include @ETC_PREFIX@/rspamd/fraud.inc -.include @ETC_PREFIX@/rspamd/headers.inc -.include @ETC_PREFIX@/rspamd/html.inc - - -# pidfile - path to pid file -# Default: pidfile = /var/run/rspamd.pid -pidfile = "/var/run/rspamd.pid"; - - -worker { - type = "normal"; - - # Number of workers to process connections - # Default: number of processors in system - count = 1; - - # Socket for accepting mail to filter, can be unix socket if begin with '/' - # (bind_socket=/var/run/rspamd.sock for example) - bind_socket = localhost:11333; -}; - - -# Settings for controller interface -worker { - type = "controller"; - - # Bind socket for control interface - bind_socket = localhost:11334; - - count = 1; - # Password for privilleged commands - password = "q1"; -}; - -# Settings for fuzzy storage interface -worker { - type = "fuzzy"; - - # Bind socket for control interface - bind_socket = localhost:11335; - - count = 1; - # Path to filesystem storage - hashfile = "/tmp/fuzzy.db"; -}; - -# Options for lmtp worker -#worker { - #type = "lmtp"; - # Bind socket for lmtp interface - #bind_socket = localhost:11335; - # Metric that is considered as main. If we have spam result on - # this metric, lmtp delivery would be failed - #metric = "default"; - # Number of lmtp workers - #count = 1; -#}; - -#worker { - #type = "delivery"; - # Path to delivery agent, %f is expanded as mail from address and %r - # is expanded as recipient address - # Expample: agent = "/usr/local/bin/procmail -f %f -d %r" - #agent = "/dev/null"; - # Bind socket for lmtp interface - # Example: bind_socket = localhost:25 - - # Whether we should use lmtp for MTA delivery - #lmtp = no; -#}; - - -# Sample metric definition -metric { - # Name of metric - name = "testmetric"; - # Score to count message as spam by this metric - required_score = 10.1; - # Symbols cache path for optimal checks planning - cache_file = "/tmp/symbols.cache"; -}; - -# Logging settings -logging { - # Log type can be: console, syslog and file - log_type = console; - # Log level can be: DEBUG, INFO, WARN and ERROR - log_level = INFO; - # Log facility specifies facility for syslog logging, see syslog (3) for details - # log_facility = "LOG_MAIL"; - - # Log file is used with log type "file" - # log_file = "/var/log/rspamd.log" -}; - -# Limit for statfile pool size -# Default: 100M -statfile_pool_size = 40M; - -# Classifier definition -classifier { - # Type of classfier - type = "winnow"; - # Tokenizer used - tokenizer = "osb-text"; - # Sample statfile definition - statfile { - # Alias is used for learning and is used as symbol - symbol = "WINNOW_SPAM"; - # Pattern is path to file - path = "/tmp/test.spam"; - # Size of this statfile class - size = 10M; - - # Used for normalizing results, number means maximum score for this - # class - normalizer="internal:10"; - # Autolearn params - #autolearn { - # min_mark = 10.0; - #}; - }; - statfile { - symbol = "WINNOW_HAM"; - path = "/tmp/test.ham"; - size = 10M; - # Autolearn params - #autolearn { - # max_mark = 0.1; - #}; - }; -}; - -# Factors coefficients -factors { - # SURBL's - "SC_SURBL_MULTI" = 5.5; - "WS_SURBL_MULTI" = 5.5; - "PH_SURBL_MULTI" = 5.5; - "OB_SURBL_MULTI" = 5.5; - "AB_SURBL_MULTI" = 5.5; - "JP_SURBL_MULTI" = 5.5; - "RAMBLER_URIBL" = 10.5; - - # Regexp factors - "R_TINYURL" = 2; - "R_FREE_HOSTING" = 4; - "R_FREE_HOSTING_NAROD" = 3; - "R_WWW_EKONF_COM" = 10; - "SUBJECT_NEEDS_ENCODING" = 1; - - "R_POCHTA_RU" = 10; - "R_BAD_CTE_7BIT" = 6; - "R_UNDISC_RCPT" = 5; - "MISSING_MID" = 3; - "R_RCVD_SPAMBOTS" = 3; - "R_TO_SEEMS_AUTO" = 3; - "R_MISSING_CHARSET" = 5; - "R_SAJDING" = 8; - "R_FORGED_MPOP_WEBMAIL" = 8; - "R_WHITE_ON_WHITE" = 9; - "R_NO_SPACE_IN_FROM" = 3; - "R_FLASH_REDIR_IMGSHACK" = 10; - "R_SPAM_FROM_VALUEHOST" = 10; - "R_SPAM_FROM_MTU" = 8; - "R_SPAM_FROM_ONO" = 10; - "R_SPAM_FROM_VERSATEL" = 10; - "R_SPAM_FROM_LIBERO" = 10; - "R_FAKE_OUTLOOK"= 8; - "R_FAKE_THEBAT"= 8; - "R_LOTTO" = 5; - "KAM_LOTTO1" = 7; - "FORGED_OUTLOOK_HTML" = 5; - "SUSPICIOUS_RECIPS" = 3.5; - "HTML_TAG_BALANCE_HEAD" = 5; - "SORTED_RECIPS" = 3.5; - "TRACKER_ID" = 3.843; - "ADVANCE_FEE_2" = 3.300; - "ADVANCE_FEE_3" = 2.121; - "FORGED_MUA_OUTLOOK" = 3; - "FORGED_OUTLOOK_TAGS" = 2.099; - "HTML_SHORT_LINK_IMG_2" = 3; - "INVALID_MSGID" = 5; - "HTML_MIME_NO_HTML_TAG" = 2; - "MIME_HEADER_CTYPE_ONLY" = 2; - "MISSING_MIMEOLE" = 5; - "MISSING_SUBJECT" = 2; - "RATWARE_MS_HASH" = 2; - "STOX_REPLY_TYPE" = 1; - "FM_FAKE_HELO_VERIZON" = 2; - "FORGED_MSGID_YAHOO" = 2; - "FORGED_MUA_THEBAT_BOUN" = 2; - "RCVD_DOUBLE_IP_SPAM" = 2; - "REPTO_QUOTE_YAHOO" = 2; - "DRUGS_DIET" = 2; - "DRUGS_ERECTILE" = 2; - "DRUGS_ANXIETY" = 2; - "DRUGS_ANXIETY_EREC" = 2; - "DRUGS_MANYKINDS" = 2; - "FAKE_REPLY_C" = 6; - "MIME_HTML_ONLY" = 1; - - # Modules factors - "R_MIXED_CHARSET" = 5; - "R_BAD_EMAIL" = 10.5; -}; - - -# SURBL module params, note that single quotes are mandatory here -.module 'surbl' { - # Address to redirector in host:port format - #redirector = "localhost:8080"; - # Connect timeout for redirector - redirector_connect_timeout = "1s"; - # IO timeout for redirector (may be usefull to set this value rather big) - redirector_read_timeout = "10s"; - # This is suffix for surbl dns requests, - # %b is replaced with bit metric if it is found - suffix_%b_SURBL_MULTI = "multi.surbl.org"; - - # Bits that are used to determine specific URI black list - # details are at http://www.surbl.org/lists.html#multi - # sytax is: bit_{number} = "SYMBOL" - bit_2 = "SC"; # sc.surbl.org - bit_4 = "WS"; # ws.surbl.org - bit_8 = "PH"; # ph.surbl.org - bit_16 = "OB"; # ob.surbl.org - bit_32 = "AB"; # ab.surbl.org - bit_64 = "JP"; # jp.surbl.org - - # Metric for surbl module - metric = "default"; - # List of public known hostings (for which we should use 3 components of domain name instead of 2) - 2tld = "file://@CMAKE_INSTALL_PREFIX@/etc/rspamd/2tld.inc"; - # Whitelisted urls - whitelist = "file://@CMAKE_INSTALL_PREFIX@/etc/rspamd/surbl-whitelist.inc"; -}; - -.module 'regexp' { - R_TINYURL = "${R_TINYURL}"; - R_FREE_HOSTING = "${R_FREE_HOSTING}"; - R_WWW_EKONF_COM = "${R_WWW_EKONF_COM}"; - R_FREE_HOSTING_NAROD = "${R_FREE_HOSTING_NAROD}"; - SUBJECT_NEEDS_ENCODING = "${SUBJECT_NEEDS_ENCODING}"; - - R_POCHTA_RU = "${R_POCHTA_RU}"; - R_BAD_CTE_7BIT="${R_BAD_CTE_7BIT}"; - R_UNDISC_RCPT="${R_UNDISC_RCPT}"; - MISSING_MID="${MISSING_MID}"; - R_RCVD_SPAMBOTS="${R_RCVD_SPAMBOTS}"; - R_TO_SEEMS_AUTO="${R_TO_SEEMS_AUTO}"; - R_SAJDING="${R_SAJDING}"; - R_FORGED_MPOP_WEBMAIL="${R_FORGED_MPOP_WEBMAIL}"; - R_WHITE_ON_WHITE="${R_WHITE_ON_WHITE}"; - R_NO_SPACE_IN_FROM="${R_NO_SPACE_IN_FROM}"; - R_FLASH_REDIR_IMGSHACK="${R_FLASH_REDIR_IMGSHACK}"; - R_SPAM_FROM_VALUEHOST="${R_SPAM_FROM_VALUEHOST}"; - R_SPAM_FROM_MTU="${R_SPAM_FROM_MTU}"; - R_SPAM_FROM_ONO="${R_SPAM_FROM_ONO}"; - R_SPAM_FROM_VERSATEL="${R_SPAM_FROM_VERSATEL}"; - R_SPAM_FROM_LIBERO="${R_SPAM_FROM_LIBERO}"; - R_FAKE_OUTLOOK="${R_FAKE_OUTLOOK}"; - R_FAKE_THEBAT="${R_FAKE_THEBAT}"; - R_MISSING_CHARSET="${R_MISSING_CHARSET}"; - R_LOTTO="${R_LOTTO}"; - KAM_LOTTO1="${KAM_LOTTO1}"; - FORGED_OUTLOOK_HTML="${FORGED_OUTLOOK_HTML}"; - SUSPICIOUS_RECIPS="${SUSPICIOUS_RECIPS}"; - SORTED_RECIPS="${SORTED_RECIPS}"; - TRACKER_ID="${TRACKER_ID}"; - ADVANCE_FEE_2="${ADVANCE_FEE_2}"; - ADVANCE_FEE_3="${ADVANCE_FEE_3}"; - FORGED_MUA_OUTLOOK="${FORGED_MUA_OUTLOOK}"; - FORGED_OUTLOOK_TAGS="${FORGED_OUTLOOK_TAGS}"; - HTML_SHORT_LINK_IMG_2="${HTML_SHORT_LINK_IMG_2}"; - INVALID_MSGID="${INVALID_MSGID}"; - HTML_MIME_NO_HTML_TAG="${HTML_MIME_NO_HTML_TAG}"; - MIME_HEADER_CTYPE_ONLY="${MIME_HEADER_CTYPE_ONLY}"; - MISSING_MIMEOLE="${MISSING_MIMEOLE}"; - MISSING_SUBJECT="${MISSING_SUBJECT}"; - RATWARE_MS_HASH="${RATWARE_MS_HASH}"; - STOX_REPLY_TYPE="${STOX_REPLY_TYPE}"; - FM_FAKE_HELO_VERIZON="${FM_FAKE_HELO_VERIZON}"; - FORGED_MSGID_YAHOO="${FORGED_MSGID_YAHOO}"; - FORGED_MUA_THEBAT_BOUN="${FORGED_MUA_THEBAT_BOUN}"; - RCVD_DOUBLE_IP_SPAM="${RCVD_DOUBLE_IP_SPAM}"; - REPTO_QUOTE_YAHOO="${REPTO_QUOTE_YAHOO}"; - DRUGS_DIET="${DRUGS_DIET}"; - DRUGS_ERECTILE="${DRUGS_ERECTILE}"; - DRUGS_ANXIETY="${DRUGS_ANXIETY}"; - DRUGS_ANXIETY_EREC="${DRUGS_ANXIETY_EREC}"; - DRUGS_MANYKINDS="${DRUGS_MANYKINDS}"; - - FAKE_REPLY_C="${FAKE_REPLY_C}"; - MIME_HTML_ONLY="${MIME_HTML_ONLY}"; -}; - -.module 'chartable' { - metric = "default"; - symbol = "R_MIXED_CHARSET"; - threshold = "0.1"; -}; - -.module 'emails' { - metric = "default"; - symbol = "R_BAD_EMAIL"; - #blacklist = "file:///some/path/emails.lst"; -}; - -# Module for fuzzy checksum loading -.module 'fuzzy_check' { - metric = "default"; - symbol = "R_FUZZY"; - # List of fuzzy storage servers, separated by ',' or ';' or simple by spaces - servers = "localhost:11335"; -}; - -# LUA module for rbl checks of received headers -.module 'received_rbl' { - # RBL definitions, all would be checked - rbl = "insecure-bl.rambler.ru"; - rbl = "pbl.spamhaus.org"; -}; - -# Path to lua modules (all *.lua files would be loaded) -#modules { -# module_path = "@CMAKE_INSTALL_PREFIX@/etc/rspamd/plugins/lua/"; -#}; - - -# If enables threat each regexp as raw regex and do not try to convert -# each text part to utf8 encoding. Save a lot of resources but less -# portable. -# Default: no -raw_mode = yes; - -filters = "surbl,regexp,chartable,emails"; - -# Definition of view, views may allow to customize rules for different messages -view { - # All directives here may be duplicated to add specific elements or regexp/files - # List of ip/mask for this view - ip = "file://@CMAKE_INSTALL_PREFIX@/etc/rspamd/ip_internal.inc"; - # From addresses for this view: - # list is placed in file: - #from = "file://@CMAKE_INSTALL_PREFIX@/etc/rspamd/from_internal.inc"; - # list is regexp: - #from = "/^.+@example.com$/i"; - # Symbols to check, can also be list of files or regexp: - symbols = "/^[A-Z]{2}_SURBL_MULTI$/i"; -}; - -# Settings files -#settings { - # json data for user's settings - #user_settings = "file:///some/json/file"; - - # json data for domain's settings - #domain_settings = "file:///some/other/json/file"; -#}; - -# Example of json config: -# [ -# { -# "name": "cebka@test.ru", -# "metrics": -# { -# "default": 5.5 -# }, -# "factors": -# { -# "R_FUZZY": 10.1 -# }, -# "want_spam": false -# } -# ] diff --git a/rspamd.xml.sample b/rspamd.xml.sample new file mode 100644 index 000000000..2dbd07d00 --- /dev/null +++ b/rspamd.xml.sample @@ -0,0 +1,237 @@ + + + +/tmp +/var/run/rspamd.pid +regexp,surbl,chartable,emails,fuzzy_check,spf +262144000 +yes +fake + + + + + info + yes + console + + + + + + + 8.00 + 10.00 + 2.00 + 2.00 + 2.10 + 8.00 + 5.00 + 2.00 + 3.30 + 2.12 + 3.50 + 6.00 + 1.00 + 5.50 + 2.00 + 5.50 + 2.00 + 5.00 + 2.00 + 5.50 + 5.00 + 2.00 + 10.50 + 10.00 + 0.00 + -2.00 + 5.00 + 2.00 + 2.00 + 5.50 + 9.00 + 1.00 + 5.00 + 10.00 + 3.00 + 3.00 + 4.00 + 2.00 + 3.00 + 100.00 + 10.00 + 2.00 + 2.00 + 5.00 + 0.50 + 10.00 + 5.00 + 3.50 + 3.00 + 5.50 + 3.00 + 1.00 + 3.84 + 7.00 + 3.00 + 8.00 + 6.00 + 5.50 + 10.00 + 10.00 + 5.00 + 8.00 + 3.00 + 2.00 + 3.00 + 2.00 + 5.00 + 1.00 + 0.00 + 2.00 + 8.00 + + + + + + + + + fuzzy + localhost:11335 + 1 + 2048 + 0 + + /tmp/fuzzy.db + yes + + + controller + localhost:11334 + 1 + 2048 + 0 + + q1 + + + normal + localhost:11333 + 1 + 2048 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + osb-text + default + + + WINNOW_HAM + 104857600 + /tmp/test.ham + internal:10 + master + 0 + + + WINNOW_SPAM + 104857600 + /tmp/test.spam + internal:10 + master + 0 + + + + + + + @ETC_PREFIX@/rspamd/plugins/lua/ + + + + diff --git a/src/main.c b/src/main.c index 522af5736..e13ccb77c 100644 --- a/src/main.c +++ b/src/main.c @@ -236,7 +236,7 @@ drop_priv (struct config_file *cfg) static void config_logger (struct rspamd_main *rspamd, gboolean is_fatal) { - rspamd_set_logger (rspamd->cfg->log_type, RSPAMD_MAIN, rspamd->cfg); + rspamd_set_logger (rspamd->cfg->log_type, TYPE_MAIN, rspamd->cfg); if (open_log () == -1) { if (is_fatal) { fprintf (stderr, "Fatal error, cannot open logfile, exiting\n"); @@ -781,7 +781,7 @@ main (int argc, char **argv, char **env) #endif /* First set logger to console logger */ - rspamd_set_logger (RSPAMD_LOG_CONSOLE, RSPAMD_MAIN, rspamd->cfg); + rspamd_set_logger (RSPAMD_LOG_CONSOLE, TYPE_MAIN, rspamd->cfg); (void)open_log (); g_log_set_default_handler (rspamd_glib_log_function, rspamd->cfg);