Postfix & dovecot для локальной сети.

Перейти к: навигация, поиск

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

Обсудить можно на http://www.it-advisor.ru

На оригинальность не претендую, но конкретно под SUSE или SLES статей ненашёл, поэтому пишу...

Задача:

Организовать работу покальной почты, а так же чтобы с нею можно было работать и за пределами локальной сети.

Имеем:

SLES 10 sp2, думаю всё подойдет ко всем остальнм дистрибутивам SuSE 10...

Решение:

Так как задачу нужно было выполнить срочно, то сразу особо заморачиваться с секьюрностью небудем, сделаем что бы работало...


1. Настраиваем postfix:

Все настройки, кроме указанных ниже, дефолтные.

Думаю особых комментариев непонадобиться:

/etc/postfix/main.cf
inet_interfaces = 127.0.0.1, 192.168.4.4 #подставляем своё
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 192.168.4.0/24, 192.168.10.0/24, 127.0.0.0/8 #пишем свои локальные сети и локалхост
myhostname = ваш_домен.ру
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
#разрешаем отправку почты из локальной сети и прошедшим авторизацию
smtpd_sasl_auth_enable = yes #включаем sasl авторизацию
message_size_limit = 1024000 #задаём максимальный размер сообщения

Далее идем в YAST => Системные службы (runlevel) и включаем, если невключено, saslauthd и postfix, применяем.

Далее rcpostfix restart.

Если никакой ругани невидим, то поехали дальше.


2. Настраиваем dovecot:

Устанавливаем dovecot и настраиваем.
Все настройки, кроме указанных ниже, дефолтные.
/etc/dovecot/dovecot.conf
protocols = imaps
listen = *
ssl_listen = *:993
ssl_disable = no
ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem
ssl_cipher_list = ALL:!LOW:!SSLv2
disable_plaintext_auth = yes
mechanisms = plain login cram-md5
default_mail_env = mbox:~/mail/:INBOX=/var/mail/%u
создаём сертификаты при помощи скрипта:
#!/bin/sh
# Generates a self-signed certificate.
# Edit dovecot-openssl.cnf before running this.
OPENSSL=${OPENSSL-openssl}
SSLDIR=${SSLDIR-/etc/ssl}
OPENSSLCONFIG=${OPENSSLCONFIG-dovecot-openssl.cnf}
CERTDIR=$SSLDIR/certs
KEYDIR=$SSLDIR/private
CERTFILE=$CERTDIR/dovecot.pem
KEYFILE=$KEYDIR/dovecot.pem
if [ ! -d $CERTDIR ]; then
 echo "$SSLDIR/certs directory doesn't exist"
 exit 1
fi
if [ ! -d $KEYDIR ]; then
 echo "$SSLDIR/private directory doesn't exist"
 exit 1
fi
if [ -f $CERTFILE ]; then
 echo "$CERTFILE already exists, won't overwrite"
 exit 1
fi
if [ -f $KEYFILE ]; then
 echo "$KEYFILE already exists, won't overwrite"
 exit 1
fi
$OPENSSL req -new -x509 -nodes -config $OPENSSLCONFIG -out $CERTFILE -keyout $KEYFILE -days 365   || exit 2
chmod 0600 $KEYFILE
echo 
$OPENSSL x509 -subject -fingerprint -noout -in $CERTFILE || exit 2
Далее идем в YAST => Системные службы (runlevel) и включаем dovecot.

Потом rcdovecot restart.

Если никакой ругани невидим, то почта должна работать.

Подключаем клиента по протоколу IMAPS с защитой SSL

SMTP сервер с авторизацией по паролю.
Если чего забыл вдруг, вот рабочие конфиги.

Следующим этапом будет борьба со спамом, но это уже другая история...

shweew 10:45, 10 июня 2008 (UTC)