Обзор и установка почтового сервера iRedMail. Выбор почтового сервера для среднего бизнеса — свой или облачный

Электронная почта - это не просто веб-сайт, на котором вы можете обмениваться сообщениями, такой как вконтакте или фейсбук. Это более сложный механизм, который работает с помощью собственного протокола. В сети почтовые клиенты отправляют письма на почтовый сервер, затем они уже направляются к адресату. Именно потому мы можем отправлять почту всем адресатам, независимо от их домена, mail, gmail, yandex и т д. На низком уровне эти сервисы работают по одному протоколу.

Чтобы отправить сообщение почтовый сервер использует программу MTA (Mail Transfer Agent).

MTA - это приложение, которое определяет маршруты и передает электронную почту от одного узла в сети к другому. Для этого используется протокол SMTP - Simple Mail Transfer Protocol или простой протокол передачи почты.

Для отправки почты используется почтовый клиент, он может отправлять и получать письма от почтового сервера и тоже использует SMTP, но это необязательно MTA.

MTA работают на сервере, а на компьютерах используются почтовые клиенты, такие как Mozilla Thunderbird, Evolution, Outlook и т д. В этой статье мы рассмотрим лучшие почтовые серверы Linux.

1. Sendmail

Почтовый сервер Sendmail теперь известный как Proofpoint, после того как Proofpoint Inc приобрела Sendmail Inc. На сегодняшний день - это самый популярный и самый старый MTA для операционной системы Linux. Если сравнивать Sendmail и более современные почтовые серверы, то здесь есть много ограничений.

Настройка сервера очень сложная, а система безопасности слабая, поэтому были разработаны альтернативные почтовые серверы. Но все же он достаточно хорошо справляется со своей задачей. Продолжим наш обзор почтовых серверов linux более современными вариантами.

2. Postfix

Postfix - это еще один кроссплатформенный, популярный почтовый сервер, который был разработан Wietse Zweitze Venema для собственного почтового сервера, когда он работал в научно-исследовательском отделе IBM.

Он составляет сильную конкуренцию для очень популярного Sendmail и может работать на Linux, MacOS, Solaris и других Unix подобных системах.

Здесь позаимствовано много свойств Sendmail, но есть и множество отличий и улучшений. Postfix быстрый, безопасный и легкий в настройке. Основные функции:

  • Контроль пропускаемой почты;
  • Поддержка нескольких протоколов;
  • Поддержка баз данных;
  • Поддержка почтовых ящиков;
  • Поддержка изменений адресов;

3. Exim

Exim - это свободный почтовый сервер для Linux, разработанный также для Mac OS, Solaris и других Unix подобных систем. Здесь есть огромные возможности по маршрутизации почты, а также механизмы слежения за входящим потоком.

Основные возможности:

  • Нет поддержки протоколов POP3 и IMAP;
  • Поддерживает протоколы RFC 2821 SMTP и RFC 2033 LMTP для передачи сообщений электронной почты;
  • Настройка списков доступа, сканирования содержимого, шифрования, контроля маршрутизации и многое другое;
  • Отличная документация;
  • Поддерживаются плагины, например Lemonade, который добавляет поддержку протоколов POP3 и IMAP.

4. Qmail

Qmail - еще один свободный и современный сервер отправки электронной почты с открытым исходным кодом. Он простой, надежный и эффективный, предлагает широкие возможности безопасности.

Можно сказать, что это небольшой, но функциональный MTA. Вот его основные функции:

  • Работает не только на linux, но и на нескольких Unix подобных операционных системах, например: FreeBSD, Solaris, Mac OSX;
  • Простая и быстрая установка;
  • Автоматическая настройка хоста;
  • Четкое разделение между адресами, файлами и программами;
  • Полная поддержка адресных групп;
  • Позволяет каждому пользователю управлять своими рассылками;
  • Поддерживает VERP;
  • Поддерживает автоматическое предотвращение зацикливание рассылки;
  • Поддерживает менеджер списков рассылки ezmlm.

5. Mutt

Mutt - это небольшой, но мощный консольный клиент для Unix подобных систем. У него есть несколько интересных функций, несмотря на то что это всего лишь терминальный клиент:

  • Разделение сообщения на потоки;
  • поддержка IMAP и POP3;
  • Поддержка нескольких форматов почтовых ящиков: MBox, MH, Maildir, MMDF;
  • Поддержка статуса доставки;
  • Поддержка PGP / MIME (RFC2015);
  • Поддержка рассылок с помощью списков;
  • Полный контроль над заголовком сообщения;
  • Прост в установке и настройке;
  • Активное сообщество разработчиков и пользователей;

6. Alpine

Alpine - представляет из себя простой в использовании и быстрый клиент электронной почты. Он основан на системе обмена сообщениями Pine и отлично подходит как для опытных, так и для начинающих пользователей. Для получения справки можно воспользоваться встроенным инструментов подсказок.

