понедельник, 7 мая 2012 г.

Cyrus IMAP(S) и Sendmail шпаргалка

Краткая шпаргалка по настройке sendmail и cyrus imap с поддержкой TLS.

1. Устанавливаем sendmail и cyrus

# apt-get install sendmail sasl2-bin cyrus-imapd

2. Редактируем sendmail.mc подключаем локальный мейлер cyrus, в виде опции - блеклисты, включаем поддержку tls и sasl, разрешаем отправку только авторизованным пользователям и только с использованием tls


include(`/etc/mail/tls/starttls.m4')dnl
include(`/etc/mail/sasl/sasl.m4')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
define(`confAUTH_OPTIONS', `A p y')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
dnl #
FEATURE(`dnsbl', `zen.spamhaus.org',    `550 SPAM detected - message from $`'&{client_addr} rejected - see http://www.spamhaus.org/')dnl
FEATURE(`dnsbl', `dul.dnsbl.sorbs.net', `550 SPAM detected - message from $`'&{client_addr} rejected - see http://www.dul.dnsbl.sorbs.net/')dnl
FEATURE(`dnsbl', `bl.spamcop.net',      `550 SPAM detected - message from $`'&{client_addr} rejected - see http://spamcop.net/bl.shtml')dnl
FEATURE(`dnsbl', `bl.csma.biz',         `550 SPAM detected - message from $`'&{client_addr} rejected - see http://bl.csma.biz/')dnl
FEATURE(`dnsbl', `dnsbl.njabl.org',     `550 SPAM detected - message from $`'&{client_addr} rejected - see http://njabl.org/')dnl
FEATURE(`dnsbl', `dnsbl.sorbs.net',     `550 SPAM detected - message from $`'&{client_addr} rejected - see http://dnsbl.sorbs.net')dnl
FEATURE(`dnsbl', `cbl.abuseat.org',     `550 SPAM detected - message from $`'&{client_addr} rejected - see http://cbl.abuseat.org/')dnl
define(`confLOCAL_MAILER', `cyrus')dnl
dnl # Default Mailer setup
MAILER_DEFINITIONS
MAILER(`local')dnl
MAILER(`smtp')dnl
MAILER(`cyrus')dnl

3. Формируем фейковый сертификат и приватный ключ для Cyrus

openssl req -new -nodes -out req.pem -keyout key.pem 
openssl rsa -in key.pem -out new.key.pem
openssl x509 -in req.pem -out ca-cert -req -signkey new.key.pem -days 999

mkdir /var/imap

cp new.key.pem /var/imap/server.pem
rm new.key.pem
cat ca-cert >> /var/imap/server.pem

chown cyrus:mail /var/imap/server.pem
chmod 600 /var/imap/server.pem # Your key should be protected

echo tls_ca_file: /var/imap/server.pem >> /etc/imapd.conf
echo tls_cert_file: /var/imap/server.pem >> /etc/imapd.conf
echo tls_key_file: /var/imap/server.pem >> /etc/imapd.conf

4. Настраиваем почтовые ящики Cyrus

Правим /etc/imapd.conf с целью разрешить управлять ящиками через imap. Снимаем комментарий со строки:

admins: cyrus

Проверяем, что открыт протокол imap в /etc/cyrus.conf - мы не будем использовать этот протокол по прямому назначению, он нужен только для управления почтовыми ящиками утилитой cyradm. Рабочий и основной пртокол это imaps

imap        cmd="imapd -U 30" listen="imap" prefork=0 maxchild=100
imaps       cmd="imapd -s -U 30" listen="imaps" prefork=0 maxchild=100


Задаем пароль для пользователя cyrus (администратора cyrus)

# saslpasswd2 cyrus

Создаем нового пользователя sasl

# saslpasswd2 -c user

Создаем почтовый ящик для пользователя myuser

# cyradm --user=cyrus localhost
localhost.localdomain> cm user.myuser


5. Собственно это все. В дальнейшем обслуживание системы сводится к добавлению пользователей в базу sasl и создании новых почтовых ящиков для них в cyrus.

Не забываем запустить saslauthd и настроить его на работу с базой sasl а не PAM

Редактируем /etc/default/saslauthd и включаем:

START=yes
MECHANISMS="sasldb"

Update: Как узнать какой из блеклистов срабатывает чаще всего? Я использовал вот такую команду:

$ cat /var/log/mail.log | grep SPAM | perl -ne 'print "$1" if /(http:.*)/igs' | sort | uniq -c | sort -bn
     10 http://njabl.org/
     97 http://www.spamhaus.org/
    149 http://www.dul.dnsbl.sorbs.net/
    215 http://dnsbl.sorbs.net
    378 http://spamcop.net/bl.shtml
    459 http://cbl.abuseat.org/

Комментариев нет:

Отправить комментарий