Преимущество протокола IMAP перед POP, которые используются агентами доступа для получения почты от сервера, заключается в возможности доставки сообщений по одному и улучшенной обработке больших файлов, прикреплённых к письму.
В заданиях используйте домен studX.start.myoffice.ru (193.32.63.170+X), порты 25, 587, 993.
В заданиях используйте домен studX.myoffice.ru (193.32.63.170+X), порты 25, 587, 993.
```
```
________
| |
| клиент | (Thunderbird на ноутбуке,
|________| подключается по IMAPS протоколу на порт 993)
|
| DNS A stud15.myoffice.ru -> 193.32.63.185
роутер public IP 193.32.63.185:[25,587,993] -> private IP 10.160.179.25:[25,587,993]
|
| ens18 в vlan499 с доступом в интернет с IP 10.160.179.25/24
@ -48,12 +49,30 @@
# 1.
Установите и настройте MTA (Message Transfer Agent) агент Postfix. Страница документации основного конфигурационного файла `man postconf.5`. Онлайн документация доступна по ссылке http://postfix.cs.utah.edu/postfix-manuals.html.
Используйте параметры в конфигурации `/etc/postfix/main.cf` для будущей интеграции с dovecot:
Проверьте работоспособность, отправив письмо командой `mail` или `sendmail` на свой личный почтовый адрес. После составления письма завершите ввод символом конца файла Ctrl+D или вводом точки.
```
$ mail -s "This is a test mail from postfix stud15" <recepientemailaddress>
$ sendmail stud15.start.myoffice.ru
To: <recepientemailaddress>
From: stud15.start.myoffice.ru
$ mail -s "This is a test mail from postfix stud15" <emailполучателя>
$ sendmail <emailполучателя>
Subject: This is a test mail from postfix stud15
Hello, will this mail be delivered?
Best regards,
@ -61,12 +80,175 @@ Postfix MTA
```
# 2.
Заведите почтовые ящики noreply@studX.start.myoffice.ru и logs@studX.start.myoffice.ru. Протестируйте отправку почты с ящика noreply. Протестируйте приём программно-сгенерированной почты на ящик logs, например от демона cron.
Заведите почтовые ящики `noreply@studX.myoffice.ru` и `logs@studX.myoffice.ru`. Протестируйте отправку почты с ящика `noreply`. Протестируйте приём программно-сгенерированной почты на ящик `logs`, например от демона `cron`.
# 3.
Установите и настройте DA (Delivery Agent) агент Dovecot.
Проверьте работоспособность из клиента Thunderbird или аналога. Укажите в качестве IMAP сервера studX.start.myoffice.ru порт 993, шифрование TLS.
Используйте следующую конфигурацию:
```
disable_plaintext_auth = yes
mail_privileged_group = mail
mail_location = maildir:~/mail
#set mailbox location to Maildir style
userdb {
driver = passwd
}
passdb {
args = %s
driver = pam
}
protocols = "imap"
namespace inbox {
inbox = yes
mailbox Trash {
auto = subscribe
special_use = \Trash
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Spam {
auto = subscribe
special_use = \Junk
}
mailbox Archive {
auto = subscribe
special_use = \Archive
}
}
#create and autosubscribe to some default folders
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
```
Проверьте работоспособность из клиента Thunderbird или аналога. Подключите в клиенте почтовые ящики, созданные ранее. Укажите в качестве IMAP сервера studX.myoffice.ru порт 993, шифрование TLS. Подтвердите, что вы доверяете самоподписанному сертификату.
# 4.
Вместо самоподписанных сертификатов используйте сертификаты letsencrypt, полученные на почтовом сервере с помощью утилиты `certbot`. Следуйте инструкциям на официальном сайте (https://certbot.eff.org/instructions?ws=other&os=debianbuster) для установки пакета и получении сертификата.
```
# sudo apt update
# sudo apt install snapd
# sudo snap install core; sudo snap refresh core
# sudo snap install --classic certbot
```
Временно остановите веб-сервер на 80 порту, если он работает. Certbot запустит свой сервер-агент, чтобы проверить, что вы владете доменом studX.myoffice.ru https://letsencrypt.org/ru/how-it-works/. Сертификаты будут помещены в папку `/etc/letsencrypt/live/` При запросе сертификатов учитывайте лимит обращений https://letsencrypt.org/ru/docs/rate-limits/, достижение которых приведёт к блокировке на неделю.
```
# certbot --standalone
Account registered.
Please enter the domain name(s) you would like on your certificate (comma and/or
space separated) (Enter 'c' to cancel): stud15.myoffice.ru
Requesting a certificate for stud15.myoffice.ru
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/stud15.myoffice.ru/fullchain.pem
Key is saved at: /etc/letsencrypt/live/stud15.myoffice.ru/privkey.pem
This certificate expires on 2023-01-20.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
```
Проверьте, что расписание обновления сертификата включено командой `systemctl list-timers`. Добавьте также расписание для перезагрузки postfix, так как после обновления сертификатов postfix автоматически их не подхватывает. Например в cron:
```
0 0 * * 1 systemctl reload postfix
```
Измените путь к ключу `privkey.pem` и сертификату `fullchain.pem` в кофигурации postfix `/etc/postfix/main.cf` (параметры `smtp_tls_cert_file` и `smtpd_tls_key_file`) и dovecot `/etc/dovecot/conf.d/10-ssl.conf` (параметры `ssl_cert`, `ssl_key`). Перезагрузите postfix и dovecot.
Переподключите клиент одного из пользователей, и проверьте, что вы можете принимать и отправлять почту.
# 5. *
Спам сильно повлиял на систему электронной почты. Появилось множество проверок для такого почтового трафика, которые могут помешать письму дойти до адресата. TLS увеличит вероятность доставки письма если только письмо передаётся на сервер, принимающий исключительно TLS трафик. Увеличить вероятность доставки также позволяет правильная настройка:
- SPF,
- DKIM (DomainKeys Identified Mail),
- DMARC (Domain-based Message Authentication, Reporting and Conformance),
- MAT-STS записей,
- включение поддержки DANE.
## 5.1
Настройте SPF сами или обратитесь к владельцу домена для внесения txt DNS записи следующего вида:
```
Имя: stud15.myoffice.ru.
Значение: v=spf1 ip4:193.32.63.185 a mx ~all
```
## 5.2
Настройте SPF сами или обратитесь к владельцу домена для внесения txt DNS записи следующего вида:
```
Имя: _dmarc.stud15.myoffice.ru.
Значение: v=DMARC1; p=none; aspf=r; sp=none
```
## 5.3
Настройте DKIM, установив пакеты `opendkim` и `opendkim-tools`:
```
$ sudo apt install opendkim opendkim-tools -y
$ sudo systemctl enable opendkim
$ sudo systemctl start opendkim
```
Для настройки следуйте инструкциям `man opendkim` или онлайн инструкциям http://www.opendkim.org/opendkim-README. Сгенерировать ключи и запись для DNS вы можете утилитой `opendkim-genkey` в директории `/etc/dkimkeys/stud15.myoffice.ru`. После генерации файлов поменяйте владельца на пользователя и группу `opendkim`.
```
# mkdir /etc/opendkim/stud15.myoffice.ru
# opendkim-genkey --domain stud15.myoffice.ru --selector mail
# chown opendkim:opendkim mail.private
# cat mail.txt
mail._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
"6JaGZbCg9E9ONpKhb8Rf5E1StHyC19B24/YVakxURVr5KHlxgoR7NBLCjWU4k631LpTRbgueY/zQJlKg+bmZO43cC/KdTHggECxhFKzE5AugJZtd64CeFByGMTdIF6x0+tGS6w4QIDAQAB" ) ; ----- DKIM key mail for stud15.myoffice.ru
```
Также вы можете воспользоваться онлайн сервисами для генерации ключей, например https://www.dynu.com/NetworkTools/DKIMWizard. Внесите полученную txt DNS запись сами или обратитесь к владельцу домена для внесения записи в DNS.
Отредактируйте `/etc/opendkim.conf`, чтобы изменить или добавить следующие параметры: