Счетчик

Поисковый анализ сайта
яндекс.ћетрика
Cервер и сайт запущен 2011.02.01 на Debian

Добрый день!
В прошлой статье я писал как установить почтовый сервер в связке postfix, mysql, dovecot.

Сегодня я расскажу как установить антиспам spamassassin и антивирус clamav.

Нам понадобятся доп пакеты так что ставим все что я указал.

# apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 libnet-ph-perl

libnet-snpp-perl libnet-telnet-perl nomarch lzop



Открываем на редактирование /etc/amavis/conf.d/15-content_filter_mode
Приводим его к такому виду:

use strict;

# You can modify this file to re-enable SPAM checking through spamassassin
# and to re-enable antivirus checking.
#
# Default antivirus checking mode
# Uncomment the two lines below to enable it back
#
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
#
# Default SPAM checking mode
# Uncomment the two lines below to enable it back
#
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
1; # insure a defined return



Далее редактируем /etc/amavis/conf.d/20-debian_defaults:

$QUARANTINEDIR = "$MYHOME/virusmails";

$log_recip_templ = undef; # disable by-recipient level-0 log entries
$DO_SYSLOG = 1; # log via syslogd (preferred)
$syslog_ident = 'amavis'; # syslog ident tag, prepended to all messages
$syslog_facility = 'mail';
$syslog_priority = 'debug'; # switch to info to drop debug output, etc
$enable_db = 1; # enable use of BerkeleyDB/libdb (SNMP and nanny)
$enable_global_cache = 1; # enable use of libdb-based cache if $enable_db=1
$inet_socket_port = 10024; # default listenting socket
$sa_spam_subject_tag = '***SPAM*** ';
$sa_tag_level_deflt = 2.0; # add spam info headers if at, or above that level
$sa_tag2_level_deflt = 6.31; # add 'spam detected' headers at that level
$sa_kill_level_deflt = 6.31; # triggers spam evasive actions
$sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent
$sa_mail_body_size_limit = 200*1024; # don't waste time on SA if mail is larger
$sa_local_tests_only = 0; # only tests which do not require internet access?
.......
$final_virus_destiny = D_DISCARD; # (data not lost, see virus quarantine)
$final_banned_destiny = D_BOUNCE; # D_REJECT when front-end MTA
$final_spam_destiny = D_BOUNCE;
$final_bad_header_destiny = D_PASS; # False-positive prone (for spam)
.......



Добавим пользователя clamav в группу amavis и перезапустим amavisd-new и ClamAV

# adduser clamav amavis

# /etc/init.d/amavis restart
# /etc/init.d/clamav-daemon restart



/etc/clamav/freshclam.conf посмотрите присутствует строка?

.....

NotifyClamd /etc/clamav/clamd.conf
.....



# /etc/init.d/clamav-freshclam restart



/etc/postfix/main.cf добавим следующие строки:

content_filter = amavis:[127.0.0.1]:10024

receive_override_options = no_address_mappings



В файл /etc/postfix/master.cf добавьте следующее:

amavis unix - - - - 2 smtp

         -o smtp_data_done_timeout=1200
         -o smtp_send_xforward_command=yes



Не забываем ставить 2 пробела перед -o-

127.0.0.1:10025 inet n - - - - smtpd

         -o content_filter=
         -o local_recipient_maps=
         -o relay_recipient_maps=
         -o smtpd_restriction_classes=
         -o smtpd_client_restrictions=
         -o smtpd_helo_restrictions=
         -o smtpd_sender_restrictions=
         -o smtpd_recipient_restrictions=permit_mynetworks,reject
         -o mynetworks=127.0.0.0/8
         -o strict_rfc821_envelopes=yes
         -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
         -o smtpd_bind_address=127.0.0.1


/etc/init.d/postfix restart 
Выполник команду и посмотрим что у нас происходит

# netstat -tap


Если увидили

