Полет, на первый взгляд, нормальный. Потихоньку довожу до кондиции.
Archive for мая, 2010
Postfix и спам – как выйти из гонки вооружений
Так уж получилось, что смена аппаратной части наших почтовых серверов приводит к смене программной части. И если бы это заключалось только к накатыванию актуальных версий операционки и софта – так нет, приключений хочется по полной программе. Так, после 4-х лет жизни на exim в связке с courier, spamassassin’s spamd и clamav потянуло в сторону postfix+dovecot. Некоторые решения, которые мы реализовали, заслуживают отдельного внимания и могут быть интересными для других пользователей postfix, о них напишу как-нибудь попозже. Сейчас же – о борьбе со вселенским злом (я не о google), о спаме.
Как показал опыт, на больших объемах почты очень сложно бороться с помощью контестной фильтрации – тот же spamd или любая его реинкарнация укладывает пару-тройку некислых машинок с кучей памяти. Более производительный и перспективный dspam – не панацея, т.к. очень сложно объяснить пользователям, знающим две кнопки “Получить почту” и “Оправить почту”, как пользоваться фильтром. Нужно было решение, которое, с одной стороны, позволит уйти из “гонки вооружений” (наращивания количества машин) и оставить уровень проходящего спама на нераздражающем уровне (читай – уровне, когда твой Thunderbird сам своими силами пометит спам и тихонечько отложит его в отдельную папку).
Еще не все вылизано до конца, но можно с уверенностью сказать, что наиболее действенным оказались следующие моменты:
- мы не принимаем сообщения от хостов, которые не могут нормально представиться в HELO/EHLO.
- мы не принимаем сообщения с динамических блоков – как по маскам, так и по базе DUL.RU
- и самое действенное – динамический blacklist (он не сильно black – мы выставляем 4xx, так что это скорее “серый” список) для тех хостов, которые пытаются засунуть большое количество писем одновременно.
Как показал опыт, в нашем случае ограничение в 30 одновременных коннектов вполне достаточно. Так вот, если удаленный хост пытается превысить этот порог на протяжении определенного времени – он попадает в “серый” список на несколько часов.Что самое интересное – за пару недель после реализации этой схемы мы не отметили ни одной жалобы. А уровень спама, как говорят, драматически снизился. И спать можно спокойнее – даже если клиент поймает трояна, его рассылка не будет массовой, т.к. он будет в “сером” списке очень быстро.
Доволен. Работает!
ДЦ-2. Мокрые работы закончились.
Сегодня закончился первый этап строительства – закончились строительные мокрые работы, что означает:
- собрана перегородка между гермозоной и комнатой обслуживания
- установлены двери правильного размера
- готовы стены – поштукатурены, окрашены
- готова “бытовая” электрика – освещение, включая аварийное, вспомогательные розетки
- готов пол – уложены плиты, лежит покрытие
- готов потолок, установлены шпильки для крепления кабельростов
- установлены окна
После праздников начинаем второй этап – силовая электрика, АВРы, монтаж системы бесперебойного питания, кабельросты, стойки и т.п. Работы будет много.
shflags, FreeBSD и ошибка expr
После миграции моего мегаскрипта для подготовки видеоконтента с linux на правильную ОС возникла ошибка expr(1):
expr: illegal option -- s usage: expr [-e] expression
Ошибка генерируется внутри shflags – в сторону expr(1) передается параметр, начинающийся с ‘-’ (минус), чего штатный expr(1) не принимает. Оставим в сторону его корректность или некорректность в данном конкретном случае.
Выйти из ситуации можно достаточно просто: идем в /usr/ports/sysutils/coreutils, делаем make install clean и получаем установленные GNU Coreutils. Версии утилит имеют префикс g – gexpr, gkill, gdu и т.п. Полный список можно посмотреть в pkg-descr, расположнном в каталоге /usr/ports/sysutils/coreutils.
Итак, мы имеем установленный более другой expr(1) с именем gexpr. Открываем /usr/local/lib/shflags, меняем все строки expr на gexpr и, вуаля – наш суперскрипт работает без проблем.