Выводы

В этой статье мы рассмотрели как передается электронная почта по сети, а также лучшие почтовые серверы Linux (MTA). Еще мы затронули тему консольных почтовых клиентов. Для обработки почты на Losst используется Postfix. А какой почтовый сервер используете вы? Какой считаете лучшим? Почему? Напишите в комментариях!

12 июня 2010 в 20:58

Обзор и установка почтового сервера iRedMail

  • Настройка Linux

Доброго времени суток!

Представляю вашему вниманию обзор, установку и настройку замечательного пакета iRedMail на базе Debian Lenny.

iRedMail - это:

1) Полноценный почтовый сервер.
2) Работает под управлением Red Hat® Enterprise Linux (5.x), CentOS (5.x), Debian(5.0.x), Ubuntu (8.04, 9.04, 9.10), FreeBSD (7.x, 8.0).
3) Работает как и на обычной системе, так и под управлением виртуальной машины: пр. VMware, OpenVZ, Xen.
4) Поддержка архитектур i386 и x86_64.
5) Использует для установки и настройки совместимые компоненты, такие как Postfix, Dovecot, SpamAssassin и т.д.
6) При установке использует бинарные пакеты из вашего дистрибутива.
7) Проект с открытым исходным кодом, распространяемый под лицензией GPL v2.
8) Поддержка двух бэкэндов для хранения виртуальных доменов и пользователей: OpenLDAP и MySQL.
9) Безлимитное число поддержки доменов, пользователей, почтовых алиасов.
10) Поддержка двух Web-Интерфейсов (RoundCube и SquirrelMail).

Этот пакет очень удобен в настройке и установке.

1) Удобен этот пакет в том, что:
а. Не нужно много знаний, т.е. процесс установки и настройки совсем не сложный.
б. Требует минимум времени на разворот корпоративной почты. Я потратил на установку этой сборки буквально 20 минут.
в. В комплекте идет весь необходимый софт для почтового сервера.(Антивирус, Антиспам, 2 Web-Интерфейса(по выбору)

2) Аналогов данного пакета не существует.

Схема работы iRedMail:

Анти-Спам и Анти-вирус.
В качестве антиспама и антивируса выступают 2 популярных пакета, это SpamAssassin и ClamAV

Что поддерживает iRedMail для защиты почты:
1. Поддержка SPF (Sender Policy Framework).
2. Поддержка DKIM (DomainKeys Identified Mail).
3. Поддержка Greylist.
4. Поддержка «Белых списков» (на основании DNS имени и IP адреса)
5. Поддержка «Черных списков» (на основании DNS имени и IP адреса)
6. Поддержка «Черного списка» HELO запросов.
7. Поддержка HPR (HELO Randomization Prevention)
8. Поддержка Spamtrap.
9. Интерграция SpamAssassin
10. Интеграция ClamAV, автообновление вирусных баз.

Поддержка почтовых клиентов:

Почтовые клиенты с поддержкой POP3/POP3S и IMAP/IMAPS. Haпример: Mozilla Thunderbird, Microsoft Outlook, Sylpheed.

Установка iRedMail.

В качестве почтового сервера я выбрал iRedMail. Это сборка Postfix+LDAP(MySQL)+SpamAssassin+ClamAV+AmaViS+Dovecot+RoundCube (SquirrelMail) и т.д. В данной статье мы будем рассматривать настройку этого замечательного сервера на базе OpenLDAP.

Внимание! Не забудьте сменить example.com на имя вашего домена.

Немного поправим наше имя хоста:
vi /etc/hosts

127.0.0.1 mail.example.com localhost localhost.localdomain

Vi /etc/hostname
mail.example.com

Сохраняем изменения командой:
/etc/init.d/hostname.sh start

Проверим FQDN имя хоста:
hostname –f

Вся установка проводится под пользователем root!

Скачиваем в директорию /tmp данный файл:

Cd /tmp && wget iredmail.googlecode.com/files/iRedMail-0.6.0.tar.bz2

Установим архиватор:
apt-get install bzip2

Нужно распаковать данный архив:
tar -xvjf iRedMail-0.6.0.tar.bz2

Переходим в директорию /tmp/iRedMail-0.6.0/pkgs/ и запускаем установочный скрипт:
bash get_all.sh

Пойдет загрузка необходимых пакетов.
Для работы dovecot нужно поставить Candidate версию пакета. C другой работать не будет!
apt-cache policy dovecot-common dovecot-pop3d dovecot-imapd | grep "Candidate"
Команда отдаст пустой результат.

Переходим в директорию установочного скрипта:
cd /tmp/iRedMail-0.6.0/

Запускаем установочный скрипт:
bash iRedMail.sh
Появится окно инсталлятора:

Выбираем путь, где будет храниться вся наша почта:

Выбираем бэкэнд для нашего сервера. Поддерживаются MySQL и OpenLDAP. Мы выберем OpenLDAP:

LDAP суффикс для нашего сервера добавляется так: dc=example,dc=com

Введем пароль для администратора LDAP сервера. Учетная запись администратора по умолчанию находиться в /etc/ldap/slapd.conf. Обычно это: cn=Manager,dc=example,dc=com

Вводим имя нашего домена:

Вводим пароль администратора(postmaster):

Первый пользователь который будет создан, это пользователь: [email protected]. Нам требуется придумать для него пароль:

Включаем проверку SPF и функцию проверки DKIM:

Ставим доп. компоненты:

Сделаем алиас для юзера root:

Конфигурация завершена.
Появляется сообщение:
Configuration completed.


**************************** WARNNING ***********************************
*************************************************************************
* *
* Please do remember to *REMOVE* configuration file after installation *
* completed successfully. *
* *
* * /root/iRedMail-x.y.z/config
* *
*************************************************************************
<<>> Continue? # <- Type "Y" or "y" here, and press "Enter" to continue

Жмем Y и дожидаемся окончания установки.
Создание пользователя проходит на странице: example.com/postfixadmin
Входим в postfixadmin пользователем [email protected] и в меню выбираем “Создать ящик”

Пользователь создан!

Также PostfixAdmin позволяет:
1. Добавить нового администратора.
2. Добавить домен.
3. Создать почтовый ящик.
4. Создать алиас.
5. Изменить пароль администратора.
6. Просматривать журнал действий для домена.
7. Устанавливать и управлять квотами пользователей.

Список доступа к компонентам:

Сервер установлен и настроен!

UPD: Для корректной работы почтового сервера обязательно нужна MX запись на DNS сервере, к которому привязан ваш домен!
Ссылки на проекты:
Debian
iRedMail
Posftix
OpenLDAP
MySQL
SpamAssasin
ClamAV
AMaViS
Dovecot
RoundCube
SquirrelMail
Awstats
phpLDAPAdmin
phpMyAdmin

Многие системные администраторы испытывают определенные трудности при работе с системами электронной почты. Это неудивительно, почтовый сервер имеет гораздо более сложную структуру, чем файловый сервер, роутер или сервер терминалов. В этой статье мы рассмотрим структуру и принцип работы почтовых серверов, без понимания которых настройка системы электронной почты вполне способна превратиться в шаманские танцы с бубном.

Данный материал содержит довольно много упрощений и обобщений, с целью дать системным администраторам необходимый минимум знаний. На наш взгляд, ради администрирования одного-двух почтовых серверов начального уровня становиться специалистом в области электронной почты совсем не обязательно.

Для большинства пользователей и начинающих администраторов почтовый сервер представляет собой некий "черный ящик", который получив письмо "неведомыми" путями доставляет его адресату и наоборот. Все взаимодействие с таким сервером заключается в обращении почтового клиента к определенным портам, а то и вообще через веб-интерфейс. Однако внутри скрыт целый механизм, понимание работы которого имеет ключевое значение для успешной настройки и обслуживания системы электронной почты. Это особенно важно для администрирования серверов на платформе Linux. В отличии от Windows, где почтовый сервер представляет собой законченное программное решение и о внутреннем взаимодействии уже позаботились разработчики, в Linux компоненты почтового сервера представляют собой отдельные программы и настраивать их взаимодействие нужно самостоятельно.

Рассмотрим структуру почтового сервера, а также что происходит когда пользователь пытается отправить почту.

Важнейшей часть почтового сервера является MTA (Mail Transfer Agent -- агент пересылки почты) в задачи которого входит прием и передача почты. Очень часто (в Linux / UNIX) МТА называют также почтовым сервером. MTA работает по протоколу SMTP, и его одного, в принципе, уже достаточно для создания системы электронной почты. Когда-то давно именно так и было и для доступа к своему почтовому ящику требовалось обладать определенными техническими знаниями.

Однако прогресс не стоит на месте, MTA, получая письмо, помещает его в почтовый ящик пользователя на сервере, к которому последний должен получить доступ, желательно наиболее простым и понятным способом. Вот здесь на сцену выходит MDA (Mail Delivery Agent -- агент доставки почты), его задача по запросу почтового клиента передать ему почту из почтового ящика на сервере. MDA может работать по протоколам POP3 или IMAP, в ряде случаев для "общения" почтового клиента и агента доставки могут применяться собственные протоколы, обладающие расширенной функциональностью, например MAPI (Exchange Server).

