Еще в давние времена люди испытывали потребность в обмене информацией и организовывали его на государственном уровне. Поэтому почта - одно из наиболее четко организованных учреждений в мире.
Электронная почта является новым современным средством передачи информации. В отличие от обычной почты, по электронной передаются электронные копии сообщений, файлы, программы, различные данные - т.е. информация, обработанная с помощью компьютера.
Основными объектами, составляющими систему электронной почты, являются специальные компьютеры, называемые почтовыми серверами.
Почтовые серверы - это серверы, получающие и отправляющие электронные сообщения.
Сервер, получающий электронные сообщения, работает по протоколу POP (Post Office Protocol).
Сервер, отправляющий электронные сообщения работает по протоколу SMTP (Simple Mail Transfer Protocol).
Почтовый сервер, сервер электронной почты, мейл-сервер -- в системе пересылки электронной почты так обычно называют агент пересылки сообщений (англ. mail transfer agent, MTA). Это компьютерная программа, которая передаёт сообщения от одного компьютера к другому. Обычно почтовый сервер работает «за кулисами», а пользователи имеют дело с другой программой -- клиентом электронной почты (англ. mail user agent, MUA).
Рис. 1.
К примеру, в распространённой конфигурации агентом пользователя является Outlook Express. Когда пользователь набрал сообщение и посылает его получателю, почтовый клиент взаимодействует с почтовым сервером, используя протокол SMTP. Почтовый сервер отправителя взаимодействует с почтовым сервером получателя (напрямую или через промежуточный сервер -- релей). На почтовом сервере получателя сообщение попадает в почтовый ящик, откуда при помощи агента доставки сообщений (mail delivery agent, MDA) доставляется клиенту получателя. Часто последние два агента совмещены в одной программе, хотя есть специализированные MDA, которые в том числе занимаются фильтрацией спама. Для финальной доставки полученных сообщений используется не SMTP, а другой протокол -- часто POP3 или IMAP -- который также поддерживается большинством почтовых серверов. Хотя в простейшей реализации MTA достаточно положить полученные сообщения в личный каталог пользователя в файловой системе центрального сервера («почтовый ящик»).
Почтовый сервер, mail server, сервер электронной почты – обычно так называют в системе пересылки электронной почты агент пересылки сообщений. Это ПО, которое передает сообщения от одного компьютера к другому. Почтовый сервер обычно не видим для пользователя. Сам же пользователь имеет дело с другим ПО – клиентом электронной почты.
Например, в самой распространенной конфигурации клиентом почты является Outlook Express. Хотя в последнее время часто используется клиент Mozilla - Thunderbird. При наборе сообщения пользователем и пересылке его получателю, почтовый клиент взаимодействует с почтовым сервером по протоколу SMTP. Почтовый же сервер отправителя взаимодействует с сервером получателя. На сервере получателя отправленное ему сообщение попадает в почтовый ящик, из которого, при помощи агента доставки сообщений MDA (mail delivery agent), доставляется клиенту получателя. Существуют так же протоколы POP3 и IMAP, которые поддерживаются многими почтовыми серверами.
Многие системные администраторы испытывают определенные трудности при работе с системами электронной почты. Это неудивительно, почтовый сервер имеет гораздо более сложную структуру, чем файловый сервер, роутер или сервер терминалов. В этой статье мы рассмотрим структуру и принцип работы почтовых серверов, без понимания которых настройка системы электронной почты вполне способна превратиться в шаманские танцы с бубном.
Данный материал содержит довольно много упрощений и обобщений, с целью дать системным администраторам необходимый минимум знаний. На наш взгляд, ради администрирования одного-двух почтовых серверов начального уровня становиться специалистом в области электронной почты совсем не обязательно.
Для большинства пользователей и начинающих администраторов почтовый сервер представляет собой некий "черный ящик", который получив письмо "неведомыми" путями доставляет его адресату и наоборот. Все взаимодействие с таким сервером заключается в обращении почтового клиента к определенным портам, а то и вообще через веб-интерфейс. Однако внутри скрыт целый механизм, понимание работы которого имеет ключевое значение для успешной настройки и обслуживания системы электронной почты. Это особенно важно для администрирования серверов на платформе 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 проверяет наличие пользователя в списках и, при успешной проверке, передает клиенту все новые сообщения находящиеся в его почтовом ящике. Пользователь Иванов получает свою корреспонденцию и может работать с ней удобным ему способом.
На этом наша статья заканчивается, мы настоятельно рекомендуем вдумчивое прочтение и усвоение изложенного в ней материала. В последующем, при рассмотрении практических реализаций почтовых серверов мы будем подавать материал из расчета, что читатель имеет знания в объеме не менее данной статьи.
Если у вас есть желание научиться искать и эксплуатировать уязвимости в информационных сетях, рекомендую познакомиться с онлайн-курсом «Практикум по Kali Linux» в OTUS. Курс рассчитан на тех, у кого нет опыта в информационной безопасности, для поступления нужно пройти.
Начнем с того, что я подразумеваю под средним бизнесом. Я не знаю точную классификацию и нигде не смотрел, не проверял. Мне интуитивно кажется, что это от 10-15 пользователей до 200-300. Я же буду рассматривать сегмент до 100 пользователей , так как почти все время работаю исключительно в этой нише. Проблемы и потребности более крупных компаний мне достоверно неизвестны. Хотя не уверен, что что-то будет принципиально отличаться от 100 человек, думаю подходы будут те же самые, только железо мощнее. Проблемы распределение нагрузок и кластеризации тут скорее всего еще не будут стоять.
Есть у нас небольшая компания на несколько десятков человек. Нам нужен почтовый сервер. Несмотря на то, что технологии давно шагнули вперед, предоставив массу всевозможных средств коммуникации, электронная почта все равно плотно стоит на своих позициях и не собирается их пока уступать. При этом в таком небольшом коллективе, больших требований к почтовому серверу не предъявляют. Чаще всего достаточно, чтобы почта просто работала, без особых функциональных изысков. Будет достаточно либо почтового клиента и протокола imap, либо web интерфейса. Хорошо, если будет возможность настроить автоответ, делать общие папки, единую адресную книгу, но и без этого можно прожить.
Среди всех возможных вариантов почтового сервиса, я выделяю 3 принципиально разных подхода к реализации необходимого функционала:
Разберем каждый из них поподробнее.
Сразу сделаю пару замечаний. Я не уверен, что у гугла сейчас можно зарегистрировать бесплатно корпоративную почту. Все, кто зарегистрировались раньше, пользуются бесплатно, а для новых пользователей теперь доступны только платные подписки. Но это не принципиально и не относится напрямую к теме статьи. Если гугл и стал полностью платным для бизнеса, то просто исключим его из нашего списка. Yandex и Mail.ru пока еще точно бесплатные. Сам я администрировал почтовые домены в google apps и в Яндексе. С biz.mail.ru не работал, только знаю, что там реализовано что-то похожее. Мне как-то сама компания не нравится еще со старых времен. Хотя сейчас они вроде как повернулись лицом к пользователям, но Амиго до сих пор жив здоров, так что повернулись еще не совсем.
Рассмотрим плюсы данных почтовых сервисов.
Вроде все, ничего не пропустил. Казалось бы, плюсы очевидны и существенны. Но прежде чем делать выводы, рассмотрим минусы.
Когда я только начинал работать примерно 10 лет назад, вопроса какую почту использовать в организации, не стояло. Все ставили свои почтовые серверы и админили их. Бесплатные почтовые сервисы не предоставляли на тот момент для бизнеса никаких инструментов для управления почтой. Когда такие инструменты стали появляться, я думал, что скоро свои почтовые серверы никому не будут нужны, так как в них отпадет смысл. А все мои мучения (не люблю с ними работать) с почтовыми серверами станут бессмысленными.
Мне предоставилась возможность администрировать домены на базе публичных почтовых сервисов. После этого появился написанный выше список минусов. И лично для меня эти минусы перевесили плюсы, и теперь я по-прежнему настраиваю почтовые сервера сам. В конечном итоге это более удобно и надежно, если рассматривать в совокупности плюсы и минусы использования и администрирования.
Самым большим минусом мне видится отсутствие полноценных почтовых логов и хорошей схемы бэкапа. Разбирать проблемы неудобно без логов. Быстро и просто восстановить удаленное письмо в прежнее место не получится, хотя для опенсорсных почтовых серверов это простое дело.
Рассмотрим преимущества и недостатки собственного почтового сервера на базе бесплатного программного обеспечения. В принципе, сюда можно отнести и некоторые платные, например Kerio Mail Server, который тоже частенько используют. Думаю, его можно сюда же отнести, так как функционал он обеспечивает схожий. Я рассматриваю все почтовые сервера в совокупности, не выделяя отдельных представителей. Хотя в линуксе, кроме postfix и exim, лично я не встречал ничего в продакшене. Сам всегда использую postfix, так как привык к нему и знаю его неплохо. Рассмотрим внимательно плюсы таких серверов.
Такие минусы своего почтового сервиса видятся мне. Самый существенный для меня это последний. Сам привык работать с почтой через web. Почтовыми клиентами не люблю пользоваться, хотя приходится. Web интерфейсы к бесплатным почтовым серверам по удобству и быстродействию сильно не дотягивают до gmail или яндекс, сравнивать бессмысленно. И тем не менее, считаю, что для среднестатистической организации это наиболее оптимальный вариант. Пример настройки такого бесплатного почтового сервера — .
У меня нет большого опыта администрирования exchange. Я его когда-то давно тестировал, когда решал, с какими почтовыми серверами буду работать. Устанавливал, изучал функционал. Потом один раз настроил почтовый сервер для организации. Они хотели именно exchange. Проблем не возникло, быстро настроил по многочисленным гайдам в интернете. Порог входа в настройщики почтового сервера exchange очень низкий. С базовым функционалом может справиться даже эникей.
Для средних организаций реально полезным и трудно заменимым функционалом считаю общие календари. И конечно же удобство интеграции с AD, если она есть. А чаще всего AD есть, так как я не представляю себе администрирование сети больше чем на 20-30 человек без Active Directory. Считаю, что тут бессмысленно экономить и надо покупать Microsoft Server.
Рассмотрим теперь плюсы и минусы Microsoft Exchange Server. Предупреждаю на всякий случай еще раз. Рассказываю только свое видение, опыта работы с сервером мало, поэтому хотел бы сам в комментариях получить замечания по нему, чтобы иметь более адекватную оценку этой системы. Плюсы Exchange:
Минусы Exchange Server такие же характерные, как и плюсы, для большинства продуктов от Microsoft:
Вывод по Exchange Server у меня таков — он почти во всем хорошо, кроме цены. Если бы он был бесплатен, я скорее всего пользовался бы именно им. По вполне объективным причинам, это невозможно. Хороший и удобный софт сам по себе не появляется. Его нужно создать, а на это потратить средства, которые захочется вернуть с прибылью.
На сегодняшний день, с учетом стоимости Microsoft Exchange Server и Microsoft Office, я не использую эти продукты Microsoft. Мало кто согласен выложить необходимую сумму для почтового сервера. Мне бы хотелось посмотреть на Exchange поближе в реальных условиях хотя бы человек на 60-80, чтобы оценить более объективно этот сервер. Но пока такой возможности не представилось.
Подведу итог своим рассуждениям о почтовом сервере для небольшой среднестатистической организации. Хотя вывод, думаю, уже и так понятен. Сам я предпочитаю второй описанный мной вариант — почтовый сервер на базе бесплатного ПО на linux. Но другие два варианта я бы не стал сбрасывать со счетов. Бесплатная почта от публичных сервисов будет однозначна удобна для совсем небольшого коллектива — на 10-15 человек. Городить свой сервер для такой численности нет никакого смысла.
Exchange Server я бы порекомендовал использовать, если есть и не жалко потратить средства на его приобретение. Продукт однозначно удобный, функциональный и простой в настройке и администрировании. Говоря простой, нужно понимать, что это условно. Конфигурации могут быть и очень сложными, но в данном случае я рассматриваю начальный уровень.