Archive

Posts Tagged ‘postfix’

Отчистка почтовой очереди Exim и Postfix

October 31st, 2009 No comments

Exim

Просмотр очереди:

exim -bp

Удаление сообщения:

exim -Mrm {message-id}

Удаление всех сообщений:

exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | bash

Postfix

Просмотр очереди:

postqueue -p

Удаление сообщения:

postsuper -d - {message-id}

Удаление всех сообщений:

postsuper -d ALL

Tags: ,

Настраиваем SPF для Postfix и Bind

April 19th, 2009 No comments

Задача:

  • при приеме почты проверять SPF запись домена отправителя
  • прописать SPF запись для своего домена

Устанавливаем добавку для postfix’a:

1
2
$ cd /usr/ports/mail/postfix-policyd-spf
$ make install clean

Добавляем в /usr/local/etc/postfix/master.cf:

1
2
policy  unix  -       n       n       -       -       spawn
  user=nobody argv=/usr/local/sbin/postfix-policyd-spf

Добавляем в /usr/local/etc/postfix/main.cf:

1
2
3
4
smtpd_recipient_restrictions = ...
                               reject_unknown_sender_domain
                               reject_unauth_destination
                               check_policy_service unix:private/policy

После этого в заголовках входящих писем будет заголовок Received-SPF:

1
Received-SPF: softfail (case.net.ru: transitioning domain of globalevent.ru does not designate 77.113.141.27 as permitted sender) client-ip=77.113.141.27; envelope-from=thawsm@globalevent.ru; helo=apn-77-113-141-27.gprs.plus.pl;

Возникла проблема, при включенной проверке spf – spamooborona падает. Как решить пока не знаю. Вот лог:

1
Apr 19 12:18:18 case postfix/pipe[92687]: 5293F1E3025: to=<case@case.net.ru>, relay=so-filter, delay=0.19, delays=0.16/0.01/0/0.02, dsn=5.3.0, status=bounced (Command died with signal 11: "/usr/local/sbin/sp-postfix")

В Bind, добавляем для своего домена spf запись:

1
case.net.ru. IN TXT "v=spf1 +a +mx -all"

Теперь, если на сервере получателя письма настроен SPF, то письма будут приходить со следующим заголовком:

1
Received-SPF: pass (test.myiptest.com: domain of case.net.ru designates 213.79.110.123 as permitted sender)

Ссылки:

http://www.openspf.org/

http://www.myiptest.com/staticpages/index.php/DomainKeys-DKIM-SPF-Validator-test

Tags: , , ,

Установка и настройка ClamSMTP для Postfix

April 15th, 2009 No comments

Установка:

1
2
3
4
5
6
7
$ cd /usr/ports/security/clamsmtp
$ make showconfig
===> The following configuration options are available for clamsmtp-1.10_1:
     LOCAL_CLAMAV=on "RUN_DEPEND on security/clamav"
     LOCAL_CLAMAV_DEVEL=off "RUN_DEPEND on security/clamav-devel"
===> Use 'make config' to modify these settings
$ make install clean

Прописываем в rc.conf:

1
clamsmtpd_enable="YES"

Копируем конфиг:

1
2
$ cd /usr/local/etc/
$ cp clamsmtpd.conf-sample clamsmtpd.conf

Настраиваем:

1
2
3
4
OutAddress: 127.0.0.1:1026
Listen: 127.0.0.1:1025
ClamAddress: /var/run/clamav/clamd.sock
User: clamav

Запускаем:

1
$ /usr/local/etc/rc.d/clamsmtpd start

Настраиваем master.cf в Postfix’e (в моем случае подключена еще и спамоборона):

1
2
3
4
5
6
7
smtp      inet  n       -       n       -       -       smtpd
    -o content_filter=so-filter
127.0.0.1:1026  inet  n       -       n       -       -       smtpd
    -o content-filter=
so-filter     unix  -       n       n       -       -       pipe
    flags=q. user=souser argv=/usr/local/sbin/sp-postfix
    -a ${client_address} -f ${sender} -- ${recipient}

Путь письма при этом выглядит так:

1
mail -> smtpd (25) -> sofilter -> clamav (1025) -> smtpd (1026) -> mail

Перезапускаем Postfix:

1
$ postfix reload

Postgrey

March 10th, 2009 No comments

Postgrey is a program which implements greylisting and is
designed to work with the Postfix MTA.

WWW: http://postgrey.schweikert.ch/

Принцип действия серых списков основан на тактике рассылки спама. Как правило, спам рассылается в очень короткое время.
Работа серого списка заключается в намеренной задержке писем на некоторое время. При этом адрес и время пересылки заносится в базу данных серого списка. Если удалённый компьютер является настоящим МТА, то он согласно RFC2821, должен сохранить письмо в очереди и повторять пересылку в течение пяти дней. Спам-боты, как правило, писем в очереди не сохраняют, поэтому спустя непродолжительное время, прекращают попытки переслать письмо. Экспериментальным путём установлено, что в среднем время рассылки спама составляет чуть больше часа.
При повторной пересылке письма с этого же адреса, если с момента первой попытки прошло необходимое количество времени, Ваш МТА примет его. При этом IP-адрес отправляющего МТА, электронные адреса отправителя и получателя будут внесены в белый список на достаточно длительное время, после чего письма будут приниматься без задержек.

