Удобно е да изпращате важни уведомления от услуги и програми в Linux (Debian) по имейл. За тази цел настройваме Linux Mail сървър (SMTP сървър) exim4 само за изпращане. Допълнително настройваме така, че писмата от exim4 да не попадат в спам.
Защо само за изпращане?
Обработката на входящи имейли изисква значителни ресурси. А ние имаме нужда само да изпращаме имейли с уведомления и предупреждения от услуги и програми, без да получаваме нищо. Затова няма да се занимаваме с обработката на входящи имейли.
Инсталация и конфигуриране на Linux пощенски сървър.
Exim4 е прост SMTP сървър. Инсталираме го с командата:
apt install exim4
Настройка на exim4:
dpkg-reconfigure exim4-config
Първият прозорец ни информира, че ако настройваме пощенския сървър exim4 на система с динамичен IP адрес, трябва да настроим изпращането на изходяща поща към друг SMTP сървър, наречен smarthost, който ще изпраща писмата. В противен случай писмото от динамичен IP адрес ще бъде блокирано от получаващата поща система за защита от спам.

Аз имам статичен IP адрес и настройката на smarthost няма да бъде разглеждана тук.
Ще изпращаме имейли самостоятелно, директно чрез SMTP. Избираме опцията интернет сайт; имейлите се изпращат и получават директно чрез SMTP:

В полето Име на системен имейл посочваме пълното hostname на системата, същото като във файла /etc/hostname:

Не искаме да се занимаваме с обработката на входящи имейли, затова забраняваме входящи връзки. За тази цел в полето IP-addresses to listen on for incoming SMTP connections въвеждаме локален IP адрес:
127.0.0.1

Полето Други дестинации, за които се приема поща оставяме празно:

Полето Domains to relay mail for оставяме празно също:

Следващото поле Машини за препращане на пощата също оставяме празно:

На въпросът Keep number of DNS-queries minimal (Dial-on-Demand)? отговаряме Не:

На следващата стъпка избираме стойността по подразбиране mbox format in /var/mail/:

Следващият въпрос Split configuration into small files? Отговаряме Не.

И тогава ще има един голям конфигурационен файл /etc/exim4/exim4.conf.template, вместо много малки файлов. Това завършва настройката на exim4.
Стартиране на exim4
За да стартирате Linux пощенския сървър exim4, въведете командата:
/etc/init.d/exim4 start

Логовете на exim4 по подразбиране се намират във файл /var/log/exim4/mainlog, лесно може да ги прегледате с командата:
tail -n 20 /var/log/exim4/mainlog
Тестване на функционалността
Ще проверим работоспособността на Linux пощенски сървър, като изпратим имейл до нашия пощенски кутия:
echo "Hello, world!" | mail -s 'Subject' your_mail@yandex.ru

Проверяваме пощенската си кутия. Ура! Имаме съобщение.

Нашето имейл, изпратен от exim4, не е бил поставен от пощенския сървър на Яндекс в папката Спам. Въпреки това, до изпращача се извежда съобщение „Не сме сигурни в автентичността на изпращача на това писмо. Възможно е данните да са били подменени“.
Ако изпратите същият имейл на вашия Google пощенски кутия, пощенският сървър на Google няма да го достави, като го отбележи като спам.
Настройки, за да не попадат писмата в спам.
Ще направим допълнителни настройки, за да не бъдат блокирани или класирани като спам електронни писма от exim4 от пощенските сървъри.
PTR записка (обратна DNS записка)
PTR записът се нарича още обратна DNS запис. С помощта на DNS записа по име на домейн може да се определи IP адреса на сървъра, на който се намира домейнът. А с помощта на PTR записа, обратно, по IP адреса на сървъра може да се определи свързаното с този IP адрес домейнно име.
Пощенските сървъри активно използват PTR записи: взимат IP адреса, от който е пристигнал имейлът, проверяват PTR записа за този IP и сравняват полученото домейнно име с указаното домейнно име на изпращача на имейла. Ако домейнните имена не съвпадат, имейлът попада в спам или въобще се блокира.
Ще проверим DNS записа за домейн ya.ru:
host ya.ru

И сега ще проверим PTR записа за IP адрес 87.250.250.242:
host 87.250.250.242

За домейн ya.ru PTR записката е правилно настроена. В моя случай обаче PTR записката е настроена неправилно:

Не е възможно да се коригира тази некоректна PTR запис. Просто липсва услугата за коригиране на PTR запис от доставчика на статичен IP адрес, на който е инсталирана Linux система с exim4.
Нищо! Ще настроим две записи: SPF и DKIM, и писмата няма да бъдат блокирани и да попадат в спам.
Запис за SPF
SPF записката указва на пощенските сървъри, от къде ще идват писма. SPF записката се вписва в DNS записите на домейна.
Влизаме в хостинга, избираме желания домейн, отиваме в раздела Управление на DNS записите, натискаме бутона Добавяне на запис:

