Установка и настройка службы imap/pop3 на базе Dovecot

Это вторая статья цикла посвященного почтовому серверу на базе ОС CentOS Linux. В ней речь пойдет о том, как же дать людям доступ ко входящим письмам по средствам imap/pop3 c помощью Dovecot.

Первая статья: Установка и Настройка Postfix

Настоятельно рекомендую начинать настройку сервера с нее.

Для начала установи нужные части Dovecot:

yum install dovecot dovecot-mysql
  1. В любимом редакторе открываем файл /etc/dovecot/dovecot.conf и начинаем его беспощадно редактировать.

1.1. Для начала укажем механизм авторизации (доступные: login, cram-md5, DIGEST-MD5):

auth_mechanisms = plain

1.2. Укажем рабочий каталог dovecot:

base_dir = /var/run/dovecot/

1.3. Включаем поддержку ssl (если Ваш dovecot упадет на страте - попробуйте использовать pem сертификаты п.1.3.2.):

ssl = yes
ssl_cipher_list = ALL:!LOW:!SSLv2
ssl_cert=</etc/ssl/certs/server.crt
ssl_key=</etc/ssl/certs/server.key

1.3.1. Если сертификатов безопасности у Вас нету - сгенерируйте их самостоятельно:

mkdir /etc/ssl/certs/  
cd /etc/ssl/certs/  
openssl genrsa -out server.key 2048  
openssl req -new -key server.key -out server.csr -nodes  
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt  
openssl pkcs12 -in server.pfx -out server.pem -nodes

1.4. Указываем id пользователей под которым Dovecot будет стучаться к файлам:

first_valid_uid = 1150
last_valid_uid = 1150
  • полагаю что пользователь уже был создан.

1.5. Указываем где искать файлы почты:

mail_location = maildir:/var/spool/mail/%d/%u

%d - домен
%u - имя пользователя

1.6. База паролей:

passdb {
	args = /etc/dovecot/dovecot-sql.conf
	driver = sql
}

1.7. База пользователей:

userdb {
	args = /etc/dovecot/dovecot-sql.conf
	driver = sql
}

1.8. Сокеты авторизации:

service auth {
	unix_listener /var/spool/postfix/private/dovecot-auth {
		user = postfix
		group = postfix
		mode = 0660
	}
	unix_listener auth-master {
		user = vmail
		group = mail
		mode = 0660
	}
	unix_listener auth-userdb {
		user = vmail
		group = mail
		mode = 0660
	}
}

1.9. Сокет для imap логина:

service imap-login {
	executable = /usr/libexec/dovecot/imap-login
	inet_listener imap {
		address = *
		port = 143
	}
}

1.10. Расположение сервиса imap:

service imap {
	executable = /usr/libexec/dovecot/imap
}

1.11. Сокет для pop3 логина:

service pop3-login {
	executable = /usr/libexec/dovecot/pop3-login
	inet_listener pop3 {
		address = *
		port = 110
	}
}

1.12. Расположение сервиса pop3:

service pop3 {
	executable = /usr/libexec/dovecot/pop3
}

1.13. Включаем логирование:

log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot-info.log

1.14. Настраиваем сжатие логов с использованием logrotate. Создаем файл /etc/logrotate.d/dovecot и вставляем следующие строки в него:

/var/log/dovecot*.log {
	missingok
	notifempty
	delaycompress
	create 666 root mail
	sharedscripts
	postrotate
		/bin/kill -USR1 `cat /var/run/dovecot/master.pid 2>/dev/null` 2> /dev/null || true
	endscript
}
  1. Создаем файл /etc/dovecot/dovecot-sql.conf. Вставляем в него следующие строки:
driver = mysql
connect = host=localhost dbname=mail user=postfix password=password
default_pass_scheme = MD5
user_query = SELECT '/var/spool/mail/%d/%n' as home, 'maildir:/var/spool/mail/%d/%n'as mail, 1150 AS uid, 12 AS gid, concat('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'
password_query = SELECT username as user, password, '/var/spool/mail/%d/%n' as userdb_home, 'maildir:/var/spool/mail/%d/%n' as userdb_mail, 1150 as userdb_uid, 12 asuserdb_gid FROM mailbox WHERE username = '%u' AND active = '1'

Учтите что postfix и dovecot должны работать с одной базой данных.

Если базы не существует - зачем Вам Dovecot?

Перезапустите Dovecot чтобы изменения вступили в силу

service dovecot restart

Читайте дальше: Установка PostfixAdmin and RoundCube