Установка:

1
2
[root@case.net.ru]$ cd /usr/ports/mail/postgrey/
[root@case.net.ru]$ make install clean

Добавляем в rc.conf:

1
postgrey_enable="YES"

Прописываем правила проверки сообщения для postfix’a в main.cf:

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

Добавляем в файл /usr/local/etc/postfix/postgrey_whitelist_recipients доверенные домены и почтовые ящики для которых не производится проверка postgrey’ем.

Запускаем postgrey:

1
[root@case.net.ru]$ /usr/local/etc/rc.d/postgrey start

Перезагружаем postfix:

1
[root@case.net.ru]$  postfix reload

Отчет о проделанной работе:

1
$ cat /var/log/maillog | postgreyreport --dbdir=/var/db/postgrey --nosingle_line --check_sender=mx,a --separate_by_subnet=":======\n"

Ссылки: http://argo-uln.blogspot.com/2007/11/blog-post.html

Tags: ,

Сортировка почты с помощью Dovecot Sieve

March 5th, 2009 No comments

Что имеется: postfix + mysql + dovecot как imap сервер + roundcube
Задача: сделать так, что бы письма с пометкой SPAM ложились в каталог Junk, а не Inbox.

Собираем Dovecot с поддержкой LDA:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@case.net.ru]$ cd /usr/ports/mail/dovecot
[root@case.net.ru]$ make showconfig
===> The following configuration options are available for dovecot-1.1.11:
     KQUEUE=on "kqueue(2) support"
     SSL=off "SSL support"
     IPV6=off "IPv6 support"
     POP3=off "POP3 support"
     LDA=on "LDA support"
     MANAGESIEVE=off "ManageSieve support"
     GSSAPI=off "GSSAPI support"
     VPOPMAIL=off "VPopMail support"
     BDB=off "BerkleyDB support"
     LDAP=off "OpenLDAP support"
     PGSQL=off "PostgreSQL support"
     MYSQL=on "MySQL support"
     SQLITE=off "SQLite support"
===> Use 'make config' to modify these settings
[root@case.net.ru]$ make install clean

Устанавливаем dovecot-sieve:

1
2
[root@case.net.ru]$ cd /usr/ports/mail/dovecot-sieve/
[root@case.net.ru]$ make install clean

Настраиваем postfix:
Добавляем в master.cf:

1
2
dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/local/libexec/dovecot/deliver -f ${sender} -d ${recipient}

Меняем в main.cf:

1
virtual_transport = dovecot

Меняем в dovecot.conf:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
protocol lda {
  postmaster_address = case@case.net.ru
  hostname = case.net.ru
  mail_plugins = cmusieve
  mail_plugin_dir = /usr/local/lib/dovecot/lda
  sendmail_path = /usr/sbin/sendmail
  sieve_global_path = /usr/home/vmail/dovecot-sieve.conf
}
 
auth default {
  socket listen {
    master {
      path = /var/run/dovecot/auth-master
      mode = 0600
      user = vmail
      group = vmail
    }
  }
}

Настраиваем sieve в файле /usr/home/vmail/dovecot-sieve.conf:

1
2
3
4
require "fileinto";
if header :contains "Subject" "SPAM" {
  fileinto "Junk";
}

Спамооборона от Яндекса

January 18th, 2009 No comments

Имеется FreeBSD 6.4 и Postfix 2.5.

Скачиваем собственно сам пакет спамообороны:
spamooborona1024_postfix-2.2.tbz

Устанавливаем:

pkg_add -v spamooborona1024_postfix-2.2.tbz.

Для запуска /usr/local/sbin/sp-postfix требуется библиотека libgcc_s.so.1.
Устанавливаем gcc42:

# cd /usr/ports/lang/gcc42
# make install clean

Перезапускаем postfix (postfix reload) и радуемся жизни.

Tips для fetchmail:
По умолчанию Спамооборона отказазывается проверять письма принимаемые через fetchmail, пишет:

Outgoing mail skipped, origin=127.0.0.1

Что бы работало делаем так, что бы fetchmail доставлял письма на внешний интерфейс:

fetchmail --smtphost mx.case.net.ru

Личный почтовый ящик

September 28th, 2008 No comments

postfix (smtpd) + dovecot (imapd) + roundcube webmail (web interface for imapd) + spamassassin

dovecot.conf (только изменения)

protocols = imap
listen = 127.0.0.1
disable_plaintext_auth = no
ssl_disable = yes
mail_location = maildir:/usr/home/vmail/%u
auth default {
mechanisms = plain
passdb sql {
args = /usr/local/etc/dovecot-sql.conf
}
userdb static {
args = uid=2011 gid=2011 home=/usr/home/vmail/%u
}
user = vmail
}

spamassassin: /usr/local/etc/mail/spamassassin/local.cf

rewrite_header Subject *****SPAM*****
report_safe 0
required_score 10.0
use_bayes 1
bayes_auto_learn 1