Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»
Почтовый сервер для начинающих. Структура и принцип работы
Многие системные администраторы испытывают определенные трудности при работе с системами электронной почты. Это неудивительно, почтовый сервер имеет гораздо более сложную структуру, чем файловый сервер, роутер или сервер терминалов. В этой статье мы рассмотрим структуру и принцип работы почтовых серверов, без понимания которых настройка системы электронной почты вполне способна превратиться в шаманские танцы с бубном.
Данный материал содержит довольно много упрощений и обобщений, с целью дать системным администраторам необходимый минимум знаний. На наш взгляд, ради администрирования одного-двух почтовых серверов начального уровня становиться специалистом в области электронной почты совсем не обязательно.
Для большинства пользователей и начинающих администраторов почтовый сервер представляет собой некий «черный ящик», который получив письмо «неведомыми» путями доставляет его адресату и наоборот. Все взаимодействие с таким сервером заключается в обращении почтового клиента к определенным портам, а то и вообще через веб-интерфейс. Однако внутри скрыт целый механизм, понимание работы которого имеет ключевое значение для успешной настройки и обслуживания системы электронной почты. Это особенно важно для администрирования серверов на платформе 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 (ivanov@example.org), пишет письмо Козлову в домен example.com (kozlov@example.com). Для Иванова процесс отправки почты состоит из создания сообщения и нажатия кнопки «Отправить» в почтовом клиенте. Почтовый клиент соединяется с МТА по протоколу 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 проверяет наличие пользователя в списках и, при успешной проверке, передает клиенту все новые сообщения находящиеся в его почтовом ящике. Пользователь Иванов получает свою корреспонденцию и может работать с ней удобным ему способом.
На этом наша статья заканчивается, мы настоятельно рекомендуем вдумчивое прочтение и усвоение изложенного в ней материала. В последующем, при рассмотрении практических реализаций почтовых серверов мы будем подавать материал из расчета, что читатель имеет знания в объеме не менее данной статьи.
Лучшие почтовые серверы Linux
Электронная почта — это не просто веб-сайт, на котором вы можете обмениваться сообщениями, такой как вконтакте или фейсбук. Это более сложный механизм, который работает с помощью собственного протокола. В сети почтовые клиенты отправляют письма на почтовый сервер, затем они уже направляются к адресату. Именно потому мы можем отправлять почту всем адресатам, независимо от их домена, mail, gmail, yandex и т д. На низком уровне эти сервисы работают по одному протоколу.
Чтобы отправить сообщение почтовый сервер использует программу MTA (Mail Transfer Agent).
Что такое MTA?
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. А какой почтовый сервер используете вы? Какой считаете лучшим? Почему? Напишите в комментариях!
5 лучших Linux Server ОС для серверного использования
Операционная система Linux широко распространение по сему миру. В то время как некоторые дистрибутивы Linux подходят для опытных пользователей, другие более просты и идеально подходят для перехода с Windows. Дистрибутивы Linux часто получают выгоду от сильных ресурсов сообщества.
Если вы хотите работать в качестве системного администратора, вам может быть интересна статья про 11 команд на Linux для работы в качестве системного администратора .
Несмотря на то, что дистрибутивы Linux предлагают отличные настольные среды, Linux также может отлично подойти для настройки серверов. Linux обычно предлагает расширенные разрешения, повышенную гибкость и стабильность.
1. Ubuntu Server
Ubuntu, пожалуй, самая известная операционная система Linux. Ubuntu и его варианты предлагают отличный пользовательский опыт. Ubuntu Server доступен в двух версиях: LTS и роллинг-релиз . Выпуск LTS Ubuntu Server может похвастаться пятилетним циклом поддержки. Хотя цикл поддержки не составляет пять лет, вариант без LTS включает девять месяцев обновлений безопасности и обслуживания.
Хотя Ubuntu и Ubuntu Server очень похожи, Ubuntu Server предлагает различные удобства в использования для серверной части. В частности, Ubuntu Server предоставляет OpenStack Mitaka, Nginx и LXD. Такие включения предназначены для системных администраторов. Используя Ubuntu Server, вы можете раскрутить веб-серверы, развернуть контейнеры и многое другое. Кроме того, он готов для запуска в качестве сервера из коробки.
Кому следует использовать Ubuntu Server : если вы новичок в Linux или серверных операционных системах, Ubuntu — отличный выбор. Ubuntu остается одним из самых популярных дистрибутивов Linux отчасти благодаря его удобству для пользователя. Соответственно, Ubuntu Server — фантастическая операционная система Linux-сервера начального уровня. Он великолепен как медиа-сервер, игровой сервер или почтовый сервер.
2. openSUSE
Linux openSUSE дебютировал в 1993 году. В 2015 году открытый вариант openSUSE перешел на SUSE Linux Enterprise (SLE). Существует два производных openSUSE: Leap и Tumbleweed . Leap имеет более длительные циклы выпуска, тогда как Tumbleweed — это роллинг-релиз. Tumbleweed лучше подходит для опытных пользователей благодаря своим современным пакетам, таким как ядро Linux и SAMBA. Leap лучше для стабильности.
Стандартные инструменты позиционируют openSUSE как фантастическую серверную операционную систему Linux. openSUSE включает openQA для автоматического тестирования, развертывание образа Kiwi для Linux на нескольких платформах, конфигурацию YaST для Linux и комплексный менеджер пакетов Open Build Service. Отказавшись от предыдущего девятимесячного цикла выпуска и сосредоточившись на стабильности, такой как SLE, openSUSE стал жизнеспособной серверной средой Linux.
Кому следует использовать openSUSE : openSUSE больше подходит для опытных пользователей, таких как системные администраторы. Он отлично подходит как веб-сервер или домашний сервер. Системные администраторы получают выгоду от таких инструментов, как Kiwi, YaST, OBS и openQA. Универсальность openSUSE делает его одной из лучших серверных операционных систем Linux. В дополнение к мощным серверным возможностям, openSUSE поддерживает прекрасную рабочую среду.
3. CentOS
CentOS обеспечивает стабильную среду для сервера. Это производная от Red Hat Enterprise Linux (RHEL) с открытым исходным кодом. Таким образом, CentOS обеспечивает работу с сервером корпоративного класса. Спонсируемая Red Hat операционная система использует точный исходный код, который можно найти в RHEL. CentOS использует менеджер пакетов RPM. В 2010 году данные опроса показали, что около 30 процентов всех серверов Linux работают на CentOS .
Примечательно, что CentOS хорошо работает на мэйнфреймах . Для пользователей, предпочитающих графический интерфейс, доступны KDE и GNOME. CentOS можно использовать как простую рабочую среду.
Кому следует использовать : CentOS обеспечивает функциональность и стабильность Red Hat Enterprise Linux. Поэтому он идеально подходит для продвинутой серверной операционной системы Linux. Используйте CentOS, если вы ищете бесплатную альтернативу RHEL. Однако CentOS довольно удобен для новичков, потому что он сохраняет менеджер пакетов. В целом, CentOS лучше всего подходит в качестве бесплатной альтернативы Red Hat Enterprise Linux.
4. ClearOS
ClearOS специально разработан для серверов, шлюзов и сетевых систем. Данная ОС имеет функции улучшения безопасности. Есть брандмауэр по умолчанию, инструменты управления пропускной способностью, почтовый сервер и обнаружение вторжений.
Несмотря на то, что есть и платные версии ClearOS, Community Edition остается бесплатным. Кроме того, обновления ClearOS полностью бесплатны.
Кому следует это использовать : ClearOS — это выделенный работающий сервер Linux. Его обширный магазин приложений позиционирует ClearOS как дистрибутив для гуру по Linux.
5. Debian
Debian является одной из лучших операционных систем для Linux-серверов. Поскольку Debian был запущен в 1993 году, а его первый стабильный выпуск был в 1996 году, он невероятно безопасен. Многие дистрибутивы Linux, включая Ubuntu, основаны на Debian. Зачем использовать Debian как основу другой операционной системы? Стабильность.
Соответственно, Debian часто используется для серверов из-за его проверенной временем устойчивости. В Debian есть менеджер пакетов, инструменты APT и различные интерфейсы, такие как GDebi. Debian может похвастаться впечатляющей совместимостью приложений, безопасностью и стабильностью.
Кому следует это использовать : Debian предлагает фантастическую серверную среду. Если вы ищете простой сервер, такой как почтовый, веб, игровой или медиасервер, Debian достаточно прост в настройке.
Заключение
Несмотря на то, что вы можете найти множество серверных операционных систем Linux, каждая из них лучше всего подходит для разных групп пользователей. Более того, несерверный релиз LTS прекрасно работает как серверная операционная система Linux. Debian — отличный пример. Хотя Debian не является конкретно серверным дистрибутивом, он может похвастаться характеристиками серверного дистрибутива. А именно стабильность и безопасность. Все же конечный выбор остается за вами.
Если статья была для вас полезной, просим поставить лайк и подписаться на наш канал . Также посетите наш сайт и наш YouTube канал , чтобы увидеть больше подобного контента.