Вопреки распространенному заблуждению, MDA не имеет никакого отношения к процессу передачи почты. Это прерогатива MTA. Если провести аналогию, MTA можно представить как почтовое отделение, которое занимается приемом и отправкой почты, а MDA с почтальоном, который приносит пришедшую корреспонденцию к вам домой. Если почтальон заболел, то это никак не скажется на работе почты, просто вы не получите письма на дом. Также и MDA, его отказ не приводит к неработоспособности почтового сервера, становится недоступно только получение почты почтовым клиентом, в то же время к ней можно спокойно получить доступ другими путями, например, через веб интерфейс.

Посмотрим, что происходит при отправке почты. В нашем примере пользователь Иванов, находящийся в домене example.org ([email protected]), пишет письмо Козлову в домен example.com ([email protected]). Для Иванова процесс отправки почты состоит из создания сообщения и нажатия кнопки "Отправить" в почтовом клиенте. Почтовый клиент соединяется с МТА по протоколу SMTP и первым делом сообщает свои учетные данные. Авторизовав пользователя, MTA принимает сообщение и пытается доставить его дальше.

Вообще-то авторизация не является обязательной процедурой для MTA, но без авторизации мы получим открытый релей, т.е. любой может воспользоваться нашим сервером для пересылки почты, а как спамеры обрадуются! В настоящее время открытые релеи возникают в основном из-за ошибок настройки сервера. Однако вполне допустима ситуация, когда MTA без авторизации принимает почту от доверенных пользователей, например из локальной сети предприятия.

Для авторизации MTA может использовать собственный список пользователей, системный список, списки пользователей LDAP или AD. Также существует способ: авторизация POP прежде SMTP, когда пользователь перед отправкой почты авторизуется на MDA, который, в свою очередь подтверждает аутентификацию пользователя для MTA.

Следующим шагом MTA анализирует служебную информацию письма, определяя домен получателя, если он относится к доменам обслуживаем данным МТА, производится поиск получателя и письмо помещается в его ящик. Так произошло, если бы Иванов написал письмо Петрову или Сидорову.

Если домен получателя не обслуживается MTA, формируется DNS-запрос, запрашивающий MX-записи для данного домена. MX-запись представляет особый вид DNS-записи, которая содержит имена почтовых серверов, обрабатывающих входящую почту для данного домена. MX-записей может быть несколько, в этом случае MTA пробует последовательно установить соединение, начиная с сервера с наибольшим приоритетом. При отсутствии MX-записи запрашивается A-запись (запись адреса, сопоставляющая доменное имя с IP-адресом) и выполняется попытка доставить почту на указанный там хост. При невозможности отправить сообщение, оно возвращается отправителю (помещается в почтовый ящик пользователя) с сообщением об ошибке.

Мы не будем рассматривать работу принимающего сервера, будем считать что все прошло нормально, Козлов получил письмо от Иванова и написал ему ответ. Сервер, обслуживающий домен example.com, проводит точно такие же действия и пробует передать почту нашему серверу. Получив входящее сообщение MTA, как и в случае с локальным отправителем, проверяет домен получателя, если он входит в число обслуживаемых MТА, обработка сообщения продолжается, иначе сервер отказывается принимать почту. После проверки домена проверяется получатель, если он присутствует в списке пользователей, сообщение доставляется в его ящик, в противном случае возможны два варианта: отказ от приема сообщения или прием сообщения в общий почтовый ящик (ящик администратора). С одной стороны такая настройка увеличивает число принимаемого спама, с другой позволяет не потерять письма с ошибками в написании адреса.

Еще одной мерой защиты от спама является запрос PTR-записи. PTR-запись (запись указателя) связывает IP-адрес с именем домена. Запрашивая PTR, MTA принимает почту только в том случае если домен отправителя совпадает с доменом отправляющего сервера.

Рассмотрим пример более подробно. Некий спамерский сервер spam.com пытается рассылать письма с поддельным отправителем, якобы от известного нам сервера example.com. В случае фильтрации по белым / черным спискам такое письмо будет доставлено, так как отправителем числится пользователь из доверенного домена (на что и рассчитывали спамеры). В целях борьбы со спамом MTA формирует запрос PTR записи для IP-адреса отправляющего сервера, который он сообщает в процессе SMTP сессии. Для адреса y.y.y.y PTR-запрос вернет имя домена spam.com, которое не совпадает с доменом отправителя, что будет причиной отказа в приеме данного сообщения. В то-же время сообщения от сервера x.x.x.x будут получены, так как домен из PTR-записи для x.x.x.x (example.com) совпадает с доменом отправителя.

Итак, сообщение получено и находится в почтовом ящике пользователя. Как его прочитать? Почтовое хранилище, где находятся ящики пользователей, может быть организовано самыми различными способами: начиная от банальных папок и фалов, заканчивая базой данных. Не обладая техническими знаниями, прочитать собственную почту вряд-ли удастся. Но разве это должно волновать пользователя Иванова? Для него процесс получения почты сводится к нажатию кнопки "Получить" в почтовом клиенте.

