PDF Печать E-mail
(1 Проголосовало)
03.06.2010 16:41

Связка sendmail+ clamav+ sarg+ spamassassin

В этой статье я расскажу как настроить связку  sendmail+clamav+sarg+spamassassin на ASPlinux. Для чего нужна  такая комбинация!? Прежде всего для поднятия у себя почтового сервера ( sendmail )  с антивирусной защитой ( clamav ), антиспамом ( spamassassin ) и подстчетом трафика ( sarg )

sendmail

Устанавливаем sendmail (например командой # yum install sendmail или используя др варианты)
Итак...смотрим каталог /usr/share/sendmail-cf/cf
там создаем файл my.mc : # touch /usr/share/sendmail-cf/cf/my.mc
вписываем  в него строки

include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`My personal cf')dnl
OSTYPE(`linux')dnl
FEATURE(use_cw_file)dnl
FEATURE(`access_db',`hash -T<TMPF> /etc/mail/access.db')dnl
MAILER(smtp)dnl
MAILER(local)dn
l

Необходимо очень внимательно заполнять этот файл. Этот файл пишеться с помощью языка m4, который отличается своеобразным синтаксисом. В нем отличаються открывающиеся и закрывающиеся кавычки. Соответственно
«`» и  «’»  В качестве признака конца строки используется макрос dnl (то есть после него можно ставить любые комментарии ).

mc необходимо переместить  в каталог /usr/share/sendmail-cf/cf
так - теперь даем  команду # m4 my.mc > /etc/mail/sendmail.cf, находясь в том каталоге, где лежит файл my.mc  

Если после выполнение команды небыло никаких сообщений то это значит что ошибок нет-это очень хорошо   


в файл /etc/mail/local-host-names добавляем имя своего домена и имя машины по одному в каждую строку.
Далее добавляем в файл /etc/mail/access строку
твой_IP_адресс RELAY например: 192.168.0.85    RELAY (открываем доступ к серверу с нашего ip)
192.168.0.0/255.255.255.0  RELAY
Переходим в каталог /etc/mail
Если там нет файла access.db  создаем его  # touch access.db  

потом даем командку # makemap hash access < access
эту команду делаем после каждого изменения файла access

Перезагружаем sendmail: # service sendmail restart

Теперь даем команду  # ps aux | grep sendmail
в выводе команды должно быть ДВА процесса sendmail!!
и надпись ACCEPTING CONNECTION


смотрим логии на предмет ошибок /var/log/maillog
Приступаем к проверке сервака. отправляем письмо на какой-нибудь  свой внешний адрес - например на  mail.ru/
Письмо дошло, поздравляю! :-)
у других людей на это годы уходят....чтоб такое сделать под UNIX :-)
СЕРВЕР ГОТОВ! Теперь ты можешь отправлять письма.
Но, sendmail это ТРАНСПОРТНЫЙ агент...а не агент доставки... и поэтому ты не сможешь получать письма. А только отправлять…
Выход: надо установить агента доставки и настроить его...тогда и сможем получать. Ставим dovecot  -э то и есть то, что нам надо(он и будет нам все отдавать и по pop3 и по imap )

Устанавливаем dovecot (или с диска или через команду yum install dovecot)
открываем файл /etc/dovecot.conf
конфигурируем этот файл для наших нужд (смотри доп. литературу).
Перезагружаем # service dovecot restart
Все должно работать!


Фалы специального назначения aliases, access и relay-domains

В файле  /etc/aliases  пишем…
Сразу под строкой  postmaster: root
root: main@имя_твоего _почтового_домена
потом даем команду   # newaliases
систкма должна дать ответ что то вроде /etc/aliases: 79 aliases,...
теперь ты всю СИСТЕМНУЮ ПОЧТУ для ROOT будешь получать на свою почту


обеспечиваем безопасность почтового сервера


ограничение на размер сообщения../etc/mail/sendmail.cf    опция maximum message size
например MaxMessageSize=1000000   это 1 МЕГАБАЙТ будет
3м - 3000000


НЕЛЬЗЯ!!! читать логи и почту под root
потому, что если тебе на имя root пришлют почту (хакер) а
там будет скрипт и ты его под root "прочтешь" то он запустится и сделает в системе то, чтьо нужно хакеру...  ))))))))
а что бы читать почту посланную root делаем запись в файле /etc/aliases



в файле /var/log/maillog   ищем в mc по клавише F3  слова  Relay denied   или reject
это нас  атакуют...там же и их адреса будут
эти адреса или в файере закрываем,  или добавляем в файл /etc/host.deny


в файле /var/log/wtmp вся инфа о  том кто и когда и сколько был в ситеме....если кто проник - там будет.
Увидеть это можно по команде  # last -30   те за 30 дней последних
last -20   за 20 дней...
(присто заходим в директорию /var/log и выполник команду в кс. эта команда выводит содержимое  файла /var/log/wtmp)



файл /etc/mail/access
там если кто лезет и пытается тебя релеить - пишем например   83.239.7.5 REJECT
(REJECT  отброс БЕЗ сообщения)
DISCARD   отброс с уведомлением
RELAY - разрешаешь релеить(те слать через твой почтокик на другие почтовики письма - то, что делают хакеры.
или нормальные люди, если пользуются твоим серверром
например - работники твоей фирмы)

вопрос: мы поставили ограничение на вх почту а ограничение колличество одновременных подключений?
ответ:да - для ограничения процессов (те на прием и передачу) в файле my.mc надо задать опцию MAX_DAEMON_CHILDREN
и перегенерировать файл sendmail.cf (# m4 my.mc > /etc/mail/sendmail.cf)
Дописываем в наш файл строку
define(`confMAX_DAEMON_CHILDREN',`150')dnl



Переходим к антивирусу clamav

_____________________________________________________________
______________порядок действий______________________________
-____________________________________________________________
zlib    sendmail-devel     clamav-server из каталога  /usr/src/asplinux/........clamav.....rpm   clamav-milter.rpm      



прикручиваем файл my.mc
ставим файл clamav.....src.rpm
теперь1 - смотрим каталог /usr/src/asplinux/specs
# rpmbuild -bb clamav.spec
там зависимости не верные  требует файлы.. установить?
и переходим в /usr/src/asplinux/RPMS/i386
# yum install zlib-devel (или устанавливаем с пакетов что у нас есть)
# yum install sendmail-devel

проверяем
# rpmbuild -bb clamav.spec
проверяет...
снова идем
идем в /usr/src/asplinux/RPMS/i386
там должно быть 6 файлов clamav-****
ставим calamav-server
отом ставь clamav-milter
rpm - ivh  calamav-server-*
rpm - ivh  clamav-milter-*



нам надо что бы стояли два сервиса
clamav-server
clamav-milter
yum info clamav-server
yum info clamav-milter
после их установки прикручиваем файл my.mc
далее
service clamd start
service clamav-milter start


далее посмотрим
сделай # ps aux | grep clamd

clamav   16807  0.0  3.8 22492 19216 ?       S    15:09   0:00 /usr/sbin/clamd
root     16935  0.0  0.1  5308  680 pts/0    R    15:12   0:00 grep clamd



#ps aux | grep clamav-milter

clamav   16765  0.0  0.2 26640 1384 ?        S    15:08   0:00 /usr/sbin/clamav-milter --quiet --external --dont-wait --force-scan --dont-log-clean --server=localhost --pidfile=/var/run/clamav/clamav-milter.pid local:/var/run/clamav/clamav-milter.sock
root     16937  0.0  0.1  5164  680 pts/0    R    15:12   0:00 grep clamav-milter



далее делаем freshclam

теперь отсылаем письмо с вирусом. самому себе результат должен быть примерно таким:
Произошла неопознаная ошибка Тема '...........' УЧЕТная запись : '192.168.0.222 '
сервер: '192.168.0.222 ', протокол: SMTP ОТВЕТ СЕРВЕРА '554 4.7.1 VIRUS Eicar-Test.......'
detected by clamav- http://www.clamav.net

sarg

устанавливаем sarg и web сервер
исправляем в httpd.conf следующие строки

Listen 192.168.0.221:80  # ip компа
DocumentRoot "/var/www/html"

переходим к sarg.conf
ты должен там расскомментировать(или добавить руками) опции
output_dir /var/www/html/squid-reports
access_log /var/log/squid/access.log
date_format e

остальное тебе настраивай по вкусу

далее давем команду
#/usr/sbin/squid -k rotate
# /usr/bin/sarg

набираем в браузере
http://ip/squid-reports/
и смотрим отчеты!
чтоп ты лопнул ))

