Антиспамовый фильтр (Sendmail + DrWeb + SpamAssassin)

На доскональное знание данной темы, не может претендовать, пожалуй ни один спец, из ныне живущих на земле. ;-)
Так поможем друг другу.

Модераторы: Trinity admin`s, Free-lance moderator`s

Аватара пользователя
setar
Site Admin
Site Admin
Сообщения: 1984
Зарегистрирован: 22 авг 2002, 12:03
Откуда: St. Petersburg

Сообщение setar » 05 фев 2004, 13:41

to netroot1

Похоже sendmail у вас собрался без поддержки miler - смотрите логи конфигурирования и компиляции sendmail.

to Rust

Обучаете ассасина на отсев такого вида спама и всё, в чем вы видите уникальность этих писем ? может я на что нибудь не обратил внимания ??

to jus

какие значения выдаются по --dump magic лучше посмотреть в доках,
я обычно обращаю внимание на количество уже выученых писем spam и ham (не спам) = значения nspam и nham соответственно

Если файлы баз данных баеса присутствуют, значит с правами всё хорошо.

Аватара пользователя
setar
Site Admin
Site Admin
Сообщения: 1984
Зарегистрирован: 22 авг 2002, 12:03
Откуда: St. Petersburg

Сообщение setar » 05 фев 2004, 16:15

jus писал(а):вопрос по веберу, кто как делает?
1. чтобы приходили уведомления о найденом вирусе...
2. вирус просто удаляется без всякого уведомления админа и источника

такой де вопрос по спаму...
У меня стояло полное оповещение и отправителя и админа и получателя, пока не началась эпидемия с MyDoom сейчас стоит оповещение только администратора, но думаю и это отключить.

На спам никаких оповещений кроме стандартного режекта с указанием причины не предусмотрено.

smart
Junior member
Сообщения: 5
Зарегистрирован: 28 янв 2004, 15:20
Откуда: Kiev, Ukraine
Контактная информация:

Сообщение smart » 06 фев 2004, 12:48

Кстати, по поводу MyDoom и пр. вирусов. Задолбали админы, которые настраивают свои антивирусные почтовые фильтры с уведомлением отправителя и получателя. Из-за чего валят эти бесполезные notify. Тот же спам, только в профиль.

Кто чем режет эти бесполезные сообщения?
Я вот собираюсь такие notify скормить spamassassin'у как spam, чтоб он их отлавливал. Однако боюсь, чтоб он вообще не покоцал все, что исходит от MAILER-DAEMON.

jus
Power member
Сообщения: 39
Зарегистрирован: 30 янв 2004, 18:27

Сообщение jus » 09 фев 2004, 13:35

млин, меня тоже достали уведомления о найденом вирусе....

есть вопрос
squid:
можно ли сделать так чтобы скуид вообще напонменял ип адрес клиента на свой?
скуид мне нужен только как кеш - для экономии трафика, а остальное побоку
и ещё если неписать лог access.log, тоесть поставить его в none - ничего страшного не будет? ну я имею ввиду он никак не анализируются самим скуидом?
что посоведуете для защиты скуида?

jus
Power member
Сообщения: 39
Зарегистрирован: 30 янв 2004, 18:27

Сообщение jus » 10 фев 2004, 17:04

Ошибка при загрузке http://www.linuxcenter.ru:


Обнаружена циклическая ссылка в http://www.linuxcenter.ru:8081/

как бороться с такой шнягой - это после установки скуида!
такая же байда и с сайтом ripn.net

люди кто-нить встречался с таким?

jus
Power member
Сообщения: 39
Зарегистрирован: 30 янв 2004, 18:27

Сообщение jus » 11 фев 2004, 12:11

Люди так продолжаться больше не может - у меня почта вылетает через каждые уже 5 часов, ну куда такое годится
не стого ни с чего бах и катятся такие ошибки