~#  netstat -tap

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 chat.domain.ru:10024    *:*                     LISTEN      8244/amavisd (maste
tcp        0      0 chat.domain.ru:10025    *:*                     LISTEN      9439/master


То значит все ОК.

Установка Razor, Pyzor And DCC и настройка SpamAssassin

Razor, Pyzor и DCC это спам фильтры, которые используются совместно для фильтрации в сети. Установим Razor и Pyzor

aptitude install razor pyzor



DCC не содержится в репозитории Ubuntu & Debian, поэтому мы его установим так:
для x86

cd /tmp

wget http://www.sysadmin-komi.ru/images/download/spamassassin/dcc-server_1.3.42-5_i386.deb
wget http://www.sysadmin-komi.ru/images/download/spamassassin/dcc-common_1.3.42-5_i386.deb


для x64

wget http://www.sysadmin-komi.ru/images/download/spamassassin/dcc-server_1.3.42-4build1_amd64.deb

wget http://www.sysadmin-komi.ru/images/download/spamassassin/dcc-common_1.3.42-4build1_amd64.deb


Качайте для свей архитектуры

dpkg -i dcc-common_1.3.42-5_i386.deb

dpkg -i dcc-server_1.3.42-5_i386.deb


или

dkpg -i dcc-common_1.3.42-4build1_amd64.deb

dpkg -i dcc-server_1.3.42-4build1_amd64.deb



Скажем SpamAssassin использовать эти три программы. Отредактируем /etc/spamassassin/local.cf добавив несколько строчек в него:
nano /etc/spamassassin/local.cf

[...]

#dcc
use_dcc 1
dcc_path /usr/bin/dccproc



#pyzor

use_pyzor 1
pyzor_path /usr/bin/pyzor

#razor
use_razor2 1
razor_config /etc/razor/razor-agent.conf



#bayes

use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1



Мы должны включить плагин DCC в SpamAssassin. Откроем /etc/spamassassin/v310.pre и раскомментируем такую строчку loadplugin Mail::SpamAssassin::Plugin::DCC :

nano /etc/spamassassin/v310.pre



[...]

# DCC - perform DCC message checks.
#
# DCC is disabled here because it is not open source.  See the DCC
# license for more details. 
#
loadplugin Mail::SpamAssassin::Plugin::DCC
[...]



Можно проверить настройки SpamAssassin выполнив:

spamassassin --lint



Вывод не должен содержать никаких ошибок.
Перезапускаем amavisd-new:

/etc/init.d/amavis restart



Обновим набор правил для SpamAssassin следующим образом:

sa-update --no-gpg



Добавим в cron задание, чтобы набор правил обновлялся регулярно. Запустим

crontab -e



чтобы открыть редактор cron и добавим в него следующее задание:

23 4 */2 * * /usr/bin/sa-update --no-gpg &> /dev/null



Это позволит обновлять набор правил каждый 2 день в 4 часа 23 минуты.

Все, пользуемся.

Предупреждения при превышении квоты

Для того чтобы получать сообщения об превышении квоты почтовых ящиков пользователей сделаем так:

cd /usr/local/sbin/

wget http://www.sysadmin-komi.ru/download/spamassassin/Quota.txt
mv Quota.txt quota_notify
chmod 755 quota_notify



Откроем для редактирования файл /usr/local/sbin/quota_notify отредактируем переменные сверху. В конце файла находятся две строчки где вы должны добавить % для подписи:

nano /usr/local/sbin/quota_notify



[...]

my $POSTFIX_CF = "/etc/postfix/main.cf";
my $MAILPROG = "/usr/sbin/sendmail -t";
my $WARNPERCENT = 80;
my @POSTMASTERS = (Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.');
my $CONAME = 'My Company';
my $COADDR = Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.';
my $SUADDR = Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.';
my $MAIL_REPORT = 1;
my $MAIL_WARNING = 1;
[...]
           print "Subject: WARNING: Your mailbox is $lusers{$luser}% full.\n";
[...]
           print "Your mailbox: $luser is $lusers{$luser}% full.\n\n";
[...]



Запустим

crontab -e



чтоб задать задание cron на выполнения скрипта

0 0 * * * /usr/local/sbin/quota_notify &> /dev/null



Все пользуемся!

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


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