Сборка linux почтовый сервер с веб интерфейсом. Тестирование почтового сервера

Серия заметок по настройке почтовой системы в отдельно взятом частном случае (на основе Postfix , Dovecot + разное). Это главная, "родительская" страница, содержащая ссылки на весь список заметок (с кратким описанием).
Почту в таком формате - "с нуля", настраивал впервые. Ранее приходилось иметь с этим дело только эпизодически, "по касательной". Выбор в пользу определенной конфигурации сделан после перечитывания массы документации, статей и форумов. С учетом задачи, - поднять почтовую систему для быстрой и безотказной работы небольшого количества почтовых ящиков - выбрана такая сборка:
Postfix + Dovecot 2 + MySQL + PostfixAdmin + Postgrey + Postscreen + ClamAV + DKIM + Sieve + RoundCube (+плагины к RoundCube, включая парочку, написанных тут же, "с лету", своих экспериментальных). OC - Debian .

Список всех пакетов для установки в Debian . Пример настройки всех основных конфигов всех элементов рассматриваемой здесь почтовой системы. Этот пример - всего лишь частный случай, для определенных конкретных задач.

Присутствует возможность получить конфиги настроенные под себя (можно указать свои данные и конфиги будут автоматически перестроены под них).

Краткое описание подопытной конфигурации. Список портов и интерфейсов.
Примеры прохождения письма по всей цепочке внутри системы:

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

Отправленные письма автоматически сохраняются клиентом MUA в "Отправленные". Но не все письма отправляются с использованием MUA. Таким образом часть отправленных теряется. Проблему можно решить, подключив принудительные BCC (скрытые копии) всех отправляемых, которые Postfix может автоматически пересылать в заданные ящики...

Вольный перевод избранных частей официальной документации Postfix. Разобраны некоторые механизмы работы, приведен список инструментов командной строки, рассмотрены параметры настроек (выборочно) конфигурационных файлов и пр.

Postfix - Milter, вольный перевод некоторых частей официальной документации + отсебятина. Фильтрация писем до попадания в очередь сообщений, на этапе SMTP-сессии, эмуляция SMTP для не-SMTP почты, и пр.

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

Использование свежей разработки Postfix, - блокировщика зомби Postscreen. Эмуляция SMTP-сессии для ботов вместо реального соединения с smtpd . Вольный перевод некоторых частей официальной документации + отсебятина.

Описание ключевых параметров конфигурации, состав Dovecot, терминология, настройка и т.п. Как происходит аутентификация, совместная работа с Postfix, с SQL-базой PostfixAdmin и т.п. Вольный перевод некоторых выборочных частей официальной документации + отсебятина.

Мой плагин New User Autosubscribe. Автоматическая привязка IMAP папок для нового пользователя. Плагин позволяет сразу связать нового пользователя с его IMAP-папками, без дополнительных манипуляций с настройками. Плагин кроме того позволяет задать порядок папок (например "Отправленные" после "Входящие", вместо "Черновики", как это обычно устанавливается по умолчанию).

Мой плагин View Username. Показывает имя текущего пользователя (адрес) рядом с логотипом. Интерфейс Roundcube в стандартном варианте не отображает текущего пользователя. Если ящиков несколько, то тяжело понять какой сейчас открыт. Плагин выводит имя пользователя (адрес) на основной странице.

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

Важные определения

В этом разделе - ключевые определения, которые желательно понимать и помнить.

MTA (Mail T ransfer Agent) - почтовый сервер, отвечающий за пересылку почты. Общается с внешним миром, принимая и отправляя почту таким же как он сам по всей мировой сети. "В тылу" у него, в пределах родных доменов трудится MDA. MDA (Mail D elivery Agent) - рассовывает почту по ящикам, обычно внутри конкретного физического сервера - по каталогам (папкам) файловой системы, заданным настройками для этих целей. Кладовщик, расфасовщик и грузчик, привязанный к одному "складу". Кроме того, в описываемой здесь конфигурации выполняет роль вахтера-постового (проверяет пароль и дает "добро" или запрещает доставку почты). MUA (Mail U ser Agent) - конечная программа просмотра ящиков и управления почтой для юзеров. Например Outlook, Bat, Gmail, или его родственник - RoundCube.