eb 9 02:05:28 fox sm-mta[15476]: i18MoSqU015476: 82-133-114-122.dyn.gotadsl.co.uk [82.133.114.122
] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
Feb 9 02:05:29 fox sm-mta[15483]: i18MoTqU015483: Milter (spamassassin): error connecting to filte
r: Connection timed out with /var/run/spamass-milter
Feb 9 02:05:29 fox sm-mta[15483]: i18MoTqU015483: Milter (spamassassin): to error state
Feb 9 02:05:29 fox sm-mta[15483]: i18MoTqU015483: Milter: initialization failed, temp failing comm
ands
Feb 9 02:05:29 fox sm-mta[15483]: i18MoTqU015483: kbbp@[61.144.174.153] did not issue MAIL/EXPN/VR
FY/ETRN during connection to MTA
Feb 9 02:05:30 fox sm-mta[15484]: i18MoUqU015484: Milter (spamassassin): error connecting to filte
r: Connection timed out with /var/run/spamass-milter
Feb 9 02:05:30 fox sm-mta[15484]: i18MoUqU015484: Milter (spamassassin): to error state
Feb 9 02:05:30 fox sm-mta[15484]: i18MoUqU015484: Milter: initialization failed, temp failing comm
ands
Feb 9 02:05:30 fox sm-mta[15484]: i18MoUqU015484: [220.112.114.177] did not issue MAIL/EXPN/VRFY/E
TRN during connection to MTA
Feb 9 02:05:31 fox sm-mta[15482]: i18MoVqU015482: Milter (spamassassin): error connecting to filte
r: Connection timed out with /var/run/spamass-milter


почему выпадает spamass-milter?
блин в сутки уже по три раза почта падает - ну куда такое!
сендмыло 8.12.10

Аватара пользователя
setar
Site Admin
Site Admin
Сообщения: 1984
Зарегистрирован: 22 авг 2002, 12:03
Откуда: St. Petersburg

Сообщение setar » 11 фев 2004, 13:11

to jus
Ну небыло у меня такого, у народ тоже не жаловался.
Единственная правильная мысль - загонять милтер в режим debug,
и там уж по логам смотреть.

jus
Power member
Сообщения: 39
Зарегистрирован: 30 янв 2004, 18:27

Сообщение jus » 11 фев 2004, 14:32

Как это ни у кого не было, мой линух, что самый рыжый?
по этому поводу такая дискуссия идёт
http://savannah.nongnu.org/bugs/?func=d ... em_id=1099

