Установка почтового сервера
Сначала устанавливаем Postfix и Dovecot:
$ sudo apt install postfix dovecot-core dovecot-imapd
Отказываемся от вариантов настроек.
Создадим отсутствует файл конфигурации:
$ Sudo touch /etc/postfix/main.cf
Создадим место для хранения почты на сервере для нашего почтового домена cnmcyber.com:
mkdir -p /var/spool/mail/cnmcyber.com
Создадим группу virtual и пользователя virtual :
groupadd -g 5000 virtual
useradd -g virtual -u 5000 virtual
Укажем владельца и права доступа к папке с почтой:
chown virtual: virtual /var/spool/mail/cnmcyber.com
chmod 770 /var/spool/mail/cnmcyber.com
Открываем на редактирование файл /etc/postfix/main.cf и приведем его к следующему виду:
smtpd_banner = $myhostname ESMTP (ubuntu)
Так наш сервер будет представляться при отправлении и получении почты
biff = no
Следует ли использовать местную службу Biff . Эта служба отправляет уведомления о новой почте пользователям, которые запросили уведомление о новой почте с помощью команды UNIX « biff y». По соображениям совместимости эта функция включена по умолчанию. В системах с большим количеством интерактивных пользователей служба biff может снизить производительность.
append_dot_mydomain = no
Запрещаем автоматически дополнять неполное доменное имя в адресе письма
queue_directory = /var/spool/postfix
Указываем папку очереди для Postfix
myhostname = mail.cnmcyber.com
Указываем имя нашего хоста
alias_maps =
mydestination = localhost
virtual_mailbox_domains = cnmcyber.com
virtual_mailbox_base = /var/spool/mail/
Файл с описанием почтовых алиасо
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_maps = hash:/etc/postfix/vmailbox ldap:/etc/postfix/ldap_virtual_mailbox_maps
Файл с описанием почтовых ящиков
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
mynetworks = 127.0.0.0/8
Указываем список доверенных подсетей
recipient_delimiter = +
inet_interfaces = all
Принимаем соединения на всех интерфейсах
Описываем авторизацию через Dovecot
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_helo_required = yes
Обязательно при соединении требовать helo Правила, действующие на этапе команды rcpt to
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
DKIM
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891 # рядок має співпадати з рядком /etc/default/opendkim
non_smtpd_milters = inet:localhost:8891 # рядок має співпадати з рядком /etc/default/opendkim
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
smtpd_use_tls = yes
mtpd_tls_key_file = /etc/letsencrypt/live/mail.cnmcyber.com/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.cnmcyber.com/fullchain.pem
Откроем основной файл конфигурации /etc/dovecot/dovecot.conf и приведем его к следующему виду:
По какому протоколу работаем
protocols = imap sieve
listen = *
Слушаем соединения на всех интерфейсах по протоколу IPv4
base_dir = /var/run/dovecot/
instance_name = dovecot
login_greeting = Dovecot ready.
Строка приветствия
shutdown_clients = yes
Отключать клиентские соединения при исключении или перезагрузке мастер-сервиса
doveadm_socket_path = doveadm-server
Сокет управляющего сервиса doveadm
!include conf.d/*.conf
Теперь переходим к папке /etc/dovecot/conf.d
Откроем в ней файл 10-auth.conf пропишем в нем две строки
disable_plaintext_auth = no
auth_mechanisms = plain login
Расскоментируем в конце.
!include auth-ldap.conf.ext
!include auth-passwdfile.conf.ext
Далее отредактируем файл 10-mail.conf
mail_location = maildir:/var/spool/mail/cnmcyber.com/%n
mail_uid = 5000
mail_gid = 5000
mail_privileged_group = virtual
valid_chroot_dirs = /var/spool/mail/
Далее отредактируем 10-master.conf
service imap-login {
inet_listener imap {
}
inet_listener imaps {
port = 993
ssl = yes
}
}
service pop3-login {
inet_listener pop3 {
}
inet_listener pop3s {
}
}
service lmtp {
unix_listener lmtp {
}
}
service imap {
}
service pop3 {
}
service auth {
unix_listener auth-userdb {
mode = 0777
}
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
}
unix_listener auth-master {
group = virtual
mode = 0660
user = virtual
}
user = root
}
service auth-worker {
}
service dict {
unix_listener dict {
}
}
Напоследок надо удалить файл 15-mailboxes.conf Создание почтовых ящиков и псевдонимов Теперь создадим пользователя и почтовый ящик для него:
Логин - user@cnmcyber.com Пароль - password
Адрес - user@cnmcyber.com
Создадим необходимые файлы в Postfix:
Touch /etc/postfix/vmailbox
Touch /etc/postfix/virtual
Пропишем в Postfix данные о новой почтовый ящик. Для этого в файл /etc/postfix/vmailbox допишем строчку:
user@cnmcyber.com cnmcyber.com/user/
Создадим алиас на этот почтовый ящик. Для этого в файл / etc / postfix / virtual допишем строчку:
postmaster@cnmcyber.com user@cnmcyber.com
И создадим индексированную карту из этих файлов:
postmap /etc/postfix/virtual
postmap /etc/postfix/vmailbox
Теперь нужно перезапустить Postfix:
Service postfix restart
Внесем данные о нашем пользователя в Dovecot.
Если посмотреть файл auth-passwdfile.conf.ext то мы увидим, что логины и пароли пользователей должны храниться в файле /etc/dovecot/users схеме шифрования CRYPT.
Создадим запись для пользователя user@cnmcyber.com с паролем user.
doveadm pw -s CRYPT -u user@cnmcyber.com -p password
Полученные данные внесем в файл /etc/dovecot/users
user@cnmcyber.com:{CRYPT}1ULAgaZzWaj6c:5000:500