Для получения почты клиент устанавливает соединение с MDA по протоколу POP3 или IMAP, обязательно передавая данные для авторизации. MDA проверяет наличие пользователя в списках и, при успешной проверке, передает клиенту все новые сообщения находящиеся в его почтовом ящике. Пользователь Иванов получает свою корреспонденцию и может работать с ней удобным ему способом.

На этом наша статья заканчивается, мы настоятельно рекомендуем вдумчивое прочтение и усвоение изложенного в ней материала. В последующем, при рассмотрении практических реализаций почтовых серверов мы будем подавать материал из расчета, что читатель имеет знания в объеме не менее данной статьи.

Южно-Уральский государственный университет

Миасский машиностроительный факультет

Кафедра «Управление качеством и стандартизация»

Курсовая работа

По информатике

На тему «Почтовый сервер»

Введение _____________________________________________________________3

Почтовый сервер _____________________________________________________________4

Электронная почта ____________________________________________________________5

Структура адреса электронной почты ____________________________________________6

Что такое домен ______________________________________________________________7

История знака @______________________________________________________________9

ПО электронной почты _______________________________________________________11

Mail.ru______________________________________________________________________12

Yahoo! Mail _________________________________________________________________15

Rambler.ru __________________________________________________________________17

Ведущие почтовые клиенты ___________________________________________________17

Заключение _________________________________________________________________18

Список литературы___________________________________________________________19

Введение

Еще в давние времена люди испытывали потребность в обмене информацией и организовывали его на государственном уровне. Поэтому почта – одно из наиболее четко организованных учреждений в мире.

Электронная почта является новым современным средством передачи информации. В отличие от обычной почты, по электронной передаются электронные копии сообщений, файлы, программы, различные данные – т.е. информация, обработанная с помощью компьютера.

Основными объектами, составляющими систему электронной почты, являются специальные компьютеры, называемые почтовыми серверами.

Почтовый сервер

Почтовые серверы – это серверы, получающие и отправляющие электронные сообщения.

Сервер, получающий электронные сообщения, работает по протоколу POP (Post Office Protocol).

Сервер, отправляющий электронные сообщения работает по протоколу SMTP (Simple Mail Transfer Protocol).

Почтовый сервер, сервер электронной почты, мейл-сервер - в системе пересылки электронной почты так обычно называют агент пересылки сообщений (англ. mail transfer agent, MTA ). Это компьютерная программа, которая передаёт сообщения от одного компьютера к другому. Обычно почтовый сервер работает «за кулисами», а пользователи имеют дело с другой программой - клиентом электронной почты (англ. mail user agent, MUA ).

Схема взаимодействия

К примеру, в распространённой конфигурации агентом пользователя является Outlook Express. Когда пользователь набрал сообщение и посылает его получателю, почтовый клиент взаимодействует с почтовым сервером, используя протокол SMTP. Почтовый сервер отправителя взаимодействует с почтовым сервером получателя (напрямую или через промежуточный сервер - релей). На почтовом сервере получателя сообщение попадает в почтовый ящик, откуда при помощи агента доставки сообщений (mail delivery agent, MDA) доставляется клиенту получателя. Часто последние два агента совмещены в одной программе, хотя есть специализированные MDA, которые в том числе занимаются фильтрацией спама. Для финальной доставки полученных сообщений используется не SMTP, а другой протокол - часто POP3 или IMAP - который также поддерживается большинством почтовых серверов. Хотя в простейшей реализации MTA достаточно положить полученные сообщения в личный каталог пользователя в файловой системе центрального сервера («почтовый ящик»).

Электронная почта

Электронная почта (e-mail, от латинского "electronic mail").

Электронная почта, как и обычная, работает с системой электронных "почтовых отделений" – почтовых серверов, которые обеспечивают пересылку писем по глобальным сетям. Они взаимодействуют с помощью почтовых протоколов, обеспечивающих пересылку и распознавание передаваемой в сети информации. Компьютеры-клиенты почтовых серверов обслуживают пользователей электронной почты. Каждый получает свой почтовый адрес и свой "почтовый ящик" на этом компьютере, т.е. область памяти, а также пароль для доступа к нему.



С помощью почтовой программы можно создавать сообщения, считывать их с почтового сервера, работать с адресной книгой, хранить и организовывать письма в папках "почтового ящика", готовить файлы для пересылки и преобразовывать их в нужный формат после получение и др.

С помощью почтовой программы пользователь создает сообщение адресату, задает адрес, отправляет сообщение, для чего соединяется с почтовым сервером. Во время соединения почтовый сервер запрашивает имя пользователя и его пароль. Иначе сеанс связи не состоится. После соединения подготовленная почта автоматически отправляется на сервер и далее через передачу от одного к другому почтовому серверу достигает адресата. Сразу после отправки корреспонденции автоматически происходит получение почты клиентом. Считанные в его область памяти сообщения и файлы сортируются и раскладываются по почтовым ящикам пользователей. Адресат при загрузке своего ящика видит разложенные по папкам сообщения: новые, старые, отправленные. Он может удалять, сортировать и классифицировать их по своему разумению.