Избираме тип на записа TXT. Стойност на записа:
v=spf1 +a +mx -all
v=spf1
– е версия, винаги е spf1;
+a
– позволено изпращането на писма от адреса, указан в запис A на домейна;
+mx
– разрешено изпращането на писма от адреса, посочен в MX записа на домейна;
-all
– отхвърляне на писма, които не отговарят на политиката.

Ура! SPF записката е добавена. Но трябва да изчакаме, докато актуализираните DNS записи на домейна се обновят на сървърите.
Проверка на работоспособность на записката SPF, изпращаме отново тестови имейли до своя Яндекс и Google пощенски кутии. О, сега пощенският сървър на Яндекс съобщава, че Изпращачът на имейла е потвърден:

И пощенският сървър на Google не блокира писмото, както по-рано, а го пропусна, но го постави в папка Спам:

DKIM запис (подписка към писма)
DKIM – това е цифрова подпис на електронни писма. Подписът гарантира, че писмото е изпратено от домейнът, който е посочен като изпращащ домейн в самото писмо.
При получаване на имейл с цифрова подпис, пощенският сървър проверява подписа с публичния ключ, който е указан в DNS записите на домейна. Ако подписът не успее да премине проверката, изпращачът не е достоверен и пощенският сървър решава какво да направи с имейла, като се ръководи от своята политика.
Инсталираме необходимите пакети за създаване на DKIM запис:
apt install opendkim opendkim-tools
Създаваме директория за съхранение на отворените и заключителните ключове, необходими за генериране на цифрови подписи:
mkdir /etc/exim4/dkim
Създаваме двойка ключове (публичен и частен) с помощта на командата:
opendkim-genkey -D /etc/exim4/dkim/ -d domain_name -s mail
където /etc/exim4/dkim/
е директорията за съхранение на ключовете, създадена на предишния стъпка;
domain_name
– пълното домейнно име, същото като във файла /etc/hostname;
„mail
– това е така наречена DKIM селектор.“
След като изпълните командата в директорията /etc/exim4/dkim/, ще се появят 2 файла: mail.private – частен ключ и mail.txt – публичен ключ. Преименуваме частния ключ:
mv /etc/exim4/dkim/mail.private /etc/exim4/dkim/domain_name.key
където domain_name
– пълното домейнно име, същото като във файла /etc/hostname.
Променям собственика на директорията /etc/exim4/dkim/ и всички вложени файлове:
chown -R Debian-exim:Debian-exim /etc/exim4/dkim/
Въвеждаме промени в конфигурационния файл /etc/exim4/exim4.conf.template, за да използваме създаденият частен ключ от exim4. В конфигурационния файл /etc/exim4/exim4.conf.template преди секцията remote_smtp добавяме следния текст:
#DKIM
DKIM_DOMAIN = domain_name
DKIM_KEY_FILE = /etc/exim4/dkim/DKIM_DOMAIN.key
DKIM_PRIVATE_KEY = ${if exists{DKIM_KEY_FILE}{DKIM_KEY_FILE}{0}}
DKIM_SELECTOR = mail
където domain_name
– пълното домейнно име, същото като във файла /etc/hostname.
Презареждане на exim4, за да влязат в сила промените:
/etc/init.d/exim4 restart
Ще добавим DKIM запис в DNS записите на домейна. За тази цел влизаме в хостинга, избираме нужния домейн и отиваме в раздела Управление на DNS записите, след това натискаме бутона Добави запис. Добавяме TXT запис за поддомейн mail._domainkey. Стойността на записа копираме от отворения ключ /etc/exim4/dkim/mail.txt.

Ура! DKIM записката е добавена.
Ще изчакаме докато DNS записите се актуализират на сървърите и отново ще изпратим тестови имейли до Яндекс пощенската кутия и до Google пощенската кутия. Вижте! Яндекс пощенският сървър откри цифрова подпис на имейла:

Ох! Пощенският сървър на Google постави писмото в папка Входящи:

Изводи
Ние настроихме Linux Mail сървър (exim4) за изпращане на електронни писма. Допълнително го конфигурирахме, за да не бъдат блокирани от пощенските сървъри, като ги защитихме от спам. Сега всички важни уведомления от скриптове и програми могат да бъдат изпращани на пощенската кутия. Освен това можем да изпращаме електронни писма, които не изискват отговор, на клиенти или потребители на сайта. Например, електронно писмо с изискване за активиране на новорегистриран потребител на сайта.
Как това може да помогне на бизнеса?
Изпращането на имейл, който не е от безплатен пощенски акаунт, а от домейн, където е разположен бизнес уебсайтът, е сериозно! Ако също така имейлите от домейн пощата се доставят успешно и не попадат в спама на клиентите, каква друга помощ бизнесът може да иска???
Коментари