Почта на своем сервере windows

Статья давно не обновлялась, поэтому информация могла устареть.

Содержание

  • 1 Установка почтового сервера
  • 2 Описание настроек почтового сервера hMailServer
    • 2.1 Status
    • 2.2 Domains
    • 2.3 Rules
    • 2.4 Settings
    • 2.5 Utilities

Установка почтового сервера

В качестве почтового сервера на ОС Windows будем использовать бесплатный почтовый сервер hMailServer. Заходим на сайт Hmailserver в разделе Download скачиваем последнюю доступную версию для установки. Запускаем установку сервера. На пункте выбора типа установки выбираем полную. Выбираем тип сервера баз данных, если планируется большое количество почтовых ящиков и критична их сохранность, выбираем Use external database Engine (MSSQL, MySQL or PostgreSQL) Устанавливаем пароль администратора, обязательно запомните его. После установки возникнет окошко соединения с сервером. Для удобства запуска приложения, установите опцию «Automatically connect on start-up» и нажмите «Connect». На приветственном окне нажимаем кнопку Add domain… Так же добавлять домены можно в разделе Domains-Add…

Hmail.jpg

Добавляем домен

Hmail1.jpg

Выделяем домен и в разделе Accounts добавляем почтовый аккаунт

Hmail2.jpg

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

Описание настроек почтового сервера hMailServer

Status

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

Hmai3.jpg

В разделе Status-Status собрана статистика сервера, uptime сервера, количество обработанных писем, обнаруженных вирусов и спам-сообщений. Так же в этом разделе отображается количество активных SMTP, POP3, IMAP-сессий.

Hmail4.jpg

В разделе Status-Logging можно включить логирование и в прямом “эфире” наблюдать подключения к почтовому серверу. В разделе Status-Delivery Queue находится почтовая очередь, в этом же разделе почтовую очередь можно очистить.

Domains

В разделе Domains можно удалять, добавлять, редактировать настройки домена. Рассмотрим подробнее настройки домена.

В разделе General можно включать/выключать почтовый домен. В разделе Names можно добавить alias для почтового домена. В разделе Signatures можно добавить подпись для писем, отправляемых с ящиков указанного почтового домена. Можно определить условия использования подписи:

  • Для всех ящиков, у которых нет подписи
  • Перезаписывать подпись почтового ящика
  • Добавлять подпись к подписи почтового ящика

Можно добавить текстовую и/или html-подпись.

Hmail5.jpg

В разделе Limits устанавливаются лимиты. Maximum Size (Mb) — устанавливает лимит по размеру на все почтовые сообщения во всех почтовых ящиках домена. Maximum message size (Kb) — если значение задано, то hMailServer будет отвергать сообщения больше указанного значения. Если параметр не задан, то будет использоваться значение, указанное в настройках SMTP. Max size of accounts (Mb) — если значение задано, то администратор не сможет добавлять аккаунты с общим объемом, превышающим значение. Так же в этом разделе можно настроить максимальное количество аккаунтов, алиасов и списков рассылок.

Hmail6.jpg

В разделе DKIM Signing можно настроить DKIM-подпись. Для формирования подписи и ключа рекомендую воспользоваться ресурсом dkim-wizzard В Pivate key file указываем файл с приватным ключом. В пункте Selector указываем селектор, который должен соответствовать записи в DNS. Например, если ваша запись DNS называется myselector._domainkey.example.net, вы должны ввести «myselector» в качестве селектора (без кавычек).

Hmail7.jpg

В разделе Advanced можно настроить адрес для пересылки почты, которая присылается на все несуществующие почтовые ящики, включить, так называемый “Plus addressing” и указать для него символ. Можно включить/выключить greylisting.

Hmail8.jpg

В разделе Domains-Accounts производятся настройки каждого конкретного почтового ящика. На вкладке General находятся главные настройки аккаунта. Адрес, пароль и размер почтового ящика. Также можно указать уровень доступа пользователя к серверу:

  • User- может менять настройки аккаунта, например пароль.
  • Domain — пользователь может изменять базовые настройки домена и пользователей в домене. Может добавлять пользователей, алиасы, листы рассылок, удалять объекты, увеличивать лимиты аккаунтов.
  • Server — пользователь может менять настройки сервера и всех доменов в нем.

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

Hmail2.jpg

На вкладке Auto-reply можно настроить автоответчик, указать тему и сообщение автоответчика, а также дату, до которой автоответчик включен.

Hmail10.jpg

Во вкладке Forwarding можно настроить адрес для пересылки почты. Во вкладке Signature настраивается подпись для аккаунта, так же как и для домена, можно настроить txt и html-подпись. Во вкладке External accounts можно настроить hMailServer для скачивания почты с других почтовых серверов, используя протокол POP3, после того, как сообщение будет скачано, к нему будут применены все настройки сервера, после этого сообщение будет доставлено в локальный аккаунт. Во вкладке Rules настраиваются правила, которые работают так же как глобальные правила, но применяются только к сообщениям. Подробнее смотрите раздел Rules. Во вкладке Active Directory можно подключить аккаунт Active Directory. Когда пользователь подключится к серверу hMailServer, будет использовать Active Directory для валидации пароля пользователя. Во вкладке Advanced можно указать Имя и Фамилию пользователя (эти данные не используются hMailServer). Можно отредактировать IMAP-папки, очистить содержимое всех IMAP-папок.

Во вкладке Domains-Aliases настраиваются алиасы для почтовых ящиков.

Hmail11.jpg

В Domains — Distribution lists производится настройка списка рассылки. Address — адрес рассылки, сообщения, посланные на этот адрес, будут пересланы всем в списке рассылки. Существует 3 режима:

  • Public — любой может слать письма.
  • Membership — только члены списка могут спать письма.
  • Announcements — сообщения могут отправляться только с определенного почтового ящика.

Require SMTP Authentication — если установлен этот флаг, то hMailServer потребует аутентификации SMTP для доставки по списку рассылки. Если выбран этот параметр , только пользователи с учетными записями на сервере будут иметь возможность отправлять электронную почту в список рассылки. На вкладке Members можно добавлять почтовые адреса. Поддерживается добавление адресов из hMailServer (Select…) и импорт из текстового файла (Import…).

Hmail12.jpg

Rules

В разделе Rules можно включить правила, основанные на содержимом письма, например, можно удалять письма с определенной строкой, или пересылать письма больше определенного размера. Каждое правило имеет критерий и действие. Когда вы создаете правило, вы добавляете критерий, который определяет к какому сообщению будет применено правило. Например, можно добавить критерий, который будет действовать на письма с определенным Message-ID-header. После добавления критерия, добавляем действие. Действие описывает, что должен делать hMailServer с сообщением, если оно соответствует критерию. Например, можно переслать, удалить сообщение или поместить его в определенную папку.

Hmail13.jpg

Settings

В разделе Settings производятся настройки протоколов. Можно настроить антиспам, антивирус (Clamav, требуется дополнительная установка), включить логирование. В Settings-Advanced производятся настройки Auto-ban, SSL-сертификата, портов и Ip-адресов почтового сервера.

Hmail14.jpg

Utilities

В разделе Backup можно сделать бэкап настроек, доменов, сообщений, также там указан скрипт, который можно добавить в ежедневное задание. В этом разделе также можно восстановить данные из бэкапа. В разделе MX-query можно произвести диагностику MX-записи почтового сервера (аналог dig MX) В разделе Server sendout можно отправить сообщение на локальный почтовый адрес. Diagnostics — еще один инструмент диагностики, проверяет подключение по 25 порту, MX-записи домена.

Время на прочтение6 мин

Количество просмотров143K

Не каждая организация может позволить себе покупку дорогостоящего почтового сервера как Microsoft Exchange Server, да и в силу своей «наворочености», не каждой организации он нужен. Некоторое время назад передо мной встала задача запустить почту внутри организации для обмена документами между отделами.

Сразу оговорюсь, что организация, в которой я работаю небольшая, имеет 1 сервер и около 50 клиентских машин. Опыта работы с почтовыми серверами – нет. После недолгих поисков по просторам сети было решено использовать связку RoundCube + hMailServer. В этой статье не будут рассмотрены и описаны все сильные и слабые стороны такой связки, а просто описано как все это заставить работать, но скажу что основные достоинства этого решения – бесплатность и простота в настройке.

Немного теории

С чем имеем дело…
Почтовый сервер – в системе пересылки электронной почты так обычно называют агент пересылки сообщений. Это компьютерная программа, которая передаёт сообщения от одного компьютера к другому. Обычно почтовый сервер работает «за кулисами», а пользователи имеют дело с другой программой — клиентом электронной почты.
hMailServer — бесплатный почтовый сервер под платформу Windows. Работает как служба Windows и включает в себя инструменты администрирования и резервного копирования. Поддерживает почтовые протоколы IMAP, POP3 и SMTP. Для хранения настроек и индексов использует базы данных типа MySQL, MS SQL или PostgreSQL, сами же почтовые сообщения хранятся на жестком диске в формате MIME.
RoundCube Webmail — это клиент для работы с электронной почтой с веб-интерфейсом, написанный на PHP с использованием CSS и XHTML и технологии AJAX. RoundCube Webmail устанавливается практически на любой сервер с поддержкой PHP и MySQL и предоставляет возможность работы с почтовыми ящиками по протоколам IMAP и SMTP. Имеет множество расширений.
Для начала работы необходимо скачать следующие компоненты:
1) hMailServer
2) RoundCube Webmail
3) Веб-сервер VertrigoServ (можно использовать и любой другой)
И так, скачав все необходимое или удостоверившись, что оно есть в наличии, можно смело переходить к началу установки.

Практика

Этап нулевой: Задать сетевой карте статический IP адрес. В данной статье будет использован IP 192.168.0.45.

Этап первый: Установка VertrigoServ.
Не думаю, что стоит детально расписывать установку этого веб-сервера, т.к. ничего замысловатого в этом процессе нет.

Этап второй: Установка hMailServer.
Полностью процесс установки описывать не буду, рассмотрим только основные моменты. На этапе «Select Components» выбираем «Full Installation», далее на этапе «Database type» выбираем «Use external database engine (MSSQL, MySQL or PostgreSQL) и еще пару раз нажав «Далее» начнется установка. Ближе к завершению установки, запуститься приложение hMailServer Database Setup, в котором необходимо указать тип базы данных и прописать реквизиты для подключения.

Рассмотрим настройку подключения пошагово:
&nbsp&nbsp&nbsp Step 1 of 7 – просто жмем «Next»
&nbsp&nbsp&nbsp Step 2 of 7 – выбираем «Create a new hMailServer database»
&nbsp&nbsp&nbsp Step 3 of 7 – выбираем «MySQL» и для того, чтобы на 6 шаге не возникло проблем, копируем файл libmysql.dll находящийся в папке с установленным VertrigoServ в папку \hMailServer\Bin\
&nbsp&nbsp&nbsp Step 4 of 7 – вводим следующие данные:
Database server address – 127.0.0.1 (или localhost)
Port – 3306
Database name – hmail (как пример)
Username – root
Password – vertrigo
&nbsp&nbsp&nbsp Step 5 of 7 – пропускаем
&nbsp&nbsp&nbsp Step 6 of 7 – просто жмем «Next» (при условии, что данные на 4 шаге введены верно, создается база данных)
&nbsp&nbsp&nbsp Step 7 of 7 – «Close»
Заключительный этап установки hMailServer — это «Specify main password», на котором задается «главный» пароль для доступа к программе. После того как пароль задан, установка считается завершенной.

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

Все, служба остановлена. Теперь скачиваем файл с русификацией и помещаем его в папку \hMailServer\Languages\. Остается только вписать имя файла локализации в файл конфигурации hMailServer, для этого открываем файл \hMailServer\Bin\hMailServer.ini и дописываем «ValidLanguages=english,swedish,russian». Сохраняем и закрываем файл. Запускаем службу hMailServer (вызываем правой кнопкой мыши выпадающее меню, в котором выбираем команду «Пуск»).

Этап третий: Начальное конфигурирование hMailServer.
Запускаем утилиту hMailServer Administrator. Появляется окно «Connect», в котором, выделив единственную запись, жмем на кнопку «Connect»

Программа просит ввести пароль, который был задан на заключительном этапе установке hMailServer. Введя пароль, попадаем в главное окно административной части hMail. В меню «File – Select language…» выбираем «russian» и жмем «ОК», программа автоматически перезапустится, после чего «заговорит» по русски.
Настройка интуитивно понятна, для начала необходимо нажать на кнопку «Добавить домен», в качестве имени домена, выберем «test.loc» и нажмем кнопку «Сохранить» (более детальная настройка почтового домена в этой статье рассматриваться не будет).

Создаем учетную запись, для этого переходим в левой части программы в папку «Учетные записи», а в правой части программы жмем кнопку «Добавить…». Вводим любое имя пользователя (например test), указываем пароль и жмем кнопку «Сохранить» (более детальная настройка пользователей в этой статье рассматриваться не будет). И так, на нашем почтовом сервере появляется первый пользователь test@test.loc.

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

Этап четвертый: Установка RoundCube.
Для начала необходимо содержимое архива roundcubemail перенести в папку \VertrigoServ\www\ (предварительно можно удалить всю «начинку»). Теперь в веб-приложении phpMyAdmin создаем MySQL базу данных для RoundCubeMail, для этого открываем браузер и в адресной строке вводим «127.0.0.1/phpmyadmin» в качестве логина вводим: root, пароль: vertrigo (стандартные реквизиты для VertrigoServ). В поле «Новая база данных» вводим название, например «roundcube» и нажимаем кнопку «Создать».

База данных создана, переходим непосредственно к установке скрипта RoundCubeMail. В адресной строке браузера вводим «127.0.0.1/installer/index.php» и жмем «Enter». Попав на страницу «Roundcube Webmail Installer» жмем кнопку «Start installation». Установка проходит в три этапа.
1. Check environment. Происходит проверка, удовлетворяет ли ваша система требованиям скрипта. Жмем кнопку «Next», если она недоступна, внимательно читаем информацию на странице и исправляем недочеты.

2. Create config. Рассмотрим пункты, которые следует задать/изменить.
Блок General configuration:
product_name – Имя почтового сервера

Блок Database setup:
Database type – MySQL
Database server – localhost
Database name – roundcube
Database user name – root
Database password – vertrigo

Блок IMAP Settings:
default_host – 192.168.0.45
username_domain – test.loc

Блок SMTP Settings:
smtp_server – localhost

Блок Display settings & user prefs:
language – ru_RU

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

Скачиваем сгенерированные конфигурационные файлы и копируем их в папку \VertrigoServ\www\config\. Возвращаемся в браузер и жмем кнопку «Continue».
3. Test config. Это заключительный этап установки, на нем можно проверить правильность конфигурации. Для этого служба hMailServer должна быть запущена.
В блоке «Test SMTP config», в полях «Sender» и «Recipient» введем адрес нашего единственного пользователя test@test.loc, жмем на кнопку «Send test mail», если появляется сообщение «SMTP send:

OK» – значит эта часть настроена верно, в противном случае перепроверьте в конфигурационном файле main.inc.php параметр $rcmail_config['smtp_server'] = 'localhost';.
Теперь проверяем, работает ли IMAP, в блоке «Test IMAP config» в качестве сервера выбираем 192.168.0.45, Username: test@test.loc, Password: пароль который ввели при создании пользователя. Жмем на кнопку «Check login» если в результате получаем сообщение «IMAP connect: OK» значит все сконфигурировано верно, иначе перепроверьте в конфигурационном файле main.inc.php параметр $rcmail_config['default_host'] = '192.168.0.45';.
Убедившись, что все работает, идем в директорию \VertrigoServ\www\ и удаляем папку «Installer».
На этом установка RoundCube Webmail завершена.

Этап пятый: Авторизация в Roundcube.
Этот этап является заключительным, здесь мы авторизуемся под реквизитами пользователя, которого создали на третьем этапе test@test.loc. Для начала откроем браузер и введем в адресной строке 192.168.0.45, нажав «Enter» попадаем на страницу авторизации Roundcube. В поле «Имя пользователя» вводим test@test.loc или просто test. Пароль вводим который ввели при создании пользователя. Жмем на кнопку «Войти» и оказываемся внутри вашего первого почтового ящика!

Вот собственно и все. В данной статье рассмотрены основные настройки связки RoundCube + hMailServer. Спасибо что дочитали до конца!

Почтовый сервер – это устройство, при помощи которого происходит доставка электронных сообщений от отправителя к получателю. Собственно, это и следует из его названия. В данной статье рассмотрим, как происходит установка и базовая настройка почтового сервера на VPS с операционной системой семейства Windows Server, а также на виртуальном сервере, работающем на Ubuntu 20.04.

Установка сервера SMTP на Windows Server

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

Для корректной отправки почтового сообщения от имени домена, к которому будет привязан сервер SMTP, нам необходимо иметь доменное имя. При этом в настройках домена должна быть указана A-запись, содержащая IP-адрес VPS. В нашем примере мы будем использовать имя домена my-domain.host.

Установку почтового сервера нужно будет начать именно с добавления необходимых компонентов. Для этого запустите Server Manager, перейдите ManageAdd Roles and Features.

В открывшемся окне нажмите Next.

Мастер добавления ролей и компонентов - Установка и настройка почтового сервера

Далее выберите опцию Role-based or feature-based installation, после чего нажмите Next.

Выбор установки ролей и компонентов

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

Выбор сервера

На следующем шаге активируйте строку Web Server (IIS), после чего нажмите Add Features.

Добавление компонент веб-сервера (IIS)

Далее нажмите Next.

Выбор установки веб-сервера (IIS)

После чего отметьте строку SMTP Server и нажмите Add Features.

Добавление компонентов сервера SMTP

И нажмите Next.

Выбор установки сервера SMTP

Далее ещё раз нажмите Next.

Роли веб-сервера (IIS)

В следующем окне снова нажмите Next.

Роли веб-сервера (IIS)

Для запуска установки выбранных компонентов нажмите Install.

Установка выбранных ролей и компонентов - Установка и настройка почтового сервера

Настройка сервера SMTP

На следующем этапе необходимо будет настроить сервер SMTP. Для чего в Server Manager перейдите ToolsInternet Information Services (IIS) 6.0 Manager.

В открывшемся окне менеджера IIS раскройте ветку вашего сервера и на строке SMTP Virtual Server нажмите правую кнопку мыши, после чего перейдите в Properties.

Свойства сервера SMTP

Далее в строке IP address: необходимо выбрать IP-адрес вашего сервера и активировать опцию Enable logging.

Указание IP-адреса включение ведения журналов

Во вкладке Access нажмите кнопку Authentication...

Вкладка Доступ

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

Далее в разделе Connection control нажмите кнопку Connection...

Настройка управления подключением

В окне Connection установите переключатель на Only the list below и при помощи кнопки Add... добавьте IP-адрес вашего VPS. После чего нажмите OK.

Точно такую же настройку необходимо проделать в разделе Relay restrictions. Для чего нажмите кнопку Relay... и добавьте IP-адрес вашего сервера установив переключатель в Only the list below.

Настройка ограничений ретрансляции

После чего перейдите во вкладку Delivery и нажмите Advanced...

Настройка доставки

Здесь в строку Fully-qualified domain name: необходимо внести имя вашего домена, в нашем примере это – my-domain.host.

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

Далее сохраните все внесённые в настройки изменения при помощи кнопки OK.

Также необходимо указать корректное имя домена в ветке Domains.

Редактирование имени домена - Установка и настройка почтового сервера

На следующем шаге нужно активировать функцию автоматического запуска сервера SMTP. Для этого запустите командную строку PowerShell и выполните следующие команды для запуска службы:

set-service smtpsvc -StartupType Automatic
start-service smtpsvc

Чтобы убедиться, что служба запущена, необходимо выполнить ещё одну команду:

get-service smtpsvc

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

Вывод команды get-service smtpsvc - Установка и настройка почтового сервера

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

Send-MailMessage -SmtpServer my-domain.host -To your@email.address -From mail@my-domain.host -Subject "Message Subject" -Body "Message Body"

Здесь:

  • my-domain.host – имя домена, с которого будет производиться отправка сообщения;
  • your@email.address – адрес электронной почты, на который будет отправлено сообщение;
  • mail@my-domain.host – этот электронный адрес будет указан в сообщении как адрес отправителя;
  • Message Subject – тема письма;
  • Message Body – тело письма.

После чего проверьте свою почту, на которую должно прийти сообщение от вашего почтового сервера.

Установка и настройка Postfix на Ubuntu 20.04

Для операционной системы Ubuntu существует довольно популярный почтовый сервер – Postfix. Для установки Postfix мы будем использовать виртуальный сервер, работающий на Ubuntu 20.04. При этом на VPS должны быть произведены работы по первоначальной настройке, описанные в соответствующей статье нашего справочника.

Также, для работы Postfix нужен домен с привязанной A-записью, которой является IP-адрес вашего виртуального сервера.

Плюс ко всему, необходимо соотнести имя домена с именем сервера и его IP-адресом. Для этого запустите следующую команду:

$ sudo hostnamectl set-hostname ubuntu-server

Здесь, ubuntu-server – имя нашего сервера, вместо которого вы можете использовать своё.

Теперь при помощи текстового редактора откройте файл /etc/hosts:

$ sudo nano /etc/hosts

В данный файл добавьте строку:

XXX.XXX.XXX.XXX my-domain.host ubuntu-server

В данном случае:

  • XXX.XXX.XXX.XXX – IP-адрес вашего сервера;
  • my-domain.host – имя вашего домена;
  • ubuntu-server – имя вашего сервера.

Теперь запустите установку Postfix и почтового пакета mailutils:

$ sudo apt install postfix mailutils

В процессе установки система попросит вас выбрать тип конфигурации. Необходимо указать Internet Site:

Выбор типа конфигурации - Установка и настройка почтового сервера

Также установщик попросит согласиться с именем домена, в отношении которого производится настройка почтового сервера. В нашем случае это будет my-domain.host.

Подтверждение имени домена при установке Postfix

По окончании установки можно попробовать с нашего почтового сервера отправить тестовое сообщение. Команда для отправки сообщения выглядит следующим образом:

$ echo "Message Body" | mail -s "Message Subject" your@email.address

В данной команде:

  • Message Body – тело письма;
  • Message Subject – тема письма;
  • your@email.address – адрес электронной почты, на который будет отправлено сообщение.

Проверьте свой почтовый ящик (в нашем примере это – your@email.address), на который должно прийти отправленное из Postfix сообщение.

Почтовый сервер, как следует из названия, — это устройство, которое отвечает за корректную доставку электронных писем от отправителя получателю. Так, например, когда вы отправляете почту через Gmail, вероятнее всего вы используете почтовый сервер Google. 

Почтовый клиент — это программа, которая используется непосредственно для работы с почтой: чтения, отправки и хранения. Примеры таких клиентов — Microsoft Outlook, Thunderbird и так далее. 

Протоколы для приёма и отправки почты

SMTP

Сервер исходящей почты использует протокол SMTP — simple mail transfer protocol — дословно переводится как «простой протокол передачи почты». Главная задача протокола — быть ретранслятором между отправителем и получателем. Она заключается в выполнении каждой из двух ключевых функций: проверять конфигурацию и разрешать отправку устройству-отправителю, отправлять сообщение и получать код ответа. 

SMTP-сервер использует 25 и 465 порты для отправки почты с шифрованием и без шифрования соответственно. 

POP3

POP3 (Post Office Protocol) — протокол для получения электронной почты. Он позволяет установить соединение с сервером и загрузить письмо на локальное устройство, чтобы отобразить его в почтовом клиенте. При этом на удалённом сервере информация не сохраняется (однако существует опция создания дублей).

Этот протокол использует 110 и 995 порты (без шифрования и SSL/TLS). 

IMAP

IMAP (Internet Message Access Protocol) — протокол с теми же задачами и функциями, что и POP3. Ключевое отличие в том, что IMAP позволяет работать с почтой непосредственно на сервере, без дублирования почты на локальное устройство. 

Используются порты 143 и 993 (без шифрования и SSL/TLS).

Зачем нужен собственный почтовый сервер

Чаще всего ответ на этот вопрос: «если настроить свой сервер, можно использовать свой домен в адресе электронной почты». Это верный, однако не совсем точный ответ. 

Настроить почту на своём домене вы сможете и без создания собственного сервера. Такую услугу, например, предоставляют VK Group, Яндекс.Почта и Google. Вам нужно только купить домен и привязать его к серверам компании в личном кабинете. 

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

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

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

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

В этой статье мы рассмотрим способы создания собственного почтового сервера. Для наших целей отлично подойдут облачные серверы Timeweb — мы выберем себе устройство с ОС Ubuntu версии 20.04. 

cloud

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

Подготовка сервера

Первый шаг — переход в режим суперпользователя root:

sudo su

Перед установкой необходимого программного обеспечения обновим пакеты на сервере:

apt update && apt upgrade

Затем необходимо проверить, соответствует ли имя сервера домену вашей электронной почты:

hostname

Если в ответе вы видите что-то отличное от желаемого имени сервера, используйте команду hostnamectl:

hostnamectl set-hostname mail.hostname.ru,

где mail.hostname.ru — имя хоста.  

Далее для корректной работы всех планировщиков и непосредственно почты настраиваем временную зону — устанавливаем пакет для синхронизации времени chrony:

apt install chrony
timedatectl set-timezone Europe/Moscow

Если ваша временная зона отличается от МСК, выберите подходящую, воспользовавшись командой timedatectl list-timezones.

Запускаем chrony:

systemctl enable chrony

Теперь нужно открыть порты, необходимые для работы почтового сервера, с помощью утилиты iptables. Нам нужен следующий набор портов: 

  1. 25, 465 — SMTP
  2. 110, 995 — POP3
  3. 143, 993 — IMAP
  4. 80, 443 — HTTP 

В списке выше первыми идут порты для стандартных соединений, а вторыми — для защищённых. Воспользуемся утилитой iptables:

iptables -I INPUT 1 -p tcp --match multiport --dports 25,110,143,465,587,993,995,80,443 -j ACCEPT

Правила iptables сохраняются в течение одного сеанса, то есть после перезагрузки устройства они сбросятся. Чтобы этого избежать, используем пакет iptables-persistent:

netfilter-persistent save

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

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

Postfix — агент передачи почты (mail transfer agent) с открытым исходным кодом. Он имеет модульную архитектуру, которая не требует работы из-под суперпользователя root. Установим приложение postfix и postfix-mysql для работы с базой данных:

apt install postfix postfix-mysql

В диалоговом окне в процессе установки выбираем Internet Site. Это предполагает, что у вас есть доступ к редактированию DNS-записей и вы можете указать FQDN — полное имя домена. В следующем окне оставляем имя сервера и переходим далее. 

Image3

После установки создаём новую учётную запись в системе, из-под этого пользователя будем работать с почтой. С помощью утилиты groupadd создаём группу vmail:

addgroup -gid 1080 vmail

Далее создадим пользователя vmail и назначим ему домашнюю директорию /home/mail:

adduser --home /home/mail -gid 1080 -uid 1080 vmail

… где 1080 — guid группы и uid пользователя. Если он занят, вы можете заменить его на любой другой. 

Проверим, что права на директорию /home/mail принадлежат пользователю vmail и группе vmail:

ll /home

Конфигурация почтового сервера

После создания пользователя можно приступить к настройке postfix. Для этого открываем файл /etc/postfix/main.cf в любом текстовом редакторе:

nano /etc/postfix/main.cf

… и редактируем строки:

# Для каких доменов принимаем почту
mydestination = localhost.$mydomain, localhost, localhost.localdomain

# протокол работы postfix
Inet_protocols = ipv4

# путь до публичного сертификата.
smtpd_tls_cert_file = /etc/ssl/mail/public.pem
# путь до приватного сертификата.
smtpd_tls_key_file = /etc/ssl/mail/private.key

Далее в этот же файл дописываем дополнительные опции, которые необходимы для корректной работы Postfix:

# где будем хранить почту
virtual_mailbox_base = /home/mail
# путь к псевдонимам
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf 
# формат хранения доменов
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
# формат хранения почтовых ящиков
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
# минимальный идентификатор виртуального пользователя
virtual_minimum_uid = 1080
# идентификатор основного пользователя, от которого создаются сообщения
virtual_uid_maps = static:1080
# идентификатор группы, от пользователей которой создаются сообщения
virtual_gid_maps = static:1080
# регистрируем доставщик сообщений
virtual_transport = dovecot

# разрешаем безопасную аутентификацию
smtpd_sasl_auth_enable = yes
# не используем шифрование в сетях $mynetworks
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
# тип аутентификации
smtpd_sasl_type = dovecot
# где лежат временные файлы 
smtpd_sasl_path = private/auth

# шифровать соединение при подключении к другому SMTP-серверу
smtp_use_tls = yes
# поддерживаем подключение TLS
smtpd_use_tls = yes
# и используем только TLS
smtpd_tls_auth_only = yes
# начинаем сессию с HELO (или EHLO)
smtpd_helo_required = yes

Теперь создадим файлы, которые указывали в этой конфигурации. Сперва укажем, где Postfix должен брать псевдонимы. Открываем файл /etc/postfix/mysql_virtual_alias_maps.cf:

nano /etc/postfix/mysql_virtual_alias_maps.cf

… и записываем в него следующие строки:

user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'

Здесь dbname, user и password — база данных, имя пользователя и пароль для подключения к MySQL (настроим позже), query — шаблон запроса.

Делаем аналогичные действия с файлом для получения данных доменов:

nano /etc/postfix/mysql_virtual_domains_maps.cf

Записываем:

user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%u'

Следом — файл с почтовыми ящиками:

nano /etc/postfix/mysql_virtual_mailbox_maps.cf

Записываем:

user = postfix
password = postfixPa$$w0rd
hosts = localhost
dbname = postfix
query = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE username='%s' AND active = '1'

На этом этапе мы можем перейти к настройке файла master.cf:

nano /etc/postfix/master.cf

И записываем туда следующие настройки:

submission   inet  n  -  n  -  -  smtpd
  -o smtpd_tls_security_level=may
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=/var/spool/postfix/private/auth
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_sasl_local_domain=$myhostname

smtps   inet  n  -  n  -  -  smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

dovecot   unix  -  n  n  -  -  pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

Генерация сертификатов безопасности

Для корректной работы почты нужно сгенерировать сертификаты безопасности с помощью утилиты openssl. В первую очередь создаём директорию, в которой будем хранить сертификаты (указывали в файле main.cf):

mkdir -p /etc/ssl/mail
openssl req -new -x509 -days 1000 -nodes -out /etc/ssl/mail/public.pem -keyout /etc/ssl/mail/private.key -subj "/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=mail.devnullhost.ru"

Запускаем и перезагружаем postfix:

systemctl enable postfix && systemctl restart postfix

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

Dovecot — IMAP и POP3 сервер с открытым исходным кодом. Установим его и модули для работы с БД:

apt install dovecot-imapd dovecot-pop3d dovecot-mysql

Настраиваем способ хранения сообщений:

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

Записываем в файл каталог для хранения почты. Будем использовать иерархию домен → пользователь:

mail_location = maildir:/home/mail/%d/%u/

В этом же файле настраиваем метод аутентификации:

service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
  }
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
    group = vmail
  }
}

service stats {
    unix_listener stats-reader {
        user = vmail
        group = vmail
        mode = 0660
    }
    unix_listener stats-writer {
        user = vmail
        group = vmail
        mode = 0660
    }
}

Настраиваем аутентификацию в Dovecot:

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

Заменяем строку !include auth-system.conf.ext на !include auth-sql.conf.ext, указывая, что использовать нужно sql-авторизацию.

Редактируем настройки шифрования:

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

В файле указываем:

ssl = required
ssl_cert = </etc/ssl/mail/public.pem
ssl_key = </etc/ssl/mail/private.key

При первом подключении пользователей создаём каталоги в домашней директории:

nano /etc/dovecot/conf.d/15-lda.conf

Добавляем строку:

lda_mailbox_autocreate = yes

Настраиваем подключение к базе данных:

nano /etc/dovecot/dovecot-sql.conf.ext

И добавим в него:

driver = mysql
connect = host=localhost dbname=postfix user=postfix password=postfixPa$$w0rd
default_pass_scheme = MD5-CRYPT
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT maildir, 1080 AS uid, 1080 AS gid FROM mailbox WHERE username = '%u'
user_query = SELECT CONCAT('/home/mail/',LCASE(`domain`),'/',LCASE(`maildir`)), 1080 AS uid, 1080 AS gid FROM mailbox WHERE username = '%u'

Настраиваем интерфейс Dovecot:

nano /etc/dovecot/dovecot.conf

Указываем:

listen = *

Запускаем и перезагружаем Dovecot:

systemctl enable dovecot && systemctl restart dovecot

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

Для корректной работы PostfixAdmin нужен настроенный веб-сервер, PHP и база данных MySQL (стеки LAMP или LEMP). В этом руководстве пропустим конфигурацию веб-сервера и приступим непосредственно к установке PostfixAdmin.

Устанавливаем необходимые расширения php:

apt install php-mysql php-mbstring php-imap

Скачиваем PostfixAdmin в корневой каталог веб-сервера с помощью утилиты wget:

wget https://sourceforge.net/projects/postfixadmin/files/latest/download -O postfixadmin.tar.gz

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

mkdir -p /var/www/html/postfixadmin && tar -C /var/www/html/postfixadmin -xvf postfixadmin.tar.gz --strip-components 1

И создаём каталог для хранения кэша шаблонов:

mkdir /var/www/html/postfixadmin/templates_c

Ставим на весь каталог права веб-сервера:

chown -R www-data:www-data /var/www/html/postfixadmin

База данных

Создаём базу данных и пользователя:

mysql -u root

Если у вас MySQL версии ниже 8.0.11:

CREATE DATABASE postfix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON postfix.* TO 'postfix'@'localhost' IDENTIFIED BY 'postfixPa$$w0rd';
exit;

Если у вас MySQL 8.0.11 и выше:

CREATE DATABASE postfix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'postfixPa$$w0rd';
GRANT ALL ON postfix.* TO 'postfix'@'localhost';

В локальном файле конфигурации postfix добавим конфигурацию базы данных: 

nano /var/www/html/postfixadmin/config.local.php

Содержимое файла:

<?php
$CONF['configured'] = true;
$CONF['default_language'] = 'ru';
$CONF['database_password'] = 'postfixPa$$w0rd';
$CONF['emailcheck_resolve_domain']='NO';
>

Заходим на страницу установщика postfixadmin в браузере — /postfixadmin/public/setup.php. Здесь нам будет предложено сгенерировать хэш для авторизации.

Image1

Вводим пароль и нажимаем на кнопку. Под формой увидим сообщение, в котором содержится хэш, его мы должны вставить в файл /var/www/html/postfixadmin/config.local.php:

nano /var/www/html/postfixadmin/config.local.php

Image5

Обновляем страницу /postfixadmin/public/setup.php и входим на страницу с паролем, который вводили для генерации хэша. Если сервер настроен верно, в результате мы увидим страницу с проверками конфигурации. 

В самом низу расположена форма, в ней создаём админа. После успешного создания переходим на страницу /postfixadmin/public/login.php и авторизуемся в аккаунт, который только что создали.

В итоге вы будете перенаправлены на стартовый экран панели администрирования. 

Image2

Создаём почтовый ящик в PostfixAdmin

В браузере переходим по адресу /postfixadmin/public/. В верхнем меню выбираем «Список доменов → Новый домен». 

Далее в разделе «Обзор → создать ящик» вводим данные для тестового почтового ящика. 

Image4

Теперь вы можете проверить подключение с помощью почтовых клиентов. Параметры для подключения:

  1. Сервер — имя вашего сервера
  2. IMAP — 143 STARTTLS
  3. POP3 — 110 STARTTLS
  4. SMTP — 25 STARTTLS
  5. Логин и пароль — данные, которые вы указали при создании ящика

Заключение

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

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

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



  • Star

    (83)


    You must be signed in to star a gist



  • Fork

    (18)


    You must be signed in to fork a gist

  • Clone this repository at &lt;script src=&quot;https://gist.github.com/raelgc/6031306.js&quot;&gt;&lt;/script&gt;

  • Save raelgc/6031306 to your computer and use it in GitHub Desktop.

Clone this repository at &lt;script src=&quot;https://gist.github.com/raelgc/6031306.js&quot;&gt;&lt;/script&gt;

Save raelgc/6031306 to your computer and use it in GitHub Desktop.

Setup a Local Only Email Server (Windows Only)

1 — Install hMailServer

Download hMailServer from here: http://www.hmailserver.com/index.php?page=background_download_file&downloadid=207.

  • In setup, select internal db engine.
  • Now you have a service called hMailServer and an administration program on the Windows start menu (hMailServer Administrator).

2 — Create a domain

  • Open hMailServer Administrator program.
  • Click on «Domains» and then «add domain».
  • At «domain name» put a fake domain to test. Use «localhost.com» (without the quotes): hMailServer requires a fully qualified domain, so, we cannot use @localhost.
  • Make sure to add your domain (localhost.com) to hosts file: C:\windows\system32\drivers\etc\hosts

3 — Change server name

  • Expand Settings > Protocols > SMTP -> Delivery of e-mail
  • At «Host name» put «localhost» (without the quotes).
  • Check if TCP Port is 25.

4 — Create an account

  • Go to «Domains», click on the created domain, and then click on «accounts», then «add account».
  • At «address», create your account name, here I use «rael» (without the quotes), and put a password.
  • Change «Administration level» to «Server».

5 — Configure «catch-all» address

  • Enabling this, you can use any email address ending with you fake domain. Example: here, my unique account is rael@localhost.com. But while testing systems, I can use any address like joe@localhost.com, foo@localhost.com, etc, because all will be redirected to rael@localhost.com
  • Open «Domains», click on your domain, open Advanced tab, fill field «catch-all address» with account created on previous step.

6 — Configure an Email client

  • At Windows, you can use Windows Live Email (http://explore.live.com/windows-live-essentials-other-programs?T1=t2).
  • Of course, you can use any email client.
  • While configuring
    • Incoming Server is POP3, and the username is the full email address (like rael@localhost.com), and the password is raw text (no encrypt).
    • POP3 and SMTP server are «localhost» (without the quotes).
    • Outgoing server do not require authentication.
  • Don’t use the email client and the hMailServer Administration application at the same time!

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Hkey local machine software microsoft windows nt currentversion spp
  • Asus x75v драйвера windows 10
  • Где посмотреть версию directx на windows 10
  • Как удалить bittorrent с компьютера windows 7
  • Active directory app mode windows xp