|
|
# Установка почтового сервера
|
|
|
## Сначала устанавливаем 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
|
|
|
``` |