Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ FreeBSD and Nix ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Простейшая связка Postfix + Dovecot с виртальными учетками Linux Ubuntu 20.04



Простейшая связка Postfix + Dovecot с виртальными учетками Linux Ubuntu 20.04


Установка Postfix

Обновляемся:
sudo apt update

Выбрать Internet site и ввести FQDN - yor_domain_name.com:
sudo apt install postfix mailutils


Создаем виртуальный почтовые ящики:

sudo groupadd -g 5000 vmail
sudo useradd -g vmail -u 5000 vmail -d /home/vmail -m

mkdir /home/vmail
chown vmail:vmail /home/vmail

sudo vi /etc/postfix/main.cf:
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
inet_interfaces = all
inet_protocols = all

virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_domains = yor_domain_name.com
virtual_mailbox_base = /home/vmail
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_minimum_uid = 1000
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

sudo vi /etc/postfix/vmailbox
support@yor_domain_name.com yor_domain_name.com/support/
user1@yor_domain_name.com yor_domain_name.com/user/
user2@yor_domain_name.com yor_domain_name.com/user/
@yor_domain_name.com yor_domain_name.com/catch-all/

sudo vi /etc/postfix/virtual
support@yor_domain_name.com, user1@yor_domain_name.com, user2@yor_domain_name.com

sudo postmap /etc/postfix/vmail
sudo postmap /etc/postfix/virtual

systemctl restart postfix


Установка Dovecot

sudo vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain
!include auth-passwdfile.conf.ext

sudo vi /etc/dovecot/conf.d/10-master.conf
service imap-login {
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {  }
}

service pop3-login {
  inet_listener pop3 {
    port = 110
  }
  inet_listener pop3s {  }
}

service submission-login {
  inet_listener submission {  }
}

service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    mode = 0666
    user = postfix
    group = postfix
  }

}

service imap {}

service pop3 {}

service submission {}

service auth {
  unix_listener auth-userdb {
    mode = 0666
    user = postfix
    group = postfix
  }
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }
}

service auth-worker {}

service dict {
  unix_listener dict {  }
}


sudo vi /etc/dovecot/conf.d/auth-passwdfile.conf.ext
passdb {
  driver = passwd-file
  args = scheme=CRYPT username_format=%u /etc/dovecot/users
}
userdb {
  driver = passwd-file
  args = username_format=%u /etc/dovecot/users
}

sudo vi /etc/dovecot/users
user1@yor_domain_name.com:{plain}qwe$3frfA::::::
user2@yor_domain_name.com:{plain}r4frr$%rg::::::
support@yor_domain_name.com:{plain}xVBerw33::::::


Логи dovecot на случай возникновеня ошибок и проблем

Где хранятся:
# doveadm log find
Debug: /dev/null
Info: /dev/null 
Warning: /var/log/dovecot.log
Error: /var/log/dovecot.log
Fatal: /var/log/dovecot.log

Где отключить:
# vi /etc/dovecot/conf.d/10-logging.conf
log_path = /dev/null
info_log_path = /dev/null
debug_log_path = /dev/null

Перезагрузка:
# systemctl restart dovecot


Если возникает ошибка:
postmap: fatal: open database /etc/postfix/vmail.db: Permission denied

sudo postmap /etc/postfix/vmail
sudo postmap /etc/postfix/virtual


Если возникает ошибка:
Error: Couldn't drop privileges: User is missing UID (see mail_uid setting)

/etc/dovecot/conf.d/10-mail.conf

# Указываем путь, по которому будет хранится пользовательская почта, также указываем формат(maildir)
# %u - полное имя пользователя(с доменной частью: user@domail.local)
# %n - короткое имя пользователя(без доменной части: user)
# %d - доменная часть(domail.local), может быть пустой
# %h - домашний каталог, тоже может быть пустым
  
mail_location = maildir:/home/vmail/%d/%n

# Два нижних параметра очень важны, они указывают дефолтные uid и gid пользователя, если эти данные
# не удалось извлечь из AD. Эти данные используются для установки прав доступа к maildir пользователя.
# Почтовику нужно знать хотя бы uid, иначе, если не указать эти данные, в логах будут ошибки такого типа:
# "Couldn't drop privileges: User is missing UID (see mail_uid setting)". У пользователей в AD есть такие
# поля: uidNumber и gidNumber, но они пусты по-умолчанию, их можно задать через ADSI Edit, но это не иммет
# никакого смысла, ведь наши акаунты виртуальные. Соответственно создаем пользователя vmail(думаю, не надо 
# показывать как это делать) и смотрим идентификатор этого пользователя и идентификатор его группы
# (id vmail), затем вписываем их в параметры ниже. Теперь вся почта будет принадлежать пользователю vmail.
# Поля, в которых Dovecot ищет нужную информацию задаются параметром user_attrs.  

mail_uid = 5000
mail_gid = 5000

Послать письмо:
echo "Test mail" | mail -s "Test mail" user@yor_domain_name.com

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект