Skip to content

RudinMaxim/email-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Почтовый сервер (Postfix + DOVECOT + Goleng)

Полезные ресурсы для проверки почтового сервера:

  1. https://www.mail-tester.com/ - проверка конфигурации почтового сервера и рекомендации по улучшению.
  2. https://www.wormly.com/test-pop3-mail-server - проверк POP3 сервера.
  3. https://dmarcian.com/dkim-inspector/ - проверк DKIM.

Для подключения к серверу, можно использовать PuTTY


Настройки DNS

Тип записи Имя хоста Содержание
A @[1] 88.888.88.888[2]
MX @[1] mail.example.com
A mail. 88.888.88.888[2]
TXT @[1] v=spf1 a mx ip4:88.888.88.888[2] ~all
TXT mail v=spf1 a mx ip4:88.888.88.888[2] ~all
TXT(DKIM) mail._domainkey.example.com v=DKIM1; k=rsa; p=DKIM public key[3]
TXT(DMARC) _dmarc v=DMARC1; p=reject; rua=mailto:[email protected][4]
TXT(SPF) @[1] v=spf1 a mx ip4:88.888.88.888[2] ~all
  1. "@" обозначает запись для корневой зоны домена (example.com).
  2. "88.888.88.888" - это пример IP-адреса, его нужно заменить на ваш реальный IP-адрес.
  3. "DKIM public key" - здесь нужно вставить реальный открытый DKIM-ключ. DKIM
  4. "[email protected]" - почтовый адрес для отчетов DMARC, его можно изменить.

Проверить сведенья DNS nslookup mail.example.com, должен возвращать IP-адрес VPS сервера. Если другой IP-адрес, обратиться к провайдеру.

Проверим открыта ли 25-я TCP-порт на VPS telnet mail.example.com 25, должен быть открыт. Если закрыто обратиться к провайдеру.


Настройка сервера (Ubuntu 18.04, 20.04, 22.04)

Начальная настройка

  1. Создайте пользователя группы sudo и проверьте наличие прав. После этого перейдите на этого пользователя.
  • sudo adduser admin - создание пользователя, в нашем случае админ
  • sudo adduser admin sudo - добавление в группу sudo
  • su - admin - тест пользователя
  1. Настройте часовой пояс: sudo dpkg-reconfigure tzdata, выберите ближайший к пользователю город.
  2. Обновите систему: sudo apt-get update && sudo apt-get -y upgrade, это может занять некоторое время.
  • 2 пункт
  • N
  • ok

Установка Postfix

  1. Установите mailutils: sudo apt-get install mailutils.
  2. В диалоговых окнах выберите:
  • Internet Site
  • example.com - имя домена
  • ok

Если модального окна нет, то запустите sudo dpkg-reconfigure postfix.

Вы можете проверить версию Postfix: sudo systemctl status postfix

Настройка Postfix

  1. Откройте конфиг Postfix: sudo nano /etc/postfix/main.cf.
  2. Измените следующие поля:
myhostname = example.com
mydestination = $myhostname, example.com, localhost.com, localhost
inet_interfaces = loopback-only
virtual_alias_maps = hash:/etc/postfix/virual

# если нужен субдоменом
masquerade_domains = your_main_domain
  1. Добавьте Postfix в автозагрузку: sudo systemctl enable postfix
  2. Переименуйте имя хоста: sudo nano /etc/hostname и замените на example.com или командой sudo hostnamectl set-hostname example.com.
  3. Перезагрузить сервер командой: sudo reboot.
  4. Создайте файл для пересылки почты: sudo nano /etc/postfix/virual.

Слева укажите системного пользователя, справа через табуляцию - адрес для доставки почты.

  1. Выполните sudo postmap /etc/postfix/virual
  2. Перезапустите Postfix: sudo systemctl restart postfix

Вы можете просмотреть логи в директории sudo tail -f /var/log/mail.log или sudo tail -f /var/log/mail.err.

Отправить сообщение можно командой echo "Hello body" | mail -s "hello subject!" [email protected].

Настройка Dovecot

  1. Установите Dovecot: sudo apt-get install dovecot-imapd dovecot-pop3d.
  2. После установки, перезапустить службу – dovecot. sudo systemctl restart dovecot
  3. Откроем настройки sudo nano /etc/dovecot/dovecot.conf и добавьте (измените) эту строку protocols = pop3 pop3s imap imaps

Для работы SPF и DMARC достаточно добавить их DNS записи, для работы DKIM нужно его установить на сервере.

Настройка DKIM

  1. Для установки пакета выполните такую команду: sudo apt-get install opendkim opendkim-tools.
  2. Затем запускаем и добавляем в автозагрузку: sudo systemctl start opendkim и sudo systemctl enable opendkim
  3. Создаем каталог для ключей, такой командой: sudo mkdir /etc/opendkim
  4. Генерируем ключ такой командой: sudo opendkim-genkey -D /etc/opendkim/ --domain example.com --selector mail
  5. Далее откроем файл с DKIM ключем, комадной sudo cat /etc/opendkim/mail.txt
  6. После добавим запись в DNS
  7. Теперь внесем изменения в конфигурационном файле: sudo chown -R opendkim:opendkim /etc/opendkim и sudo nano /etc/opendkim.conf

Здесь нужно раскоментировать и добавить несколько строк:

AutoRestart Yes
AutoRestartRate 10/1h
Umask 002
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Mode sv
Canonicalization relaxed/simple
UserID opendkim:opendkim
Socket inet:8891@localhost
PidFile /var/run/opendkim/opendkim.pid
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
SignatureAlgorithm rsa-sha256
  1. Добавим наш домен в доверенные хосты: sudo nano /etc/opendkim/TrustedHosts и добовляем в файл свой домен (напирмер, example.com)

  2. Создадим файл с таблицей ключей: sudo nano /etc/opendkim/KeyTable.

Добавим в него следующую строку:

mail._domainkey.example.com example.com:mail:/etc/opendkim/dkim.private
  1. Путь к подписи: sudo nano /etc/opendkim/SigningTable

Добавим в него следующую строку:

*@example.com mail._domainkey.example.com

Перезапускаем сервисы sudo systemctl restart opendkim и sudo systemctl restart postfix

Docker

docker build -f Dockerfile.db . docker build -f Dockerfile.web .

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published