Настройка почтового сервера Postfix+Dovecot |
Обновлено: 15.06.2025 - 21:53
Установка и настройка Postfix+Dovecot
Установка Postfix и Dovecot
Вся процедура разворачивания и настройки была проверена на Ubuntu Server 9/10
Вначале устанавливаем Postfix и Dovecot
$sudo aptitude install postfix dovecot
Отказываемся от предложенных вариантов настроек. Подразумевается, что все настроим сами без никакого автоматизма со стороны разработчиков.
Постинсталляционный скрипт сообщит, что в таком состоянии постфикс работать не может. А тут мы и не спорим. :)
Создадим недостающий файл конфигурации:
$ sudo touch /etc/postfix/main.cf
На этом установка завершена.
Настройка Postfix
Открываем на редактирование файл /etc/postfix/main.cf и заполним его следующими данными:
smtpd_banner = $myhostname ESMTP (Ubuntu)
#Так наш сервер будет представляться при отправке и получении почты
biff = no
#Отключаем использование comsat
append_dot_mydomain = no
#Запрещаем автоматически дополнять неполное доменное имя в адресе письма
queue_directory = /var/spool/postfix
#Указываем каталог очереди для Postfix
myhostname = test.com
#Указываем имя нашего хоста
alias_maps = hash:/etc/postfix/aliases
mydestination = localhost, test.com
#Указываем, для каких доменов будем принимать почту
mynetworks = 127.0.0.0/8
#Указываем список доверенных подсетей
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#Указываем прослушивание на всех интерфейсах
smtpd_helo_required = yes
#Указываем обязательность использование клиентами команды helo
#Далее идет настройка ограничений для приема почты
smtpd_recipient_restrictions = permit_mynetworks, #Принимаем всю почту от нашей доверенной подсети
check_helo_access hash:/etc/postfix/helo.list, #Проверяем, не представились ли нами самими
check_sender_access hash:/etc/postfix/ext_sender, #Если отправитель письма из внешнего мира представляется, что он из нашего домена - отвергаем письмо
reject_unauth_destination, #Отвергаем письмо, если получатель не входит в нашу зону ответственности
reject_unknown_sender_domain, #Отклоняем письма от неизвестных доменов
reject_unknown_recipient_domain, #Отклоняем письма для неизвестных доменов
reject_non_fqdn_recipient, #Отклоняем письма для пользователей с неполным именем домена
reject_non_fqdn_sender, #Отклоняем письма от отправителей с неполным именем домена
reject_non_fqdn_hostname, #Отвергаем сообщения от любого клиента, не предоставившего полностью определенное доменное имя хоста
reject_invalid_hostname, #Отвергаем сообщение, если в команде helo неправильно сформировано имя домена
reject_unknown_hostname #Отвергаем сообщения, если клиент представился неизвестным именем хоста
Создадим файл /etc/postfix/helo.list
#touch /etc/postfix/helo.list
Откроем его на редактирование и внесем в него строку:
test.com 550 Don't use my hostname
И выполним его хеширование:
#postmap /etc/postfix/helo.list
Создадим файл /etc/postfix/ext_sender
#touch /etc/postfix/ext_sender
Откроем его на редактирование и внесем в него строку:
test.com 450 Do not use my domain in your envelope sender
И выполним его хеширование:
#postmap /etc/postfix/ext_sender
Создадим файл с алиасами на адреса:
#touch /etc/postfix/aliases
Запишем в него:
postmaster root
И прохешируем:
postmap /etc/postfix/aliases
Настройка Dovecot
Открываем на редактирование /etc/dovecot/dovecot.conf и записываем в нем:
protocols = imap imaps
#Описываем поддерживаемые протоколы
disable_plaintext_auth = no
#Разрешаем авторизацию в plaintext
log_path = /var/log/dovecot.err
log_timestamp = "%Y-%m-%d %H:%M:%S "
#Описываем логирование
ssl_disable = yes
#Отключаем SSL
login_dir = /var/run/dovecot/login
login_chroot = yes
login_user = dovecot
login_greeting = Dovecot ready.
#Строка приветствия при ответе сервера
mail_location = maildir:/var/spool/mail/%d/%n
#Описываем тип и местонахождения почтовых ящиков
mail_uid = 5000
mail_gid = 5000
mail_privileged_group = mail
#Системная группа пользователей для работы с почтой
valid_chroot_dirs = /var/spool/mail/
protocol imap {
#Пути к исполняемым файлам для работы с IMAP
login_executable = /usr/lib/dovecot/imap-login
mail_executable = /usr/lib/dovecot/imap
}
auth_executable = /usr/lib/dovecot/dovecot-auth #Настраиваем вывод отладочных сообщений
auth_verbose = yes
auth_debug = yes
auth_debug_passwords = yes
auth default {
mechanisms = plain login digest-md5 #Типы допустимых вариантов логина
socket listen {
#Настройка авторизации в Postfix
client {
path = /var/spool/postfix/private/auth
mode = 0666
user = postfix
grop = postfix
}
}
passdb passwd-file {
#Путь к файлу с паролями
args = /etc/dovecot/pass
}
}
Создадим место для хранения почты для нашего домена:
#mkdir -p /var/spool/mail/test.com
Создадим группу virtual и пользователя virtual для работы с почтовыми ящиками:
#groupadd -g 5000 virtual
#useradd -g virtual -u 5000 virtual
И укажем владельца и права на доступ к каталогу с почтой:
#chown virtual:virtual /var/spool/mail/test.com
#chmod 770 /var/spool/mail/test.com
Теперь нужно внести изменения в файлы конфигурации Postfix:
Открываем на редактирование /etc/postfix/master.cf и добавляем в него строки:
dovecot unix - n n - - pipe
flags=DRhu user=virtual:virtual argv=/usr/local/libexec/dovecot/deliver -d ${recipient}
Открываем на редактирование /etc/postfix/main.cf и добавляем в него строки:
#Описываем доступ к локальным почтовым ящикам
virtual_mailbox_domains = test.com
virtual_mailbox_base = /var/spool/mail
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = hash:/etc/postfix/virtual
home_mailbox = Maildir/
#Описываем авторизацию по SMTP для клиентов не из доверенной зоны
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
Добавляем в блок smtpd_recipient_restrictions сразу после permit_mynetworks, строку:
permit_sasl_authenticated,
То есть этот блок будет выглядеть таким образом:
smtpd_recipient_restrictions = permit_mynetworks,
permit_sasl_authenticated,
check_helo_access hash:/etc/postfix/helo.list,
check_sender_access hash:/etc/postfix/ext_sender,
reject_unauth_destination,
reject_unknown_sender_domain,
reject_unknown_recipient_domain,
reject_non_fqdn_recipient,
reject_non_fqdn_sender,
reject_non_fqdn_hostname,
reject_invalid_hostname,
reject_unknown_hostname
Теперь создадим пользователя и почтовый ящик к нему:
Логин user@test.com
Пароль user
Адрес user@test.com
Создадим необходимые файлы в Postfix:
#touch /etc/postfix/vmailbox
#touch /etc/postfix/virtual
Пропишем в Postfix данные о новом почтовом ящике. Для этого в файл /etc/postfix/vmailbox допишем строку:
user@test.com test.com/user/
Создадим для примера алиас на этот почтовый ящик. Для этого в файл /etc/postfix/virtual допишем строку:
user1@test.com user@test.com
Прохешируем эти два файла:
#postmap /etc/postfix/virtual
#postmap /etc/postfix/vmailbox
Теперь нужно перезапустить Postfix:
#/etc/init.d/postfix restart
Внесем данные о нашем пользователе в Dovecot.
Создадим файл с паролями:
#touch /etc/dovecot/pass
Сгенерируем хеш пароля для нашего пользователя
# dovecotpw -s DIGEST-MD5 -u user@test.com
Введем пароль на его запрос. Полученные данные внесем в файл /etc/dovecot/pass:
user@test.com:{DIGEST-MD5}bc5f0e9cb2049bb07d35bb7ad5b89cf4
Теперь можно подключаться к нашему серверу почтовым клиентом и проверять, как все работает.
------------------------
Восстановление сайтов из Вебархива
Размещение по доскам объявлений России
ТРИО теплый пол отзыв
Заработок на сокращении ссылок
Earnings on reducing links
Код PHP на HTML сайты
Категория: Компьютерные советы
Комментарии |