а у тут (с форума) такая фигня только у меня ... :( обидно

Кто-нить ставил http://snert.com/Software/milter-sender/index.shtml
?
наверно мне на ней нужно будет останавливаться

Rust
Junior member
Сообщения: 16
Зарегистрирован: 09 дек 2003, 15:38

Сообщение Rust » 11 фев 2004, 14:35

Была у меня точно такая же фигня.
Какое-то время все нормально работает, потом видимо комп уже не справляется - там на каждое письмо начинает грузится перловский spamassassin (а сам он тормозной блин) - и занимать память - у меня на компе 128Мб всего - видимо потом начинает свопиться все это дело на винт, постепенно все тормозиться до жути, помогает только остановка сендмыла,спамасасина.

Как вариант - использовать spamc/spamd - т.е не перловские модули использовать. Т.е. запускаешь spamd, в /etc/procmailrc пишешь

# SpamAssassin sample procmailrc
#
# Pipe the mail through spamassassin (replace 'spamassassin' with 'spamc'
# if you use the spamc/spamd combination)
#
# The condition line ensures that only messages smaller than 250 kB
# (250 * 1024 = 256000 bytes) are processed by SpamAssassin. Most spam
# isn't bigger than a few k and working with big messages can bring
# SpamAssassin to its knees.
#
# The lock file ensures that only 1 spamassassin invocation happens
# at 1 time, to keep the load down.
#
:0fw: spamassassin.lock
* < 256000
| spamc

# Mails with a score of 15 or higher are almost certainly spam (with 0.05%
# false positives according to rules/STATISTICS.txt). Let's put them in a
# different mbox. (This one is optional.)
:0:
* ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
almost-certainly-spam

# All mail tagged as spam (eg. with a score higher than the set threshold)
# is moved to "probably-spam".
:0:
* ^X-Spam-Status: Yes
probably-spam

# Work around procmail bug: any output on stderr will cause the "F" in "From"
# to be dropped. This will re-add it.
:0
* ^^rom[ ]
{
LOG="*** Dropped F off From_ header! Fixing up. "

:0 fhw
| sed -e '1s/^/F/'
}



Rust
Junior member
Сообщения: 16
Зарегистрирован: 09 дек 2003, 15:38

Сообщение Rust » 11 фев 2004, 14:42

Остановился пока на связке mimedefang+spamassassin+clamav
Счас нарастил памяти со 128 до 512 Мб - все намного шустрее забегало. (Комп - 2 проца по 400 мГЦ, 2 scsi по 8 гиг)
Временные файлы почты обрабатываюся на RAM диске - тоже ускоряется намного.

jus
Power member
Сообщения: 39
Зарегистрирован: 30 янв 2004, 18:27

Сообщение jus » 12 фев 2004, 15:57

мне не помогли к сожалению советы Раста, и поэтому приходится делать пока так
#!/bin/bash

p=`ps -ef | grep spamass-milter | wc -l`
d=`date`
if [ $p -le 3 ]; then
{
echo $d >> /root/bin/smilter.log
killall -9 -v spamass-milter >> /root/bin/smilter.log
killall -v spamd >> /root/bin/smilter.log

/usr/local/sbin/spamass-milter -f -p /var/run/spamass-milter -b spam@serdi.ru >> /root/bin/smilter.log
/usr/bin/spamd -d -u nobody >> /root/bin/smilter.log
echo $p >> /root/bin/smilter.log
/etc/rc.d/rc.sendmail restart >> /root/bin/smilter.log

}
fi
и запускать всё это дело каждые ну хотя бы 10 минут... мля :)
когда выйдет новая версия милтера для спамаасигна, никто не вкурсе? :) Может поправят баг с выделением памяти :(


Раст, можешь рассказать о
"Временные файлы почты обрабатываются на РАМ диске"
или ссылку дай по этому поводу

Rust
Junior member
Сообщения: 16
Зарегистрирован: 09 дек 2003, 15:38

Сообщение Rust » 12 фев 2004, 16:33

Нда - это изврат :(

/etc/procmailrc не пробовал как я сказал сделать? У меня нормально стало работать.



Ну тогда как у меня счас сделано:

Сначала компилишь ядро с поддержкой RAM disk - ставишь туда число нужное (по умолчанию 4 метра всего)

Потом

# create a filesystem:
mke2fs /dev/ram0
# mount the ramdisk:
mount /dev/ram0 /var/spool/MIMEDefang
chown defang.defang /var/spool/MIMEDefang
#antivir
/etc/rc.d/init.d/clamd start
#mimedefang
/etc/rc.d/init.d/mimedefang start
/etc/rc.d/init.d/sendmail start

Настроки антивируса /etc/clamav.conf- использую clamav так как бесплатный (drweb без ключа не сканирует архивы)
LogFile /home/clamav/clamd.log
LogFileMaxSize 1M

# Log time with an each message.
LogTime
# Use system logger (can work together with LogFile).
#LogSyslog
# Enable verbose logging.
LogVerbose
# This option allows you to save the process identifier of the listening
# daemon (main thread).
PidFile /home/clamav/clamd.pid
# Path to a directory containing .db files.
# Default is the hardcoded directory (mostly /usr/local/share/clamav,
# it depends on installation options).
DataDirectory /home/clamav

# The daemon works in local or network mode. Currently the local mode is
# recommended for security reasons.

# Path to the local socket. The daemon doesn't change the mode of the
# created file (portability reasons). You may want to create it in a directory
# which is only accessible for a user running daemon.
LocalSocket /var/spool/MIMEDefang/clamd.sock

# Remove stale socket after unclean shutdown.
#FixStaleSocket

# TCP port address.
#TCPSocket 3310

# TCP address.
# By default we bind to INADDR_ANY, probably not wise.
# Enable the following to provide some degree of protection
# from the outside world.
#TCPAddr 127.0.0.1

# Maximum length the queue of pending connections may grow to.
# Default is 15.
MaxConnectionQueueLength 15

# When activated, input stream (see STREAM command) will be saved to disk before
# scanning - this allows scanning within archives.
StreamSaveToDisk

# Close the connection if this limit is exceeded.
#StreamMaxLength 10M

# Maximal number of a threads running at the same time.
# Default is 5, and it should be sufficient for a typical workstation.
# You may need to increase threads number for a server machine.
MaxThreads 5

# Thread (scanner - single task) will be stopped after this time (seconds).
# Default is 180. Value of 0 disables the timeout. SECURITY HINT: Increase the
# timeout instead of disabling it.
ThreadTimeout 180

# Maximal depth the directories are scanned at.
MaxDirectoryRecursion 15

# Follow a directory symlinks.
# SECURITY HINT: You should have enabled directory recursion limit to
# avoid potential problems.
#FollowDirectorySymlinks

# Follow regular file symlinks.
#FollowFileSymlinks

# Do internal checks (eg. check the integrity of the database structures)
# By default clamd checks itself every 3600 seconds (1 hour).
#SelfCheck 600

# Execute a command when virus is found. In the command string %v and %f will
# be replaced by the virus name and the infected file name respectively.
#
# SECURITY WARNING: Make sure the virus event command cannot be exploited,
# eg. by using some special file name when %f is used.
# Always use a full path to the command.
# Never delete/move files with this directive !
#VirusEvent /usr/local/bin/send_sms 123456789 "VIRUS ALERT: %f: %v"

# Run as selected user (clamd must be started by root).
# By default it doesn't drop privileges.
User defang
# Initialize the supplementary group access (for all groups in /etc/group
# user is added in. clamd must be started by root).
#AllowSupplementaryGroups

# Don't fork into background. Useful in debugging.
#Foreground

# Enable debug messages in libclamav.
#Debug

##
## Mail support
##

# Uncomment this option if you are planning to scan mail files.
ScanMail

##
## Archive support
##


# Comment this line to disable scanning of the archives.
ScanArchive


# By default the built-in RAR unpacker is disabled by default because the code
# terribly leaks, however it's probably a good idea to enable it.
#
ScanRAR


# Options below protect your system against Denial of Service attacks
# with archive bombs.

# Files in archives larger than this limit won't be scanned.
# Value of 0 disables the limit.
# WARNING: Due to the unrarlib implementation, whole files (one by one) in RAR
# archives are decompressed to the memory. That's why never disable
# this limit (but you may increase it of course!)
ArchiveMaxFileSize 10M

# Archives are scanned recursively - e.g. if Zip archive contains RAR file,
# the RAR file will be decompressed, too (but only if recursion limit is set
# at least to 1). With this option you may set the recursion level.
# Value of 0 disables the limit.
ArchiveMaxRecursion 5

# Number of files to be scanned within archive.
# Value of 0 disables the limit.
ArchiveMaxFiles 1000

# Use slower decompression algorithm which uses less memory. This option
# affects bzip2 decompressor only.
#ArchiveLimitMemoryUsage

##
## Clamuko settings
## WARNING: This is experimental software. It is very likely it will hang
## up your system !!!
##

# Enable Clamuko. Dazuko (/dev/dazuko) must be configured and running.
#ClamukoScanOnLine

# Set access mask for Clamuko.
ClamukoScanOnOpen
ClamukoScanOnClose
ClamukoScanOnExec

# Set the include paths (all files in them will be scanned). You can have
# multiple ClamukoIncludePath options, but each directory must be added
# in a seperate option. All subdirectories are scanned, too.
ClamukoIncludePath /home
#ClamukoIncludePath /students

# Set the exclude paths. All subdirectories are also excluded.
#ClamukoExcludePath /home/guru

# Limit the file size to be scanned (probably you don't want to scan your movie
# files ;))
# Value of 0 disables the limit. 1 Mb should be fine.
ClamukoMaxFileSize 1M

# Enable archive support. It uses the limits from clamd section.
# (This option doesn't depend on ScanArchive, you can have archive support
# in clamd disabled).
ClamukoScanArchive
Настройки обновления базы
/etc/freshclam.conf

# Path to the database directory.
DatabaseDirectory /home/clamav

UpdateLogFile /home/clamav/freshclam.log

# Enable verbose logging.
#LogVerbose

# Freshclam must be able to write to the database directory.
#DatabaseOwner clamav
DatabaseOwner defang

DatabaseMirror database.clamav.net
MaxAttempts 3

#Checks 8

#HTTPProxyServer myproxy.com
#HTTPProxyPort 1234
#HTTPProxyUsername myusername
#HTTPProxyPassword mypass

#NotifyClamd [/optional/config/file/path]

#OnUpdateExecute command

#OnErrorExecute command
sendmail.cf


define(`confMAX_DAEMON_CHILDREN', `20')dnl
define(`confCONNECTION_RATE_THROTTLE',`15')dnl

define(`confSMTP_LOGIN_MSG',$j MTA $b)dnl
dnl this will wait 2 minutes for a command from the other mailer.
dnl this will timeout on mailers that are parasiting on my mailer.
dnl this has never caused problems on mail delivery, it just removes troublesome
dnl mailers (spammers that won't resolve ip or similar.)

dnl just doubled them to fix unexpected close on connectiosn problems see rcs for diff.
dnl TIMEOUTS (MANY OF THESE)...
define(`confTO_INITIAL', `30s')
define(`confTO_CONNECT', `30s')
define(`confTO_ICONNECT', `45s')
define(`confTO_HELO', `1m')
define(`confTO_MAIL', `1m')
define(`confTO_RCPT', `1m')
define(`confTO_DATAINIT', `1m')
define(`confTO_DATABLOCK', `1m')
define(`confTO_DATAFINAL', `3m')
define(`confTO_RESET', `1m')
define(`confTO_QUIT', `1m')
define(`confTO_MISC', `1m')
define(`confTO_COMMAND', `1m')
dnl define(`confTO_IDENT', `1m')
dnl define(`confTO_IDENT', `1s')
define(`confTO_FILEOPEN', `1m')
define(`confTO_CONTROL', `1m')
define(`confTO_HOSTSTATUS', `3m')


define(`confMAX_HEADERS_LENGTH',16384)
define(`confMAX_MIME_HEADER_LENGTH', `256/128')
define(`confNO_RCPT_ACTION', `add-to-undisclosed')
dnl don't allow spam as big rcpts list, no more than 25 recepients
define(`confMAX_RCPTS_PER_MESSAGE', `25')
dnl don't allow vrfy,etrn,expn
dnl nobodyreturn - use it for unwant full body-letter from error/bonuce mail
define(`confPRIVACY_FLAGS', `authwarnings,noexpn,novrfy,noetrn,nobodyreturn,goaway')


FEATURE(`use_cw_file')dnl
FEATURE(`local_procmail')dnl


EXPOSED_USER(`root')dnl


dnl# &#226;&#241;&#255;&#234;&#232;&#229; &#238;&#239;&#246;&#232;&#232;
dnl# define(`',`')dnl
define(`confRUN_AS_USER',`root')dnl
define(`confTRUSTED_USERS',`drweb,spam')dnl

define(`ALIAS_FILE', `/etc/mail/aliases')dnl
define(`LOCAL_MAILER_CHARSET', `windows-1251')dnl

define(`confDOMAIN_NAME',`gate.vostok.ru')dnl
define(`confEIGHT_BIT_HANDLING',`pass8')dnl
define(`confMAX_MESSAGE_SIZE',`5000000')dnl
define(`confDONT_EXPAND_CNAMES')dnl
define(`confLOG_LEVEL',`6')
define(`confNO_RCPT_ACTION',`add-to-undisclosed')dnl
define(`confCOPY_ERRORS_TO',`postmaster')dnl
define(`confUSE_ERRORS_TO',`postmaster')dnl
define(`confDONT_PROBE_INTERFACES',true)dnl
define(`confALIAS_WAIT',`10s')dnl
define(`confDEF_CHAR_SET', `windows-1251')dnl



dnl# FEATURE(`dnsbl', `relays.ordb.org', `Spam bloked - see http://ordb.org/')dnl
dnl# FEATURE(`dnsbl', `bl.spamcop.net', `Spam bloked see: http://spamcop.net/bl.shtml?$&{client_addr}')
dnl# FEATURE(`dnsbl', `ex.dnsbl.org', `Spam bloked - see http://www.dnsbl.org/')


define(`confMILTER_MACROS_CONNECT',`b, j, _, {daemon_name}, {if_name}, {if_addr}')dnl
define(`confMILTER_LOG_LEVEL',`6')

dnl# &#244;&#232;&#247;&#232;
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
FEATURE(`access_db',`hash -o -T<TMPF> /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(`nouucp',`reject')dnl
FEATURE(`delay_checks')dnl
FEATURE(`relay_hosts_only')dnl
FEATURE(`relay_based_on_MX')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl


MAILER(`local')dnl
MAILER(`smtp')dnl
MAILER(`procmail')dnl



INPUT_MAIL_FILTER(`mimedefang', `S=unix:/var/spool/MIMEDefang/mimedefang.sock, F=T, T=C:15m;S:4m;R:4m;E:10m')


Ставим mimedefang - он будет создавать временные файлы на RAM диске. Можно указать ему сколько процессов spamassain запускать одновременно- я указал два - мне хватает

Аватара пользователя
setar
Site Admin
Site Admin
Сообщения: 1984
Зарегистрирован: 22 авг 2002, 12:03
Откуда: St. Petersburg

Сообщение setar » 13 фев 2004, 11:13

to jus
Слушай, если пошли траблы с милтером,
то может альтернативный использовать ?
ведь на сайте ассасина есь много вариантов под sendmail (и не только).

посмотрите здесь представлено 4 милтера под sendmail
http://www.spamassassin.org/where.html

jus
Power member
Сообщения: 39
Зарегистрирован: 30 янв 2004, 18:27

Сообщение jus » 13 фев 2004, 11:58

Огромное Спасибо Расту за подробное описание, остановлюсь на мимедефанге... и clamav

Спасибо Сетару за ссылку по милтерам

diomkin
Junior member
Сообщения: 1
Зарегистрирован: 15 фев 2004, 13:48

Сообщение diomkin » 15 фев 2004, 13:55

Самое главное, у меня три последних дня такая же проблема. Две недели после установки и обучения spamassassin работал нормально, никаких сбоев. Но два дня назад вдруг ночью в два часа spamass-milter стал зависать:

Код: Выделить всё

Feb 15 10:48:39 polpred sendmail[13927]: i1F7XdJn013927: Milter (spamassassin): error connecting to filter: Connection timed out with /var/r
un/spamass-milter
Feb 15 10:48:39 polpred sendmail[13927]: i1F7XdJn013927: Milter (spamassassin): to error state
Feb 15 10:48:39 polpred sendmail[13927]: i1F7XdJn013927: Milter: initialization failed, temp failing commands
Feb 15 10:48:39 polpred sendmail[13927]: i1F7XdJn013927: [218.242.104.167] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
С тех пор такое повторяется каждый день (вернее ночь).
В настройках я ничего не менял. Единственное подозрение - у меня включен autolearn - и база bayes уже около 7 мб, может быть это замедляет работу системы и приводит к зависанию мильтера?

Параметры сервера: PIII 800 Mhz, 512 Mb, Red Hat

Ответить

Вернуться в «Серверы - ПО, Unix подобные системы»