Связка 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)dnl
Необходимо очень внимательно заполнять этот файл. Этот файл пишеться с помощью языка 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
|