Структура адреса электронной почты

При пересылке информации большое значение имеет адресация, поскольку без нее не может быть найден получатель. Все знают печальную историю Ваньки Жукова, который отправил письмо "на деревню дедушке". Адрес обычной почты оформляются по определенным почтовым правилам.

Существующие правила оформления электронных адресов иные. Адреса электронной почты имеют более четкую логическую структуру. Они состоят из иерархической последовательности доменов – частей, например:

[email protected]

[email protected]

[email protected]

Все адреса состоят из двух частей, разделенных символом @ (читается "эт"). При прочтении слева направо до этого знака отображаются имена пользователей (получателей). Это может быть имя начальника почтового отделения - "пост мастера" (post master), выдуманные или истинные имена пользователей электронной почты, на которые приходит корреспонденция. Их может быть зарегистрировано на одном и том же компьютере много. Часть адреса, находящаяся справа от @, определяет компьютер, подключенный к сети, город и страну или название сети, в которой пользователь зарегистрирован. Адреса делятся на части, которые называются доменами.

Что такое домен

Рассматривая домен справа налево и разбив его по точкам на отдельные слова, получим поддомены, поочередно уточняющие, где этот почтовый ящик искать. В аналогии с обычной почтой домен – это адрес (строка "Куда" на конверте), а поддомены - название страны, города, улицы, номер дома.

Домен не описывает путь, по которому следует передавать сообщение, а только объясняет, где находится адресат; точно так же адрес на почтовом конверте - это не описание дороги, по которой должен идти почтальон, чтобы доставить письмо, а место, в которое он должен в конце концов его принести. В обоих случаях почтовые службы сами выбирают маршрут из соображений экономии времени и денег. Обычно существует несколько путей, по которым можно доставить сообщение в указанное место, и, отправляя письмо, Вы не знаете, по какому из путей оно на этот раз пойдет.

Самый правый поддомен (в нашем случае ru) называется доменом верхнего уровня и чаще всего обозначает код страны, в которой находится сервер. Код ru - это Россия, kz – Казахстан. Каждый код состоит из двух латинских букв. Например, код uk обозначает Великобританию, и почтовый ящик с адресом [email protected] следует искать в английской сети JANET.

Домен верхнего уровня - не всегда код страны. В Соединенных Штатах встречаются такие, например, домены верхнего уровня, как edu - научные и учебные организации, или gov – правительственные учреждения:

lamaster@ge rge.arc.nasa.gov

Если почтовая служба видит в правой части домена поддомен такого вида, она уже знает, что адресат находится в США, поэтому код страны us не нужен. Такие обозначения сложились в американской научной сети ARPANET еще до того, как ее связали с сетями в других странах, а сейчас они сохраняются только по привычке. Как правило, во все места, которые адресуются по типу организации, можно добраться и используя код страны. Из соображений простоты и единообразия лучше пользоваться адресами с кодами стран.

Обычно такие адреса используются, если эта сеть понимает адреса в формате, отличном от RFC822. Тогда Вы пишите адрес типа имя@машина.сеть, а мост между Вашей сетью и сетью адресата преобразует его к нужному виду.

Поддомены, расположенные правее домена верхнего уровня, уточняют положение адресата внутри этого домена (внутри России для ru, среди военных организаций США для mil, или в сети BITNET для bitnet). К примеру, в адресе [email protected] поддомен demos обозначает организацию внутри России, а hq – группу машин внутри demos.

В адресе [email protected] домен верхнего уровня gov означает, что адресат находится в одном из правительственных учреждений США, первый поддомен nasa уточняет, в каком именно - NASA, второй поддомен arc называет подразделение NASA - Ames Research Center, а george указывает на конкретную машину в этом подразделении.

Если письмо адресуется по имени сети, в которую его надо послать, адрес (домен) состоит только из домена верхнего уровня - имени сети и еще одного поддомена - имени машины в этой сети. Разбираться, где находится данная машина, выпадает на долю почтовых служб этой сети.

Когда необходимо достичь адреса, например, ux . cso . uiuc . edu , компьютер должен преобразовать его в адрес. Чтобы это сделать, Ваш компьютер начинает просить помощи у серверов (компьютеров) DNS, начиная с правой части имени и двигаясь влево. Сначала она просит локальные серверы DNS найти адрес. Здесь существуют три возможности.

Многие пользователи Убунту используют систему не только для домашних нужд. Такой подход вполне оправдан, ведь на Linux-системах гораздо удобнее заниматься программированием, созданием серверов и веб-сайтов. Одно из удобств - создание сервера электронной почты . Для новичков эта задача покажется ужасно трудной, однако если вы разберётесь, как установить и настроить почтовый сервер для Ubuntu, задача уже не покажется вам такой уж тяжёлой.

Как выполняется настройка почтового сервера на базе Ubuntu.

Перед конкретными инструкциями и брожением по коду не обойтись без доли теоретического материала. Важно понимать, что такое сервер электронной почты и как он работает.

Настроенный почтовый сервер, если говорить очень просто - это почтальон, который получает «письмо» от одного почтового клиента и отдаёт другому. В этом, в принципе, вся суть работы этого программного обеспечения. Почтовый сервер нужен не только для передачи электронной почты. На сайтах он отвечает за регистрацию пользователей, передачу заполняемых форм и другие важные действия, без которых сайт стал бы подобием книги, на которую можно только смотреть, перелистывая страницы, а вот что-то сделать трудновато.

Почтовые серверы на Linux существенно отличаются от оных на Windows и других системах. На Винде это уже готовая закрытая программа, которой остаётся только начать пользоваться. Дистрибутивы Линукса же предполагают самостоятельную настройку всех компонентов. Причём сервер будет в итоге состоять не из одной программы, а из нескольких. Мы будем использовать Postfix в сочетании с Dovecot и MySQL.

Почему Postfix?

На Убунту существует несколько почтовых клиентов, но всё же мы выбрали именно этот. Настройка Posfix на Ubuntu гораздо легче, чем того же SendMail, а это важно для начинающего пользователя. В сочетании с Dovecot Postfix способен выполнять всё то, что обычно требуют от почтовых серверов.

Postfix - это непосредственно сам агент передачи почты. Ему и предстоит сыграть главную роль во всём представлении. Это программа с открытым исходным кодом, которую используют по умолчанию многие серверы и веб-сайты. Dovecot - это агент доставки почты. Его главная роль - обеспечение безопасности работы сервера. MySQL - это идеальная система управления базами данных (СУБД) для любых сайтов. Она нужна, чтобы оперировать информацией, которую мы получаем от пользователей нашего сервера.

Итак, с теоретической частью закончено. Теперь стоит перейти к практике.

Создание почтового сервера

Что должно быть настроено перед установкой почтового сервера?

  • MySQL;
  • DNS-зона, у вас должен быть персональный FDQN. Дальше мы будем использовать namehost.

Установка

Устанавливаем программы:

apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql

Когда появится окно с конфигурацией Postfix, нам нужно будет выбрать «Интернет-сайт».

Ниже нас попросят ввести доменное имя, используем «primer.ru».

Настройка MySQL

Теперь нам необходимо настроить три таблицы для данных в MySQL: для доменов, пользователей и для так называемых Alias - псевдонимов или дополнительных пользовательских почтовых ящиков . Здесь мы не будем подробно разбирать настройку базы данных MySQL.

Назовём базу данных examplemail. Создаём базу с таким именем:

mysqladmin -p create servermail

Логинимся в MySQL:

Затем вводим пароль. Если всё сделано правильно, то будет такая запись в терминале:

Создадим нового пользователя специально для входа в сеть:

mysql > GRANT SELECT ON examplemail.* TO ‘usermail’@’127.0.0.1’ IDENTIFIED BY ‘password’;

Теперь перезагружаем MySQL, чтобы убедиться, что все изменения применились успешно.

Используем нашу базу данных, чтобы затем создавать на её основе таблицы:

mysql> USE examplemail;

Создаём таблицу для доменов:

