nginx 0.8.33

Изменения в nginx 0.8.33                                          01.02.2010
    *) Безопасность: теперь nginx/Windows игнорирует пробелы в конце
       URI.
       Спасибо Dan Crowley, Core Security Technologies.
    *) Безопасность: теперь nginx/Windows игнорирует короткие имена
       файлов.
       Спасибо Dan Crowley, Core Security Technologies.
    *) Изменение: теперь keepalive соединения после запросов POST не
       запрещаются для MSIE 7.0+. Спасибо Adam Lounds.
    *) Изменение: теперь keepalive соединения запрещены для Safari. Спасибо
       Joshua Sierles.
    *) Исправление: если проксированный или FastCGI запрос внутренне
       перенаправлялся в другой проксированный или FastCGI location, то
       переменная $upstream_response_time могла иметь ненормально большое
       значение; ошибка появилась в 0.8.7.
    *) Исправление: в рабочем процессе мог произойти segmentation fault при
       отбрасывания тела запроса; ошибка появилась в 0.8.11.
Пакет для Lenny (i386) можно взять тут
С патчами тут
Для adm64 сделаю позже )

Конфиг exim.conf для DirectAdmin

Притомил меня спам от всяких левых и правых серверов.
Решил немного пошаманить над конфигом ексима. Шаманство довело до того, что был полностью переработан штатный конфиг, прикручен небольшой избирательный грейлистинг и dspam-фильтр, а также черные и белые списки.
От spamassasin отказался полностью (в пользу dspam, который будет описан в отдельной статье) ибо памяти кушает не слабо, особенно когда вал входящей почты идет, а эффективность его немного страдает.

После шаманства спам упал практически на 80-90%. Остальное проходит через грейлистинг и потом dspam.

Принцип фильтрации следующий.
На стадии connect дропаются все динамические сети типа *.pool.* *.dsl.* *.dialup.*и т.д. (ну откуда там будет нормальный почтовик ?)
Далее дропаются все хосты с некорректным/непрописанным HELO
В check_recipient дропаются хосты, которые в черном списке. Там же проверка на наличие обратной зоны, прописанного хостнейма и присутствия данного хоста в RBL-списках. Причем почта от таких не дропается, а направляется на грейлист.
В грейлист так же уходят те хосты, которые решили зайди по smtp вместо esmtp.
Решил проблему (вроде бы) c backscatterer.org (что сие есть - см. на их сайте) и спамом  через bounce (отлупы)

Особо расписывать не буду, конфиг приложил. Черный список тоже.

При написании конфига была использована информация с рассылки exim.org.ua, mta.org.ua и lissyara.su

Если кто вдруг наткнется и будет использовать у себя - за последствия я не отвечаю.
Используйте на свой страх и риск.

Однако, я буду рад любым комментариям, дополнениям и изменениям.

Файлы:
exim.conf
blacklist_helo
blacklist_host_name

Exim + Greylist + Directadmin

В предыдущей статье я описывал как ставил грейлист  на тазик с панелью directAdmin на CentOS-е.

Нашел время написать как я ставил greylist  под Debian
Итак, имеем: Debian Lenny, DirectAdmin, exim из комплекта панели. Потребуется установить демон greylistd и после чуть подправить конфиг ексима.
Приступаем:

aptitude update
aptitude install  greylistd

Теперь необходимо поправить конфиг ексима. Ищем первый accept  в acl_smtp_rcpt и добавляем перед ним:
[eng]Now need to change exim.conf. Find first 'accept' in 'acl_smtp_rcpt' and add before:

# GreyListing
    defer   message    = Sender verification for $sender_host_address in progress. Please try later.
        log_message    = greylisted.
        !senders       = :
        !hosts         = : +relay_hosts : +whitelist_hosts : +whitelist_hosts_ip
        !authenticated = *
        !domains       = : ${if exists {/etc/greylistd/skip-greylist}\
                                 {/etc/greylistd/skip-greylist}{}}
        domains        = +local_domains : +relay_domains
        verify         = recipient/callout=20s,use_sender,defer_ok
        condition      = ${readsocket{/var/run/greylistd/socket}\
                            {--grey \
                                  $sender_host_address \
                                  $sender_address \
                                  @$domain}\
                              {5s}{}{false}}
    deny   message = $sender_host_address is blacklisted
        log_message = blacklisted.
        !senders       = :
        !authenticated = *
        verify         = recipient/callout=20s,use_sender,defer_ok
        condition      = ${readsocket{/var/run/greylistd/socket}\
                                 {--black \
                                  $sender_host_address \
                                  $sender_address \
                                  $local_part@$domain}\
                                 {5s}{}{false}}

Далее, ищем в ACL acl_smtp_data первый accept и вставляем перед ним:
Next, find first 'accept' in ACL acl_smtp_data and add before this code:

     defer
        message        = Sender verification for $sender_host_address in progress. Please try later.
        log_message    = greylisted.
        senders        = :
        !hosts         = : +relay_hosts : +whitelist_hosts : +whitelist_hosts_ip
        !authenticated = *
        condition      = ${readsocket{/var/run/greylistd/socket}\
                                 {--grey \
                                  $sender_host_address \
                                  $recipients}\
                                  {5s}{}{false}}
    deny
        message = $sender_host_address is blacklisted from delivering \
                     mail from <$sender_address> to <$recipients>.
        log_message   = blacklisted.
        !senders       = :
        !authenticated = *
        condition      = ${readsocket{/var/run/greylistd/socket}\
                                 {--black \
                                  $sender_host_address \
                                  $recipients}\
                                  {5s}{}{false}}

В файле /etc/greylistd/skip-greylist можно прописать домены (локальные) для которых не включать грейлистинг. Формат файла простой - один домен на строчку.
Вот собственно все.

In file /etc/greylistd/skip-greylist you can write whitelisted domains. One domain per line.

Если будет свободное время, напишу как прикрутить DSPAM  + Exim + Directadmin