MSA (Mail Submission Agent) - "кусок" MTA, отнимающий у него функцию приема авторизованных SMTP-подключений перед отправкой почты.
MUA-клиент подключается на 587 порт MSA, проходит аутентификацию и все необходимые этапы (TLS и т.п.), и всю отправляемую почту отдает своему MTA. Такой механизм разделения обязанностей между 25 и 587 портом повышает надежность, оставляя на 25 порту только "чистые" MTA-функции.

LDA (Local Delivery Agent) - то же, что и MDA, но здесь "L" - это local (локальный). Основное отличие от MDA в том, что LDA не может сохранять почту на другом сервере.

SMTPd - Сервер, работающий по протоколу SMTP. Здесь - часть MTA. Основное назначение - принимать почту. Принимает ее только для того, чтобы тут же ее передать другим внутренним сервисам, обычно лишь ненадолго задерживая ее во временном внутреннем "отстойнике" - в очереди (в специальной папке на диске).

LMTPd - Тоже, что и SMTPd, но только "L" - это local (локальный). Сервер, работающий по протоколу LMTP. Здесь - часть MDA (+ клиент в MTA), - среднее звено из цепочки между менеджером очереди сообщений в Postfix-MTA и обработчиком почты в Dovecot-MDA/LDA. Здесь - работает над unix-сокетом (указывается полный путь к "файлу обмена"; на практике, в Postfix, настройка клиента lmtp может выглядеть например так: "lmtp:unix:/path/to/sock-file"). В некоторых задачах - конкурент LDA.

IMAPd - Сервер, работающий по протоколу IMAP. Здесь - часть MDA. Используется для доступа MUA в папки почтового ящика. Позволяет не хранить почту на клиенте, а работать с сервером в онлайн-режиме (этот его плюс, иногда бывает минусом).

SASL - это фреймворк (набор правил и механизмов) аутентификации. Работает ПОД протоколом (напр. LMTP), НАД соединением. В описываемой конфигурации используется в механизме передачи данных через unix-сокеты.

TLS/SSL - протоколы шифрования данных. В описываемой здесь конфигурации их использование обязательно для внешних подключений MUA.

MX - Прямая запись для почтового сервера (создается напр. на DNS регистратора домена). Примерно так: mail.domain.tld -> IP.IP.IP.IP

PTR - Обратная запись для сервера (настраивается со стороны подсети которой принадлежит IP сервер). Позволяет по IP определить связанное доменное имя. Важна для проверки спам-фильтрами. Примерно так: IP.IP.IP.IP -> mail.domain.tld

SPF - Запись в DNS перечисляющая сервера, которым разрешено отправлять почту от Вашего домена.

Postfix - MTA + дополнения. Говорят что он настолько крут, что автор за его взлом предлагает награду. Быстрый, надежный, простой в настройке, по сравнению с exim, но не такой как exim гибкий. Связка с Dovecot стала почти стандартом. Хорош для небольших почтовых систем (хотя недавно на глаза попался заголовок статьи о том, что - Microsoft выбирает Postfix:)). Дублирует некоторые функции Dovecot (которыми конечно можно не пользоваться).

Включает в себя (перечислено не всё):

PostfixAdmin - Web-интерфейс к Postfix. Настройку Postfix на нем сделать невозможно, а вот создать домены/ящики, редактировать их свойства - как раз его работа. Хранит информацию в БД-SQL, которую использует его "папа" - Postfix, и даже Dovecot. Позволяет создать частичную автоматизацию пост-событий добавления/удаления/редактирования ящиков/доменов, которая ограничена возможностями стандартных прав пользователя Apache (хотя и здесь есть варианты). Есть два входа: для интерфейса суперадмина - domain.tld/postfixadmin , и для пользователей (например, чтобы отредактировать свои автоответчики) - domain.tld/postfixadmin/users . Впрочем второе может быть небезопасно для системы в целом.

ViMbAdmin - Альтернатива PostfixAdmin. Мне не понравилось в нем то, что для работы требует Zend Framework, Doctrine, Smarty, - и всё это обязательно устаревших версий! Т.е. установив последние версии рискуешь нарваться на глюки в его работе.

Dovecot - MDA + дополнения. Гибкий, имеет высокое быстродействие. Упор в разработке делался на безопасность. За взлом так же назначена награда от автора. :) Дублирует некоторые функции Postfix.

Состоит и поддерживает (перечислено не всё):

Milter (Mail Filter) - почтовый фильтр. Здесь - часть Postfix. Реализован как поддержка протокола Sendmail 8 Milter, и позволяет обрабатывать SMTP-события (CONNECT, DISCONNECT), SMTP-команды (HELO, MAIL FROM, и т.д.), а также почтовый контент (headers, body), - до попадания письма в очередь . Присутствует в двух ипостасях - для smtpd и для не smtp почты.
См. заметку

ACL (Access Contfol List) - список контроля доступа. Часть Dovecot. Позволяет для виртуальных пользователей (пока только виртуальных) задавать права в стиле системных Unix-пользователей на IMAP-папки. Удобен для блокирования прав на некоторые папки ящиков обычным пользователям, и, наоборот - для расширения прав на ящики master-пользователю. ACL есть двух типов: ACL и IMAP-ACL. ACL - создается и поддерживается администратором. IMAP-ACL - создается и поддерживается пользователями при использовании IMAP.
См. заметку

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

Postgrey - отсеивает входящую почту, путем проверки характера настойчивости отправляющих MTA. Не настойчивые - отбрасываются. Те, кто прошел проверку - попадают в белый список на какое-то продолжительное время (например месяц). В период экзамена учет ведется в "сером списке", после прохождения которого определяется дальнейшая судьба "экзаменуемых".
См. заметку .

DKIM - цифровая подпись для исходящей почты. Не обязательный, но желательный элемент почтовой системы. Теоретически, - позволяет не только подтвердить связь отправителя с его доменом (через открытый ключ доступный прямо в DNS), но и то, что письмо не подвергалось изменениям в процессе доставки.
См. заметку .

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

Spamassassin - "оценщик" угрозы спама. Программа, которая по массе критериев назначает для каждого письма баллы (очки), по которым можно определить вероятность, - является ли письмо спамом. Оценка производится еще в Postfix, а решение может принимать уже Dovecot, например с помощью Sieve перемещая письма с высоким баллом вероятности спама в соответствующую папку.

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

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

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

Пользователи, с помощью программы - почтового клиента (Outlook Express, Thunderbird и др.), могут создавать письма, отправлять их на сервер и забирать почту из своих почтовых ящиков на сервере.

Общение сервера и клиента происходит по специальным почтовым протоколам - Simple Mail Transfer Protocol (SMTP) - при передаче писем на сервер и Post Office Protocol v.3 (POP3) - при приеме писем из почтового ящика. Подключение клиентов к серверу происходит через определенные порты. Для SMTP стандартным является порт 25, для POP3 - порт 110.

Существуют различные почтовые сервера. В качестве примера рассмотрим установку и настройку почтового сервера Courier Mail Server .

Courier Mail Server - это почтовый сервер (сервер электронной почты) под Windows для локальных сетей. Он поможет вам быстро организовать обмен электронной почтой в локальной сети и в Интернете. Courier Mail Server не требует установки в системе. Достаточно загрузить архив с программой и распаковать ее в любую папку на жестком диске компьютера, который будет работать в качестве почтового сервера.

Бесплатную версию Courier Mail Server 1.56 вы можете скачать с сайта http://courierms.narod.ru/ . Более функциональную Courier Mail Server 2.05, но уже платную версию (1650 руб. за 10 почтовых ящиков, ограничение демо-версии - только 3 почтовых ящика), можно найти на сайте http://www.courierms.ru/ .

В этом пример мы будем настраивать и использовать бесплатную версию почтового сервера Courier Mail Server 1.56.

Достоинства Courier Mail Server 1.56:

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

Программа работает под управлением ОС Windows 9x/ME/NT/2000/XP. Настройка программы довольно проста и доступна обычному пользователю.

Примечание : в примере все компьютеры сети работают под управлением ОС Windows XP. Все компьютеры в сети одинаковые (нет никаких выделенных компьютеров-серверов). Компьютер учителя имеет имя server, компьютеры учеников pc01, pc02 и т.д. Все программное обеспечение, рассматриваемое в этом разделе, ставится в папку C:\MyServers\usr\local\. Если у вас компьютеры имеют другие имена (а это скорее всего так:)), то учитывайте это при настройке ПО. Так же вы можете выбрать и другу папку для установки программы.

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

При первом запуске сервер внутри своей папки автоматически создаст необходимые для его работы подпапки и файлы. За пределами своей папки сервер не производит никаких изменений. Системный реестр Windows меняется только при регистрации в качестве службы.

Courier Mail Server может запускаться как стандартное приложение, а также в качестве службы Windows. Для запуска в качестве службы Windows запустите CMS и в меню Настройки выберите команду Запускаться службой. При этом произойдет регистрация службы Courier Mail Server в системе.

Если запуск произошел нормально, на экране появится главное окно сервера, а в системном лотке (System Tray) рядом с часами - его значок .

Если в главном окне появились сообщения о запуске SMTP и POP3 серверов и нет сообщений об ошибках, можете приступить к настройке сервера.

Следующий этап настройки почтового сервера сводится к вводу локальных доменов. Для этого сделайте двойной щелчок по слову "домен" и откроется вкладка для его настройки. Введите имя компьютера , где будет работать почтовый сервер. В нашем примере это server . Если у вас имя компьютера, например, pc11 , то введите это имя.

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

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

Каждая учетная запись имеет следующие параметры:

Реальное имя: имя владельца почтового ящика.

Имя почтового ящика: наименование почтового ящика. Оно же является и именем пользователя при подключении к серверу. В имени ящика не используйте русские буквы и специальные символы, т.к. некоторые почтовые программы работают с ними некорректно. Если имя ящика pc 01 , локальный домен server , то адрес электронной почты данного пользователя pc 01@ server .

Пароль: пароль для подключения к серверу.

Другие параметры мы менять не будем.

У нас в классе 11 компьютеров (вместе с учительским) поэтому мы создали 11 учетных записей.

Ограничить доступ к почтовому серверу можно используя IP фильтр. Укажите тот диапазон IP адресов доступ которым разрешен. У нас это 192.168.1.1-192.168.1.11 (Про IP адреса и их настройку читайте в других статьях этого ). В ваше школе этот диапазон может быть другим, например, тот что выдал вам провайдер Интернета (ну это уже другая статья).

Все! Почтовый сервер можно использовать. Про настройку и использование других возможностей программы вы можете прочитать в справке (на русском!).

Вы спросите: "а как же его использовать? Как отправлять и получать письма?". Ответ простой. Письма мы будем отправлять и получать с помощью программы - почтового клиента (Outlook Express, Thunderbird и др.). А о том как это сделать читайте в следующей статье: " ".

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

Обзор решений для создания систем отправки и получения сообщений

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

SendMail — популярный и быстрый

SendMail можно назвать первопроходцем среди почтовых серверов на Linux. Первая версия была выпущена в далеком 1983 году. С тех пор SendMail освоил множество станций и узлов. Активно используется и по сей день. Быстрый и оптимизированный сервер, однако не отвечает современным требованиям безопасности и довольно тяжел в настройке.

Postfix — гибкий, мощный и надёжный

Изначально разрабатывался для внутренних нужд исследовательского центра IBM. Многие функции и возможности позаимствованы с SendMail. Однако он гораздо быстрей, безопасней, и настройка занимает меньше времени и сил. Может использоваться как почтовый сервер на Linux, MacOS, Solaris.

IredMail

Данный сервер по сути является набольшим комплектом скриптов и конфигурационных файлов. С их помощью можно быстро поднять почтовый сервер на Linux с Web-интерфейсом и без. Обладает поддержкой протоколов SMTP, POP3 и IMAP. Процедура установки в общем не займёт более 10 минут, в зависимости от мастерства админа.

В процессе iRedMail будут автоматически установлены средства борьбы с вирусами и спамом. Помимо них могут быть добавлены механизмы защиты от перебора паролей, различные анализаторы и прочее. Отличный вариант готового почтового Linux-сервера.

IndiMail

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

Rumble

Почтовый Linux web-сервер, написанный на C++. Имеется встроенный API для управления и создания сценариев. Обладает большим количеством функций и возможностей «из коробки». Поддерживаются несколько известных версий СУБД. При желании или реконфигурации можно быстро перейти с одной на другую. Интерфейсы сервера разделены правами на свои определённые зоны — пользователи, администраторы домена и сервера.

Zentyal

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

Axigen

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

Для конфигурирования и администрирования имеется свой собственный веб-интерфейс. Для любителей классической модели управления — доступно задание команд через консоль.

Сервер поддерживает большое количество операционных систем, в том числе из линейки Windows. Процесс взаимодействия очень хорошо документирован и разъяснён многочисленными примерами на сайте разработчика.

CommuniGate Pro

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

Настройка на примере одной системы

После обзора почтовых серверов на Linux стоит рассмотреть настройку одного из них более подробно.

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

Первое, что нужно сделать — это скачать сам сервер. Он доступен в репозиториях Ubuntu, поэтому в терминале нужно набрать:

В процессе установки система попросит указать новый пароль для пользователя базы данных под учётной записью root. Затем его нужно повторить для подтверждения. Потом может спросить, какой именно тип установки интересует. Затем системное почтовое имя, в котором можно указать — some.server.ru.

Теперь нужно создать базу данных для сервера. Сделать это можно с помощью команды:

mysqladmin -u root -p create mail.

Именно здесь и понадобится указанный ранее пароль для базы данных.

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

mysql -u root. Система опять попросит пароль, который надо ввести.

Также потребуются таблицы в основной базе, создать их можно так:

Теперь консоль mysql больше не нужна и можно выйти из нее.

Конфигурация Postfix

Для начала нужно показать серверу, каким образом обращаться к базе данных, как искать там необходимые значения. Для этого будет создано несколько файлов. Располагаться они могут в каталоге /etc/postfix. Вот их названия:

В них должно находиться следующее содержимое, среди которого строка query для каждого файла будет уникальной:

user = имя админа, указанное при создании таблицы;

password = <пароль админа>;

dbname = имя созданной базы;

query = запрос, свой для каждого файла;

hosts = 127.0.01.

Переменная query для файлов:

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

Теперь осталось добавить еще немного настроек к Postfix. Стоит обратить внимание, что в строках, приведённых ниже, нужно заменить some.server.ru на реальный домен.

Сертификаты безопасности

Для начала понадобится создать свой центр сертификации, который будет подтверждать достоверность всех сертификатов.

Создаётся хранилище для файлов:

И файл конфигурации. В нем располагается следующий код:

Небольшое пояснение к нему:

  • переменная C — здесь нужно указать страну в двухбуквенном формате, например, для России — RU;
  • ST — означает конкретный регион или область;
  • L — город;
  • O — наименование предприятия;
  • CN — здесь нужно указать домен, которому предназначается ключ;
  • адрес электронной почты.

Затем создаётся и сам ключ:

sudo openssl genrsa -des3 -out ca.key 4096

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

Теперь нужна открытая версия ключа:

openssl req -new -x509 -nodes -sha1 -days 3650 -key ca.key -out ca.crt -config ca.conf

Здесь нужно будет ввести ранее созданный пароль для частного ключа.

Теперь сертификат:

openssl pkcs12 -export -in ca.cer -inkey ca.key -out ca.pfx

mkdir SERV/some.domen.ru

И создается своя собственная конфигурация:

nano SERV/some.domen.ru/openssl.conf

Внутри него должны находиться настройки, указанные ниже. Они аналогичны тем, которые уже создавались.

Для генерации ключей используется команда:

sudo openssl genrsa -passout pass:1234 -des3 -out SERV/some.server.ru/server.key.1 2048

В данной строке используется пароль 1234. Он нужен на некоторое время.

Теперь пароль из команды убирается:

openssl rsa -passin pass:1234 -in SERV/some.server.ru/server.key.1 -out SERV/ some.server.ru/server.key

Теперь надо подписать ключ:

openssl req -config SERV/some.server.ru/ openssl.conf -new -key SERV/some.server.ru/ server.key -out SERV/some.server.ru/ server.csr

И удалить временный: rm -f SERV/ some.server.ru/server.key.1

С помощью проведённых манипуляций появится почтовый сервер, способный просто принимать и отправлять сообщения. Помимо основных, имеются и дополнительные модули, которые можно установить для расширения функционала. Это позволит создать полноценный почтовый сервер на Linux для предприятия.

Дополнительные функции

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

  • Horde. Очень удобный веб-интерфейс для почты. Помимо своей главной задачи обладает встроенными календарем, планировщиком и контактами. Имеет удобную схему конфигурирования и настройки.
  • Amavisd-new. Выполняет роль шлюза и используется в основном для стыковки различных технологий. Amavisd-new получает сообщение, фильтрует его, выясняет, может ли оно представлять опасность, и подключает дополнительные функции других модулей для проверки.
  • SpamAssassin. Как следует из названия, модуль фильтрует письма по определённым правилам, вычисляя спам. Может использоваться как отдельно, так и в составе различных демонов.
  • ClamAV. Популярный в Linux-среде антивирус. Является свободным программным обеспечением. Умеет работать со множеством различных почтовых серверов, сканировать файлы и сообщения «на лету».
  • Razor. Данный модуль хранит контрольные суммы спам-писем и напрямую взаимодействует с P ostfix.
  • Pyzor — еще один инструмент для определения сообщений, содержащих вредоносный или бесполезный для пользователя код.
  • Fail2ban. Инструмент, защищающий учетные записи пользователей от взлома паролей перебором. После определенного количества попыток конкретный IP-адрес блокируется на какое-то время.
  • Mailman. Удобное средство для создания рассылок через веб-интерфейс.
  • Munin. Инструмент для мониторинга работы сервера. Имеет большое количество готовых плагинов, расширяющих его возможности. Работу сетевых протоколов можно отследить на удобных графиках.

Заключение

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

Однако в случае поломки сервера придётся долго вникать и понимать устройство системы. Статья на примере почтового сервера Postfix показала базовые способы и методы настройки для первичной работы. Вкупе с большим количеством модулей, плагинов и надстроек это позволит создать мощный и надежный инструмент для отправки и получения сообщений.

Электронная почта - это не просто веб-сайт, на котором вы можете обмениваться сообщениями, такой как вконтакте или фейсбук. Это более сложный механизм, который работает с помощью собственного протокола. В сети почтовые клиенты отправляют письма на почтовый сервер, затем они уже направляются к адресату. Именно потому мы можем отправлять почту всем адресатам, независимо от их домена, 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. А какой почтовый сервер используете вы? Какой считаете лучшим? Почему? Напишите в комментариях!

Представляем вашему вниманию новый курс от команды The Codeby - "Тестирование Веб-Приложений на проникновение с нуля". Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое.


Этот урок расскажет как настроить работающий почтовый сервер в Ubuntu или Debian. Как мы знаем, два главных протокола используются в почтовом сервере — это SMTP и POP/IMAP. В этом уроке postfix будет использован для SMTP, в то время как dovecot будет использоваться для POP/IMAP. Они оба с открытым исходным кодом, стабильные и имеют множество настроек.

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

Предварительные требования

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

  • Прямая зона для example.tst:
IN MX 10 mail.example.tst. mail.example.tst. IN A 192.168.10.1
  • Обратная зона для example.tst:
192.168.10.1 IN PTR mail.example.tst.

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

Настройка имени хоста (hostname)

Во-первых, hostname почтового сервера должно быть определено в /etc/hostname и /etc/hosts. Причём в первом файле следует размещать только имя хоста.

Root@mail:~# vim /etc/hostname mail root@mail:~# vim /etc/hosts ## IP Полностью определённое доменное имя Имя хоста ## 192.168.10.1 mail.example.tst mail

Добавление пользователей

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

Root@mail:~# adduser alex

Установка и настройка SMTP

SMTP: Установка postfix

root@mail:/etc/postfix# vim main.cf ## имя сервера ## myhostname = mail.example.tst ## определение псевдонимов ## alias_maps = hash:/etc/postfix/aliases alias_database = hash:/etc/postfix/aliases ## определение transport ## transport_maps = hash:/etc/postfix/transport ## myorigin задаёт доменное имя для писем, берущих начало с этого сервера. В нашем случае, все исходящие письма должны иметь "@example.tst" в качестве домена отправителя ## myorigin = example.tst ## mydestination параметр определяет, какие домены эта машина будет доставлять локально вместо того, чтобы переправлять на другую машину. ## mydestination = mail.example.tst, localhost.example.tst, localhost, hash:/etc/postfix/transport ## адрес smarthost. В этом уроке не используется, о нём будет расказанов в будущей инструкции ## relayhost = ## доверенные сети отправителя. postfix не будет пересылать письма, приходящие из других сетей ## mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.10.0/24 ## размер почтового ящика в байтах. 0 означает без ограничений ## mailbox_size_limit = 0 ## postfix будет прослушивать все доступные интерфейсы, например, eth0, eth1, eth2 и так далее ## inet_interfaces = all
  • transport

Письмам, предназначенным для домена example.tst, определено быть доставлено локально без каких-либо DNS запросов.

root@mail:/etc/postfix# vim transport example.tst local: .example.tst local: root@mail:/etc/postfix# postmap transport
  • aliases

Предполагаем, что все письма, отправленные пользователю userA, должны быть доставлены также пользователю userB, для этого файл aliases изменён как показано ниже:

Root@mail:/etc/postfix# vim aliases userA: userA, userB root@mail:/etc/postfix# postalias aliases

Обратите внимание: Синтекс "userA: userB" определяет, что почта должна быть направлена только пользователю userB. Пользователь userA не будет получать копию письма.

SMTP: Запуск и обслуживание

postfix может быть запущен командой.

Root@mail:~# service postfix restart

Лог-файл в /var/log/mail.log должен предоставить полезную информацию, если что-то пойдёт не так. Прослушивает ли почтовый сервер TCP порт 25 можно также проверить используя netstat.

Root@mail:~# netstat -nat tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN

Как видно из вывода, сервер прослушивает TCP порт 25 для входящих запросов соединений.

Установка и настройка POP/IMAP

POP/IMAP: Установка dovecot

POP/IMAP: Подготовка конфигурационных файлов

Следующие параметры изменяются как нужно.

Root@mail:~# vim /etc/dovecot/conf.d/10-mail.conf ## расположение почтовых ящиков, заданных в формате "mbox" ## mail_location = mbox:~/mail:INBOX=/var/mail/%u ## dovecot даны необходимые разрешения на чтение/запись пользовательских почтовых ящиков ## mail_privileged_group = mail

Этого должно быть достаточно для запуска службы POP/IMAP в почтовом сервере.

POP/IMAP: Установка службы

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

Root@mail:~# service dovecot restart

Вновь лог-файл (/var/log/mail.log) может предоставить важные зацепки, если что-то пойдёт не так. Узнать, запущен ли dovecot, можно при использовании netstat следующим образом.

Root@mail:/etc/dovecot/conf.d# netstat -nat tcp 0 0 0 0.0.0.0:110 0.0.0.0:* LISTEN tcp 0 0 0 0.0.0.0:143 0.0.0.0:* LISTEN

Использование почтового сервера с пользовательской почтовой программой

Почтовый сервер теперь готов к использованию. Почтовая учётная запись может быть настроена с использованием вашего любимого почтового клиента на настольном компьютере, ноутбуке, планшете или телефоне. Можно настроить и webmail (почту с веб-интерфейсом) на сервере, но инструкция по webmail будет в следующих уроках. На данном этапе, почтовая программа Mozilla Thunderbird определила следующие настройки для моего сервера:

Решение проблем с почтовым сервером

  • Лучший ваш друг – это лог-файл /var/log/mail.log. Любые зацепки, почему почта не работает, могут быть найдены здесь.
  • Убедитесь, что файервол должным образом настроен.
  • Убедитесь, что DNS сервер имеет должные записи.

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

Валидные DNS записи необходимы для живых почтовых серверов. Можно сделать тюнинг настроек postfix и dovecot в соответствии с потребностями.

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

Надеюсь это поможет.

Эти программы нельзя установить на виртуальный хостинг . Полностью автономный почтовый сервер можно сделать только на виртуальном частном (выделенном) сервере, т. е. На VDS (VPS). — эта статья, как следует из заголовка, расскажет вам о качественном и при этом самом дешёвом варианте виртуального частного сервера, которые при этом ещё и используют облачные технологии.

Вообще, тема почты очень близка авторам , мы уже рассматривали в разное время вопросы создания почты на своих собственных доменах (это позволяет выбрать короткие и красивые имена для почтовых ящиков), как «прикрутить» свой домен к mail.ru да и вообще к любому популярному почтовому ящику, как создать свою автономную почту на хостинге и т. д. Всё это и многое другое вы сможете найти по тегу своя почта.

Гарант является доверенным посредником между Участниками при проведении сделки.