spamassassin

INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')
define(`confINPUT_MAIL_FILTERS', `spamassassin,clamav')dnl
MAILER(procmail)dnl #должна быть перед local и smtp
MAILER(local)
MAILER(smtp)


ставим Spamassasin

КОНФИГУРАЦИЯ

Spamassasin

после установки у нас появился в папке /etc/mail/spamassassin/local.cf
Инфы по этой конфигурации много вот мой пример который я нашел

trusted_networks 192.168.1. 192.168.2.
trusted_networks 127.
whitelist_from localhost
rewrite_header Subject ****SPAM*(_SCORE_)****
subject_tag             *SPAM*_HITS_ points*
required_hits           3.0
report_safe             0
auto_learn              0
bayes
use_bayes               1
bayes_path                      /etc/mail/spam/bayes
bayes_file_mode         0660
use_razor2              0
use_dcc                 0
use_pyzor               0
dns_available           no
skip_rbl_checks         0
use_auto_whitelist      0
auto_whitelist_path             /etc/mail/spam/auto_whitelist
allow_user_rules        0
rewrite_subject         1

# whitelist/blacklist addresses
whitelist_from  *...(0)list.ru

whitelist_from  *...(0)subscribe.ru

blacklist_from  *...(0)lists.amazingdailydeals.com
blacklist_from  *...(0)rapiddealfinder.com

# scores

score SUBJ_FULL_OF8BITS                 0.1
score IN_REP_TO                                 -0.1
score HTML_WITH_BGCOLOR                 3.6
score CTYPE_JUST_HTML                   3.9
score BIG_FONT                                  2.7
score MONEY_MAKING                              2.0
score WEB_BUGS                                  0.2
score MAILTO_LINK                               1.3
score MAILTO_WITH_SUBJ                  1.6
score MAILTO_WITH_SUBJ_REMOVE   2.2
score MAILTO_TO_SPAM_ADDR               2.0
score PORN_1                                    1.353
score PORN_10                                   0.266
score PORN_11                                   0.879
score PORN_12                                   0.826
score PORN_13                                   4.194
score PORN_3                                    0.805
score PORN_4                                    1.491
score PORN_6                                    3.319
score PORN_7                                    1.514
score PORN_8                                    0.2
score PORN_9                                    2.692
score INVALID_DATE_ODD_MONTH    1.9
score CHARSET_FARAWAY                   2.0
score CHARSET_FARAWAY_HEADERS   1.8
score CHARSET_FARAWAY_BODY              1.9
score SUBJ_HAS_UNIQ_ID                  2.5
score SUBJ_ENDS_IN_Q_MARK               0.2
score SUBJ_HAS_Q_MARK                   0.5
score SUPERLONG_LINE                    0.9
score LINES_OF_YELLING                  0.5
score LINES_OF_YELLING_2                0.7
score LINES_OF_YELLING_3                0.8
score NO_REAL_NAME                              0.9
score TO_LOCALPART_EQ_REAL              0.8
score FROM_ENDS_IN_NUMS                 1.0
score FROM_HAS_MIXED_NUMS               2.3
score SUBJ_ALL_CAPS                             0.5



после чего запускаем spamas-milter.sh и sa-spamd.sh



 

Добавить комментарий


Защитный код
Обновить