CREATE TABLE `virtual_domains` (

`name` VARCHAR(50) NOT NULL,
PRIMARY KEY (`id`)

Создадим таблицу для пользователей:

CREATE TABLE `virtual_users` (
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`password` VARCHAR(106) NOT NULL,
`email` VARCHAR(120) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Здесь, как видите, добавлены email и пароль. А каждый пользователь привязан к домену.

Наконец, создаём таблицу под псевдонимы:

CREATE TABLE `virtual_aliases` (
`id` INT NOT NULL AUTO_INCREMENT,
`domain_id` INT NOT NULL,
`source` varchar(100) NOT NULL,
`destination` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Мы успешно настроили MySQL и создали три необходимые таблицы. Теперь нужно разобраться с доменами и мейлами.

Домены, адреса электронной почты и псевдонимы

Добавим наш домен в таблицу с доменами. Туда же необходимо занести FDQN:

INSERT INTO `examplemail`.`virtual_domains`
(`id` ,`name`)
VALUES
(‘1’, ‘primer.ru’),
(‘2’, ‘namehost.primer.ru’);

Добавим данные об электронном адресе в таблицу пользователей:

INSERT INTO `examplemail`.`virtual_users`
(`id`, `domain_id`, `password` , `email`)
VALUES
(‘1’, ‘1’, ENCRYPT(‘firstpassword’, CONCAT(‘$6$’, SUBSTRING(SHA(RAND()), -16))), ’[email protected]’),
(‘2’, ‘1’, ENCRYPT(‘secondpassword’, CONCAT(‘$6$’, SUBSTRING(SHA(RAND()), -16))), ’[email protected]’);

Теперь добавим информацию в последнюю таблицу:

INSERT INTO `examplemail`.`virtual_aliases`
(`id`, `domain_id`, `source`, `destination`)
VALUES
(‘1’, ‘1’, ‘[email protected]’, ’[email protected]’);

Закрываем MySQL:

Настройка Postfix

Переходим, непосредственно, к параметрам Postfix. Нам нужно, чтобы почтовый клиент мог отправлять сообщения от имени введённых в базу пользователей и обрабатывал SMTP-соединение. Для начала создадим бэкап конфигурационного файла, чтобы в случае чего можно было вернуться к стандартным настройкам:

cp /etc/postfix/main.cf /etc/postfix/main.cf.orig

Теперь открываем файл с конфигурациями:

nano /etc/postfix/main.cf

Вместо nano вы можете использовать любой удобный для вас текстовый редактор.

Откомментируем параметры TLS, а также добавим другие. Здесь использованы бесплатные SSL:

# TLS parameters
#smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
#smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
#smtpd_use_tls=yes
#smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
#smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_cert_file=/etc/ssl/certs/dovecot.pem
smtpd_tls_key_file=/etc/ssl/private/dovecot.pem
smtpd_use_tls=yes
smtpd_tls_auth_only = yes

После этого добавим ещё ряд параметров:

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination

Также нам необходимо откомментировать настройки mydestination и изменить их на localhost:

#mydestination = primer.ru, namehost.primer.ru, localhost.primer.ru, localhost
mydestination = localhost

Параметр myhostname должен содержать наше доменное имя:

myhostname = namehost.primer.ru

Теперь добавляем строку для отправки сообщений на все домены, перечисленные в таблице MySQL:

virtual_transport = lmtp:unix:private/dovecot-lmtp

Добавляем ещё три параметра, чтобы Postfix мог соединиться с таблицами MySQL:

virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf

Настройка файлов MySQL и Postfix

Создаём файл

mysql-virtual-mailbox-domains.cf

Добавляем в него эти значения:

user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = examplemail
query = SELECT 1 FROM virtual_domains WHERE name=’%s’

Перезапускаем Postfix:

service postfix restart

Тестируем домен для Постфикс:

postmap -q primer.ru mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

Создаём ещё один файл:

nano /etc/postfix/mysql-virtual-mailbox-maps.cf
user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = examplemail
query = SELECT 1 FROM virtual_users WHERE email=’%s’

Перезагружаем Постфикс:

service postfix restart

Затем снова проверяем Postfix:

postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf

Если всё сделано правильно, должно выводиться

Создаём последний файл - для псевдонимов:

nano /etc/postfix/mysql-virtual-alias-maps.cf
user = usermail
password = mailpassword
hosts = 127.0.0.1
dbname = examplemail
query = SELECT destination FROM virtual_aliases WHERE source=’%s’

service postfix restart

Последний раз тестируем:

postmap -q [email protected] mysql:/etc/postfix/mysql-virtual-alias-maps.cf

Делаем резервные копии для семи файлов, которые будем менять:

cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig

Это образец команды. Вводим ещё шесть таких же для этих файлов:

/etc/dovecot/conf.d/10-mail.conf
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/dovecot-sql.conf.ext
/etc/dovecot/conf.d/10-master.conf
/etc/dovecot/conf.d/10-ssl.conf

Открываем первый файл:

nano /etc/dovecot/dovecot.conf

Проверьте, откомментирован ли этот параметр:

Include_try /usr/share/dovecot/protocols.d/*.protocol
protocols = imap lmtp

Include_try /usr/share/dovecot/protocols.d/*.protocol line

Редактируем следующий файл:

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

Находим строчку mail_location, снимаем комментарий, ставим следующий параметр:

mail_location = maildir:/var/mail/vhosts/%d/%n

Находим mail_privileged_group, ставим туда:

mail_privileged_group = mail

Проверяем доступ. Вводим команду:

Доступ должен выглядеть следующим образом:

Создаём папку для каждого зарегистрированного домена:

mkdir -p /var/mail/vhosts/primer.ru

Создаём пользователя и группу с идентификатором 5000:

groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /var/mail

Меняем владельца на пользователя VMail:

chown -R vmail:vmail /var/mail

Редактируем следующий файл:

nano /etc/dovecot/conf.d/10-auth.conf

Раскомментируем текст аутентификации и добавляем строку:

disable_plaintext_auth = yes

Изменяем следующий параметр: