Главная страница
Навигация по странице:

  • X-Spam-Report: * 1.4 MSGID_MULTIPLE_AT Message-ID contains multiple @ characters * 0.0 HTML_MESSAGE BODY: HTML included in message

  • 4 Краткий отчет о практике (приложение 1). Строки с таким выделением


    Скачать 0.62 Mb.
    НазваниеСтроки с таким выделением
    Дата22.11.2021
    Размер0.62 Mb.
    Формат файлаdoc
    Имя файла4 Краткий отчет о практике (приложение 1).doc
    ТипДокументы
    #278494
    страница7 из 15
    1   2   3   4   5   6   7   8   9   10   ...   15

    Установка amavisd-new, SpamAssassin и ClamAV


    Для установки amavisd-new, spamassassin и clamav, выполним следующую команду:

    sudo apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop pax

    Включим ClamAV и SpamAssassin отредактировав /etc/amavis/conf.d/15-content_filter_mode

    sudo nano /etc/amavis/conf.d/15-content_filter_mode

    Раскомментируем

    @bypass_virus_checks_maps = (

    \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

    и

    @bypass_spam_checks_maps = (

    \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

    Отредактируем /etc/amavis/conf.d/50-user

    sudo nano /etc/amavis/conf.d/50-user

    Добавим посередке параметр

    $pax='pax';

    и

    @lookup_sql_dsn = (['DBI:mysql:mail; host=127.0.0.1; port=3306', 'mail_admin' ,'']);

    $sql_select_policy = 'SELECT "Y" as local FROM domains WHERE CONCAT("@",domain) IN (%k)';

    (нам нужно указать amavis, что виртуальные домены являются локальными. Иначе он не будет вставлять заголовки и проверять на спам, т.к. будет считать, что письма, посланные на виртуальные домены — исходящие) .

    Не забудьте подставить свой пароль пользователя mysql mail_admin.

    Откроем файл /etc/amavis/conf.d/20-debian_defaults

    sudo nano /etc/amavis/conf.d/20-debian_defaults

    Дальше — список параметров, которые используются у меня с кратким пояснением, зачем и почему.

    $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

    $spam_check_negative_ttl = 30*60;

    $spam_check_positive_ttl = 30*60;

    Это позволяет держать небольшой кеш уже проверенных писем и не проверять точно такие же письма заново, если они уже есть в кеше. Проверка идет по сигнатуре, которую amavis генерирует сам. Полезно, когда, в частности, один и тот же спам валится на несколько адресов. ttl-параметры - это срок жизни сигнатуры в кеше (с положительным и отрицательным результатом проверки на спам). В моем случае, процент попадания в кеш порядка 8.

    $sa_spam_subject_tag = '***SPAM*** ';

    $sa_spam_report_header = 1;

    $sa_tag_level_deflt = undef; # add spam info headers if at, or above that level

    $sa_tag2_level_deflt = 4.5; # add 'spam detected' headers at that level

    $sa_kill_level_deflt = 6.9; # triggers spam evasive actions

    $sa_dsn_cutoff_level = 6.9; # spam level beyond which a DSN is not sent

    $sa_quarantine_cutoff_level = 11.9;

    $sa_spam_subject_tag - добавление указанной строки в начало темы письма. Удобно для получателей.

    $sa_spam_report_header - добавление заголовков с подробным отчетом о результатах проверки. Учтите только, что эти заголовки будут вставлены только в письма, признанные спамом. Подробный отчет - это объяснения каждого сработавшего правила spamassassin, типа вот такого:

    X-Spam-Report:
    * 1.4 MSGID_MULTIPLE_AT Message-ID contains multiple '@' characters
    * 0.0 HTML_MESSAGE BODY: HTML included in message
    * 0.0 BAYES_50 BODY: Bayesian spam probability is 40 to 60%
    * [score: 0.5000]
    * 1.8 MIME_BASE64_TEXT RAW: Message text disguised using base64 encoding
    * 1.3 AWL AWL: From: address is in the auto white-list

    $sa_tag_level_deflt - добавлять заголовки с результатом проверки на спам в сообщения с указанной оценкой и выше. Здесь - всегда добавлять эти заголовки. Заголовки вот такие:

    Х-Spam-Flag: YES
    X-Spam-Score: 4.54
    X-Spam-Level:
    X-Spam-Status: Yes, score=4.54 required=4.5 tests=[AWL=1.336, BAYES_50=0.001,
    HTML_MESSAGE=0.001, MIME_BASE64_TEXT=1.753, MSGID_MULTIPLE_AT=1.449]

    если опознан спам и

    X-Spam-Flag: NO
    X-Spam-Score: -0.708
    X-Spam-Level:
    X-Spam-Status: No, score=-0.708 required=4.5 tests=[AWL=0.403, BAYES_05=-1.11,
    SPF_PASS=-0.001]

    если сообщение «чистое». Еще раз подчеркну, что в этом случае заголовка «X-Spam-Report:» не будет. Если нужен - нужно править сам amavis.

    $sa_tag2_level_deflt - уровень, начиная с которого сообщение признается спамом.

    $sa_kill_level_deflt - уровень, начиная с которого выполняется правило по обработке спама (описание ниже)

    $sa_dsn_cutoff_level - уровень, начиная с которого не отсылается сообщение о невозможности доставки. Очень советую его иметь равным $sa_kill_level_deflt, иначе Вас, скорее всего, внесут в какой-нибудь черный список. Особенно это любит делать, например, att.com

    $sa_quarantine_cutoff_level - уровень начиная с которого письмо не сохраняется в карантине (/var/lib/amavis/virusmails/…)

    $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_DISCARD;

    $final_bad_header_destiny = D_PASS; # False-positive prone (for spam)

    $virus_admin = "admin\@aaa.ru"; # due to D_DISCARD default

    Параметры задают правила обработки «нехороших» сообщений:

    $final_virus_destiny - просто игнорировать (сами письма сохраняются в карантине)

    $final_banned_destiny - письма с запрещенными вложениями по типу файлов: сообщить отправителю о невозможности доставки

    $final_spam_destiny - игнорировать (это и есть то самое правило обработки спама, о котором шла речи выше)

    $final_bad_header_destiny - некорректные заголовки писем пропускать.

    $virus_admin - адрес, куда доставлять сообщения о вирусах и отраженных письмах с запрещенными вложениями (postmaster), чтобы можно было проверить содержимое писем в карантине. О письмах со спамом, попавшим в карантин, сообщений не будет.

    Настройки, связанные с вирусами и запрещенными вложениями лучше оставить «по умолчанию».

    Конкретные уровни оценки выставьте сами (я использую именно такие, и они меня полностью удовлетворяют, по крайней мере, по прошествии довольно большого времени и накопленной bayes-овской базы и с регулярными обновлениями правил spamassassin). Недавно специально проверял - за три дня ложных срабатываний было 0 (менял D_DISCARD на D_PASS у $final_spam_destiny).

    Сделаем так, чтобы amavis не проверял исходящие письма на спам, а только входящие (на вирусы он будет проверять все письма). Вставим строки

    # add these for SASL SA bypass

    $policy_bank{'MYUSERS'} = { # mail from submission and smtps ports

    originating => 1, # Since amavisd-new 2.5.0

    # declare that mail was submitted by our smtp client

    bypass_spam_checks_maps => [1], # don't spam-check this mail

    bypass_banned_checks_maps => [1], # don't banned-check this mail

    bypass_header_checks_maps => [1], # don't header-check this mail

    };

    Отредактируйте файл /etc/amavis/conf.d/21-ubuntu_defaults

    sudo nano /etc/amavis/conf.d/21-ubuntu_defaults

    и закомментируйте строки

    #$final_virus_destiny = D_DISCARD; # (defaults to D_BOUNCE)

    #$final_banned_destiny = D_DISCARD; # (defaults to D_BOUNCE)

    #$final_spam_destiny = D_DISCARD; # (defaults to D_REJECT)

    #$final_bad_header_destiny = D_PASS; # (defaults to D_PASS), D_BOUNCE suggested

    #$virus_admin = undef;

    #$spam_admin = undef;

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

    sudo adduser clamav amavis

    sudo /etc/init.d/amavis restart

    sudo /etc/init.d/clamav-daemon restart

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

    Укажем, чтобы postfix проверял почту через amavis

    sudo postconf -e 'content_filter = amavis:[127.0.0.1]:10024'

    sudo postconf -e 'receive_override_options = no_address_mappings'

    Отредактируем файл /etc/postfix/master.cf

    sudo nano /etc/postfix/master.cf

    и добавим в конец следующие строки

    amavis unix - - - - 2 smtp

    -o smtp_data_done_timeout=1200

    -o smtp_send_xforward_command=yes

    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

    Перезапустим postfix

    sudo /etc/init.d/postfix restart

    Для периодической очистки карантина вставим в cron

    sudo crontab -e

    1 0 * * * find /var/lib/amavis/virusmails/* -mtime +60 | xargs rm &> /dev/null

    (ежедневная очистка всех файлов из карантина, старше 60 дней)
    1   2   3   4   5   6   7   8   9   10   ...   15


    написать администратору сайта