Posts tagged ‘Unicyb’

Postfix Postgrey и очистка очереди

Не дают покоя спаммеры факультетской почте. После настройки Яндекс.Спамооборона 1024 спам в ящики практически перестал приходить, но пошла новая тема - вдувать за день в очередь около миллиона корявых сообщений, которые системе приходится обрабатывать и получается, фактически, отказ в обслуживании.

Пришлось подключить к postfix релею policy server Postgrey. Смысл её работы:

When a request for delivery of a mail is received by Postfix via SMTP, the triplet CLIENT_IP / SENDER / RECIPIENT is built. If it is the first time that this triplet is seen, or if the triplet was first seen, less than 5 minutes ago, then the mail gets rejected with a temporary error. Hopefully spammers or viruses will not try again later, as it is however required per RFC.

Тем самым отсекается основной поток одинаковых писем.

Настроить на Ubuntu очень просто:

apt-get install postgrey

И потом добавить нужную директиву к smtpd_recipient_restrictions, например:

smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023

И перезапустить postfix:

/etc/init.d/postfix reload

После этого не помешает очистить очередь от скопившихся там баунсов. Что бы найти и удалить все письма в очереди от MAILER-DAEMON, я воспользовался скриптом, найденным тут:

#!/bin/bash
mailq | tail -n +2 | grep -v '^ *(' | awk  'BEGIN { RS = "" }
# $7=sender, $8=recipient1, $9=recipient2
{ if ($7 == "MAILER-DAEMON" )
    print $1 }
' | tr -d '*!' | postsuper -d -

Бесплатная панель управления хостингом

Встала необходимость на факультете поставить панель управления. Из коммерческих аналогов я недавно сталкивался с ISPManager, круть страшная, только денег стоит :) . Пришлось рассмотреть бесплатные аналоги. Зацепились за SysCP. Вроде неплохая штука, привожу несколько особенностей по установке на Ubuntu 9.10.

Подключаем репозиторий syscp для получения пакета для Debian Lenny. Добавляем deb http://debian.syscp.org/ lenny/ в /etc/apt/sources.list . Далее:

wget http://debian.syscp.org/pubkey
apt-key add pubkey
apt-get  update

Ставим панель командой:

apt-get  install   syscp

Вот только в таком варианте будет установлена еще большое количество ненужных мне пакетов. На факультетском сервере мне не нужно управление почтой. Ставим без дополнительного барахла:

apt-get --no-install-recommends install syscp

Пакет фактически устанавливает документацию и сайт в /var/www/syscp.

Далее надо проверить настройки apache, что бы достучаться до этого сайта, открыть его и следовать инструкциям. Используемые демоны типа (Web/Ftp/etc) настраиваются уже в процессе, система выдает четкие инструкции. Не читая никакой документации получилось тыками мышки все настроить. Конфиги система обновляет через запуск консольных php скриптов по крону или xinetd. В последнем случае изменения применяются сразу, без таймаута, который получается из-за крона.

В общем - понравилась.

Борьба со спамом 2

Полтора года назад я писал о настройке антиспам системы на факультете. Результаты получились не плохие, но все равно много спама прорывалось и со временем система теряла качество и спама становилось все больше.

После рассмотрения нескольких вариантов решили попробовать Яндекс Спамооборону 1024. Бесплатный коммерческий антиспам для малого бизнеса. Ловит спам до того момента, как пропустит 1024 легитимных письма в день. Заодно релей на Ubuntu вместо FreeBSD переставили. Спамооборона встала как фильтр для postfix без проблем и сама прописала себя в конфиги.

СО сразу же начала исправно метить спам, но, как оказалось, бесплатная версия не умеет его блокировать, а только метит. Это не совсем хорошо, так как не хочется грузить Exchange, который находится за антиспам релеем, горами спама. Поэтому докрутил к postfix все тот же Amavisd-new. Свежеустановленный Amavisd-new без каких либо особых настроек и допиливаний сам весьма неплохо начал фильтровать спам, что пригодится, если будет превышен лимит СО1024. Результаты проверки СО1024 Amavisd-new игнорировал, поэтому пришлось дописать правило в /etc/spamassassin/local.cf:

header   D_YANDEX_SO    Subject =~ /^\[SPAM.*/
score    D_YANDEX_SO    60.0
describe D_YANDEX_SO    Checked by Yandex SO

Ловить хидеры X-SPAM-* не получилось. В документации туманно упоминается, что они игнорируются Amavisd-new/Spamassassin. Amavisd-new было указано весь обнаруженный спам убивать на месте. Чем еще хорошо все таки устанавливать Amavisd-new в паре со Спамообороной это тем, что он использует Clam-AV и банит EXE-шники.

Надеюсь, что антиспам система в данном виде будет работать эффективно и надежно без обновлений и переустановок. Под Ubuntu Spamassassin должен обновляться по крону сам и выкачивать свежие правила. Немного статистики за прошлые сутки:

  • Спам: 18138 писем
  • Вирусы: 1 письмо
  • Запрещенное сожержимое (.exe и тд): 157
  • Разрешена доставка: 474 письма

Статистика приведена без учета множественных получателей в одном письме. После всех этих настроек за три дня ко мне в факультетский ящик не пришло ни одного письма со спамом.

Борьба со спамом

Надоело наблюдать огромные потоки спама через факультетский ящик и я выделил время настроить на нём нормальный антиспам. Подошёл к вопросу всесторонне и изучил хаутушки, как сейчас это делают другие. Открыл для себя Greylisting, который оказался мощной штукой, хотя, якобы, обладает недостатками. В системе FreeBSD десятки портов для грейлистинга и очень много времени ушло на то, что бы понять какой из них надежен, эффективен, производителен и требует минимального обслуживания. Принять окончательное решение помог вот этот документ, который рекомендует различные реализации. Вот этот документ, кстати хорошо описывает недостатки грейлистинга и рассказывает про некий Selective Greylisting. Окончательным решением оказался Tumgreyspf. Он не требует для работы базы данных (хранит информацию о коннектах в иерархии папок), поддерживает SPF, легко ставится.

Итого приведу наблюдения по каждому из уровней обороны от спама:

  • RBL за прошлую пятницу отбил 407336 сообщений (!!!)
  • Greylisting: 54407
  • SPF: 400
  • AmavisD-New: 773 сообщения заблокировано, 2317 пропущено, но помечено как спам
  • Clam-AV: 1 (!!!) сообщение с вирусом
  • Успешно доставлено: 9014 сообщений (наверняка большая часть - спам)

Итого благодаря RBL, который практически не создает дополнительной нагрузки на сервер, блокируется большинство сообщений. Но еще 54 тысячи было блокировано грейлистингом, казалось бы гораздо меньше чем RBL, но ведь это все равно очень приличное число для обработки процессоро-интенсивным AmavisD-New.

Теперь, субъективно, в моем ящике стало появляться гораздо меньше спама.