Что такое сервер с точки зрения комплектующих? Тот же ПК, только представлен зачастую в другом корпусе, а железо полностью ориентировано на безотказность и нагрузки в режиме 24/7.
Конфигурация сервера зачастую произвольная, поскольку полностью зависит от возлагаемых на машину задач, хотя сценарий монтажа и тестирования в большинстве случаев одинаков. О том, как происходит сборка и запуск сервера расскажем подробно в нашей статье.
За подбор комплектующих отвечает системный администратор, выполняющий сборку по спецификациям с учетом особенностей платформы.
В корпусах типа Tower или Rack (1U/2U/4U) чаще всего можно наблюдать классическую картину:
- 1 или 2 процессора под массивными радиаторами;
- оперативная память с поддержкой коррекции ошибок;
- грядка дисковых/твердотельных накопителей;
- графический адаптер;
- плата скоростного сетевого подключения;
- различные контроллеры (RAID, звук и т.д.).
И все это подпитывает один, а то и парочка блоков питания с горячей заменой.
Также в задачу профильных инженеров входят сверка серийных номеров оборудования, регистрация в учетной записи клиента, полная первичная настройка сервера и тестирование системы на стрессоустойчивость. Но это вкратце. Далее расскажем о процессе подробнее.
- Порядок монтажа оборудования
- Шаг 1. Установка материнской платы
- Шаг 2. Инсталляция процессоров
- Шаг 3. Установка плат расширения и рабочих модулей
- Первый запуск и установка ПО
- Протоколы для приёма и отправки почты
- Зачем нужен собственный почтовый сервер?
- Создание почтового сервера
- Установка и настройка Postfix
- Конфигурация почтового сервера
- Генерация сертификатов безопасности
- Установка и настройка Dovecot
- Установка и настройка PostfixAdmin
- Создаём почтовый ящик в PostfixAdmin
- Заключение
Порядок монтажа оборудования
Инсталляция комплектующих может отличаться для корпусов различных форм-факторов. Но давайте возьмем за константу, что блоки питания во всех современных серверах модульные — плюс с поддержкой горячей замены, а потому ставятся последними.
NB! наденьте специальные диэлектрические печатки и заземляющий браслет. Статика — это не только веселые трескучие вспышки, возникающие, когда снимаешь свитер в темноте, но и смерть для комплектующих.
Шаг 1. Установка материнской платы
Первым делом коробку готовят к установке материнской платы и дополнительных модулей расширения. Для этих целей в корпус вкручивают шестигранные латунные стойки на соответствующие места. Они слегка приподнимают текстолит над металлической крышкой, чтобы избежать короткого замыкания. Дополнительно между МП и стенкой прокладывают диэлектрик. Параллельно не забудьте удалить заглушки с той части корпуса, куда будут «выглядывать» разъемы карт расширения.
Вооружившись все теми же перчатками, достаньте материнскую плату из коробки. Если в ней стоит батарейка CMOS (BIOS/UEFI) — уберите ее на время. Дополнительные меры предосторожности от статики и КЗ по конденсаторам и цепям питания. Ремонтировать долго, дорого, и никто потом спасибо не скажет за простой.

Шаг 2. Инсталляция процессоров
Пока основная плата еще не прикручена — самое время начинить ее процессорами. Обратите внимание, что LGA-сокеты Intel и AMD не просто так защищены пластиковой крышкой. Подошва ЦП примыкает к огромному количеству контактов-ножек на плате. Малейшая неосторожность и быть беде. Вооружитесь инструкцией, которую к своим товарам прикладывают всем производители материнских плат и процессоров. Особенно, если ранее не делали этого самостоятельно.
Процессор сел в сокет? Отлично, самое время накрыть его радиатором системы охлаждения. Не забудьте про термопасту между площадкой ЦП и подошвой радиатора.
Полностью подготовленная плата ставится в корпус на ранее вкрученные латунные проставки. Их количество и расположение должны идеально соответствовать крепежным отверстиям на МП. И не стоит проверять текстолит на прочность — он этого не оценит.
Далее, пока вам ничего не мешает, подключите питающие кабели, грядку USB и других портов передней/задней панелей, кнопки перезагрузки. Стяните провода стяжками, чтобы аккуратно уложить их в узком пространстве корпуса. На этом базовая часть завершена.

Шаг 3. Установка плат расширения и рабочих модулей
Первое, на что стоит обратить внимание — оперативная память. Мало того, что ее стандарт и рабочая частота должны соответствовать спецификациям процессора, так еще и слоты для установки на плате играют роль. Само собой, если вы не решились забить все гнезда плашками ECC-памяти.
Каждый производитель материнских плат предоставляет подробную инструкцию по работе ОЗУ:
- в двухканальном режиме;
- в трехканальном режиме;
- в четырехканальном режиме и т.д.
Чем больше каналов — тем выше пропускная способность. Допустим, один канал демонстрирует работу на скорости 25600 МБ/с (характерно для DDR4 3200 МГц). В двухканале показатель удвоится до 51200 МБ/с, а в четырехканале и вовсе возрастет до 102400 МБ/с.
В целом, у ОЗУ есть ряд технических ограничений, которые необходимо строго соблюдать:
- недопустимо нечетное количество планок, иначе скорость работы сильно снизится;
- объем и частота ОЗУ должны быть идентичны для всех плашек;
- закупите модули от одного производителя, чтобы избежать проблем с совместимостью;
- внимательно изучите характеристики процессора, чтобы не переплатить за ОЗУ.
Информация касается как чипов Intel, так и AMD. Если вы не уверены в особенностях работы серверной оперативной памяти — обязательно проверьте спецификации к процессорам.

Последний этап сборки — подключение плат расширения в плоты PCI-E (RAID-контроллеры, графические ускорители, сетевые платы). Для них также предусмотрены специальные посадочные гнезда, коннекторы и шлейфы.
И перед закрытием крышки не забудьте вернуть на место все вентиляторы системы охлаждения, которые изъяли из корпуса. На современных серверах они модульные и с магнитными креплениями, поэтому о них периодически забывают.




Первый запуск и установка ПО
Как узнать, что железо работает? Включить сервер и подождать. Только не забудьте монитор подключить. Если картинка есть — значит сборка проведена успешно. Осталось убедиться в нюансах:
- все планки ОЗУ подключены верно;
- провода питают все необходимые элементы;
- сервер видит все комплектующие;
- нет необходимости срочно менять дефектные устройства.
В качестве ПО можно использовать набор тестов ODSL Database Test Suite или аналоги. Нашли дефект, BSoD или нерабочий порт? Самое время сказать об этом дистрибьютору. А если все в порядке — самое время установить серверную операционную систему, а также ряд программ для нагрузочного стресс-теста (Memtest 64, AIDA 64, OCCT, Prime 95, Stress-ng или POSIX Stress).
Так вы поймете, как обстоят дела с температурой, скоростью, пропускной способностью памяти и сети. Появятся мысли насчет будущего апгрейда.
Стоит ли сегодня заниматься самостоятельной сборкой и настройкой сервера? Только в том случае, если у вас крайне ограниченный бюджет. Мы же рекомендуем обратиться к специалистам по ряду причин:
- все возможные дефекты железа устраняются нами же;
- сборка проходит несколько циклов тестирования;
- комплектующие идеально совместимы между собой;
- самое свежее ПО для работы;
- гарантия на сервер в сборе.
Остались вопросы? Не стесняйтесь задавать их консультантам компании Market.Marvel. Мы предложим оптимальные сборки сервера под нужды вашего бизнеса. Также предоставим необходимую информацию о совместимости компонентов, предложим решения по увеличению быстродействия оборудования. В любой момент вы можете обратиться за консультацией к специалистам нашей компании, и мы ответим на все интересующие вас вопросы.
Хотели бы вы узнать, что такое веб сервер? Или же впервые в жизни «потрогать» виртуальную машину? А может вам просто интересно, как выглядит хостинг? С любовью для пикабушников постараюсь рассказать обо всем по немножко.

Disclamer: Данный материал является ознакомительным и рассчитан на людей, которые только начинают свой путь в мире IT технологий. Технические подробности всего раскрываться не будут(но на вопросы отвечу). Следующий материал является прямым скриптом, как сделать веб хостинг. И небольшая просьба, если вы добавляете в сохранки, оцените пост, тем самым вы даете мне понять, следует ли делать подобные гайды.
Первым делом устанавливаем нашу программу виртуализации — VMWare. Запускаем ее и нажимаем «Создать новую ВМ». Выбираем скачанный дистрибутив


В пункте Network Adapter выбрать значение Bridged и установить галочку Replicate.


Далее нам следует получить права супер пользователя, в терминале вводим команду sudo su и вводим пароль, который вы указывали при установке системы.
Сначала мы обновим ОС до актуальной версии. Вводим в терминал команду:
apt-get update && apt-get full-upgrade -y
Вы превосходны! Теперь вы имеете готовую машину, для создания веб сервера. Далее мы и установим наш веб сервер Nginx.
apt-get install nginx
После установки вы можете посмотреть его статус с помощью команды
systemctl status nginx

Примечание: Пример управления процессами в ubuntu — systemctl stopstartstatus
eload
Собственно, веб сервер уже находится в активном состоянии и вы даже можете зайти на свой «сайт». Для этого вам стоит узнать локальный адрес своей виртуальной машины. Что бы его узнать, вводим в терминал:

127.0.0.1 — это localhost, адрес вашего компьютера по умолчанию, если так можно выразиться. Нам нужен тот, который начинается(в большинстве случаев), с 192.168.*.*
Копируем наш адрес, вставляем в браузер виртуальной машины или своего компьютера, без разницы. и мы увидим автоматически сгенерированную страничку HTML при установке Nginx

Файлик этот лежит в /var/www/html/
Что бы его отредактировать, введите

При вводе пути каталогов вы можете нажимать Tab, что бы автоматически заполнялось существующее имя. Например /var/ww *жмем таб* выводится /var/www/. Так же если вы не знаете, что находится в данном каталоге, но если хотели бы узнать, нажмите таб дважды, например /var/ *2-x tab*:

Примечание: перемещение по каталогам осуществляется с помощью утилиты cd. Если вы не работали с терминалом — краткое пособие
Выйти из редактора можно комбинацией клавиш Crtl+X. nano — это текстовый редактор, аля блокнот в винде, только этот в терминале.
Теперь нам нужно показать наш «сайт» всему миру, верно? И еще бы денег не потратить, ведь их и так нет. В этом нам поможет сервис с бесплатными динамическими DNS серверами. Он выдаст нам бесплатно доменное имя на 30 дней, его потом можно так же вручную продлевать на 30 дней.
Сперва нам следует выяснить одну вещь. Как вы подключены к интернету. Кабель идет на прямую в компьютер или в роутер. На этом этапе нам придется заниматься сложными, для новичка, вещами — port mapping или проброс портов.
1. Кабель в компьютер на прямую(или через свитч). Открываем yandex.ru/internet. Копируем графу IP V4. На своем компьютере запускаете консоль от имени администратора и вводите команду:
netsh interface portproxy add v4tov4 listenport=8080 listenaddress=YouIPv4 connectport=80 connectaddress=IP адрес вашей ВМ
Эта команда перенаправляет весь трафик поступающий конкретно на ваш компьютер из интернета, на порт nginx-a, который находится в ВМ. Более подробно про проброс — тут
2. Если у нас кабель идет из роутера в компьютер.
Перенаправлять весь трафик с порта 8080 на порт 80, IP адрес вашей ВМ. В моем случае IP адрес 192.168.0.102, протокол TCP.

Идем на сайт
, регистрируемся, заходим в раздел DynamicDNS.
Жмем кнопку Create Hostname.
Вводим имя нашего хоста и выбираем любой Free Domain. В IPv4 вводите адрес либо своего ПК, если подключены на прямую, либо своего роутера, если подключены через роутер.

После создания домена информация на серверах noip может обновляться до суток, но обычно в течении 5 минут все заводится.

P.S. Если статья зайдет, я могу рассказать, как сделать переход без порта 8080, как подключить ssl сертификаты, что бы быть правильными мальчиками и девочками, ходить по 443 порту, редиректить все с http 80 на https 443, как правильно настроить фаервол, как привинтить купленный домен и даже закинуть конструктор сайтов, про который я писал статью, на свой хостинг. Хорошего дня, спасибо что прочитали мой гайд до конца, не забываем про плюсики и комменты 🙂
P.S.S. Вообще веб сервер можно развернуть и на своем собственном компьютере, без виртуалки, но лучше все делать сразу правильно. Не стоит засорять свой бастион мусором, это ваш центр управления, а не тестовая площадка.

Я никогда раньше не играл в Minecraft. Скажу даже больше, мне он был не особо интересен. Скорее все, по причине того, что я не понимал его идеи. Да, я видел, что в нем можно строить бесконечное множество сооружений, выращивать разного вида растения и животных, строить механизмы. Но я все еще не мог понять, как за этой игрой с примитивной графикой мои дети могут проводить целые дни напролёт.
Но вот в один прекрасный день, восьмилетний сын пожаловался, что у него мало друзей и ему почти не с кем играть в Minecraft. Особенность стандартной бесплатной сетевой игры в Minecraft является то, что друзья могут играть на твоей карте только тогда, когда она запущена у тебя на компьютере или мобильном устройстве. Но если ты выходишь из игры, друзья тоже не могут подключиться. Поэтому всегда приходилось ждать, когда друг освободится, либо играть самому.
Я начал думать, как ему помочь найти больше друзей и решить проблему с игрой по сети. Я знал, что есть альтернативная версия сетевой игры от Minecraft, которая называется Realms. Это платная подписка, по которой ты можешь создавать свой сервер, а Minecraft выступает хостером. Недостаток этого варианта в том, что играть на таком сервере может до 10 человек. Так же нет возможности устанавливать моды — дополнения от сторонних разработчиков, которые изменяют или дополняют оригинальный контент Minecraft. Такие сервера без модов еще называют ванильными.
Таким образом, изучив немного тему, я предложил ребенку поднять сервер с какой нибудь интересной картой и разместить его IP адрес в интернете, что бы на него заходили другие игроки. Таков был план по поиску друзей для совместной игры.
Я знал, что существует две версии Minecraft. Одна — это Pocket Edition, предназначена для мобильных устройств и Windows 10, вторая — Java Edition, для ПК. Как оказалось они не совместимые друг с другом, поэтому я выбрал Java Edition, так как в игровом мире этой версии больше возможностей, в добавок под нее существует более широкий выбор плагинов. Ну и еще потому, что я Java разработчик.
Следующие пару часов я занимался тем, что создавал дроплет на digitalocean.com и разбирался, как запустить сервер Minecraft.
Оказалось, что помимо нативного Vanilla сервера, существуют так же сторонние имплементации API для взаимодействия с игровым миром. Одна из них, Spigot — модификация оригинального сервера, позволяющая помимо прочего запускать плагины сторонних разработчиков, существенно расширяя возможности игрового мира. Такие плагины позволяют создавай мини-игры, вводить ограничения для игроков, объединять сервера в сеть и многое другое. Я остановился именно на этой реализации сервера, так как под него было множество плагинов и огромное комьюнити как разработчиков, так и пользователей.
Для нашего с сыном первого сервера нужна была карта мира. Можно было создать ее самостоятельно, но я решил взять готовую и при необходимости ее доработать. Выбирая среди множества доступных бесплатно карт я понял, что мне они не нравятся. Тогда я решил посмотреть карты на платных сайтах. Они оказались совершенно другого качества, очень креативные, красочные и реалистичные. Я остановился на одной из них, пиратском острове. Мне она так понравилась, что я решил ее купить. Так я потратил первые $20. Тогда я еще не подозревал, что это было только начало.
Совсем скоро я понял, что одной картой не обойдусь.

Я знал, что сын играет в мини игры и я хотел попробовать установить одну из его любимых. Называется она Murder Mystery. Эта игра с довольно простыми правилами. Есть детектив, который должен найти маньяка. Маньяк должен убить всех игроков. Все остальные — мирные жители, они могут собирать золото, которое обеспечит их защитой в виде лука. В начале игры неизвестно, кто маньяк, пока в его руке не появится меч.
Таким образом нам нужны были две карты, первая — для так называемого лобби, куда попадают все только что подключившиеся к серверу игроки. Вторая карта — непосредственно для самой мини-игры. Так же мне нужно было найти сам плагин игры и разобраться, как реализовать переход из лобби в игру и назад. Я посмотрел, как это реализовано на популярных серверах и понял, что есть несколько вариантов. Самых распространённых два — переход при нажатии на табличку и при нажатии на игрового персонажа, так называемого npc. Первый способ мне показался более примитивным и менее привлекательным. Вариант с персонажем был более интересным, с возможностью менять внешний вид npc, создавать голографические надписи и т.д.
Следующим этапом был поиск и установка соответствующих плагинов, которые позволяли бы переходить между картами, назначать команды для npc, отключать возможность наносить урон игрокам и многое другое. Сервер начал обрастать функционалом, а меня начал затягивать это процесс. Становилось понятно, что существуют огромные возможности по модификации игрового мира и мне, как Java разработчику, было интересно больше узнать про процесс разработки плагинов, которые также в большинстве своих случаев написаны на Java.
Мы с сыном разделили обязанности, я занимался в основном серверной частью, он доработкой и улучшением карт. Я тоже, ради интереса, начал подключаться к этому процессу и заметил для себя, что строительство песочного пляжа и пещер с водопадами позволяют отлично отдохнуть после трудового дня.

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

Если вы так же, как и мы, любите Minecraft и вам понравилась наша история, заходите в гости и посмотрите, что и как у нас получилось. Если у вас есть вопросы по технической части, добавляйтесь в Discord.
Почтовый сервер, как следует из названия, — это устройство, которое отвечает за корректную доставку электронных писем от отправителя получателю. Так, например, когда вы отправляете почту через Gmail, вероятнее всего вы используете почтовый сервер Google.
Почтовый клиент — это программа, которая используется непосредственно для работы с почтой: чтения, отправки и хранения. Примеры таких клиентов — Microsoft Outlook, Thunderbird и так далее.
Протоколы для приёма и отправки почты
Сервер исходящей почты использует протокол SMTP — simple mail transfer protocol — дословно переводится как «простой протокол передачи почты». Главная задача протокола — быть ретранслятором между отправителем и получателем. Она заключается в выполнении каждой из двух ключевых функций: проверять конфигурацию и разрешать отправку устройству-отправителю, отправлять сообщение и получать код ответа.
SMTP-сервер использует 25 и 465 порты для отправки почты с шифрованием и без шифрования соответственно.
POP3 (Post Office Protocol) — протокол для получения электронной почты. Он позволяет установить соединение с сервером и загрузить письмо на локальное устройство, чтобы отобразить его в почтовом клиенте. При этом на удалённом сервере информация не сохраняется (однако существует опция создания дублей).
Этот протокол использует 110 и 995 порты (без шифрования и SSL/TLS).
IMAP (Internet Message Access Protocol) — протокол с теми же задачами и функциями, что и POP3. Ключевое отличие в том, что IMAP позволяет работать с почтой непосредственно на сервере, без дублирования почты на локальное устройство.
Используются порты 143 и 993 (без шифрования и SSL/TLS).
Зачем нужен собственный почтовый сервер?
Чаще всего ответ на этот вопрос: «если настроить свой сервер, можно использовать свой домен в адресе электронной почты». Это верный, однако не совсем точный ответ.
Настроить почту на своём домене вы сможете и без создания собственного сервера. Такую услугу, например, предоставляют VK Group, Яндекс.Почта и Google. Вам нужно только купить домен и привязать его к серверам компании в личном кабинете.
Основное преимущество такого подхода — уже настроенный SMTP-сервер. То есть вам не придётся заниматься настройками переадресации, антиспам-фильтрами и прочими сложными настройками. Достаточно лишь грамотно указать NS-записи, а это не так сложно, как создать свой почтовый сервер. Кроме того, стоимость обслуживания и настройки гораздо ниже по сравнению с конфигурацией собственного сервера.
Однако при использовании сторонних сервисов вы не будете иметь полный контроль над работой почты. Во-первых, количество отправляемых писем будет ограничено. У каждой компании установлены свои лимиты, но вам не хватит квоты, если вы работаете с большими объёмами электронной почты: корпоративная почта, рассылки и так далее.
При использовании собственного почтового сервера вам придётся не только следить за лимитами и квотами, но также обеспечивать резервное копирование, избегать попадания в спам-листы, а также настраивать права доступа, если почтой пользуются несколько человек.
Создание почтового сервера
В этой статье мы рассмотрим способы создания собственного почтового сервера. Для наших целей отлично подойдут Timeweb — мы выберем себе устройство с ОС Ubuntu версии 20.04.
Настроенная нами почта будет поддерживать шифрование, мы обеспечим защиту от спама, а также настроим панель администрирования писем в веб-среде.
Первый шаг — переход в режим суперпользователя root:
Перед установкой необходимого программного обеспечения обновим пакеты на сервере:
apt update && apt upgrade
Затем необходимо проверить, соответствует ли имя сервера домену вашей электронной почты:
Если в ответе вы видите что-то отличное от желаемого имени сервера, используйте команду hostnamectl:
hostnamectl set-hostname mail.hostname.ru
где mail.hostname.ru — имя хоста.
Далее для корректной работы всех планировщиков и непосредственно почты настраиваем временную зону — устанавливаем пакет для синхронизации времени chrony:
apt install chronytimedatectl set-timezone Europe/Moscow
Если ваша временная зона отличается от МСК, выберите подходящую, воспользовавшись командой
systemctl enable chrony
Теперь нужно открыть порты, необходимые для работы почтового сервера, с помощью . Нам нужен следующий набор портов:
- 25, 465 — SMTP
- 110, 995 — POP3
- 143, 993 — IMAP
- 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:
Теперь можем переходить к тому, как сделать свой почтовый сервер с точки зрения программного обеспечения.
Установка и настройка Postfix
Postfix — агент передачи почты (mail transfer agent) с открытым исходным кодом. Он имеет модульную архитектуру, которая не требует работы из-под суперпользователя root. Установим приложение postfix и postfix-mysql для работы с базой данных:
apt install postfix postfix-mysql
В диалоговом окне в процессе установки выбираем Internet Site. Это предполагает, что у вас есть доступ к редактированию DNS-записей и вы можете указать FQDN — полное имя домена. В следующем окне оставляем имя сервера и переходим далее.
После установки создаём новую учётную запись в системе, из-под этого пользователя будем работать с почтой. С помощью утилиты groupadd создаём группу vmail:
addgroup -gid 1080 vmail
Далее создадим пользователя vmail и назначим ему домашнюю директорию /home/mail:
Проверим, что права на директорию /home/mail принадлежат пользователю vmail и группе vmail:
Конфигурация почтового сервера
После создания пользователя можно приступить к настройке postfix. Для этого открываем файл /etc/postfix/main.cf в любом текстовом редакторе:
mydestination = localhost.$mydomain, localhost, localhost.localdomain # Для каких доменов принимаем почтуInet_protocols = ipv4 # протокол работы postfixsmtpd_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 # разрешаем безопасную аутентификациюsmtpd_sasl_exceptions_networks = $mynetworks # не используем шифрование в сетях $mynetworkssmtpd_sasl_security_options = noanonymousbroken_sasl_auth_clients = yessmtpd_sasl_type = dovecot # тип аутентификацииsmtpd_sasl_path = private/auth # где лежат временные файлы smtp_use_tls = yes # шифровать соединение при подключении к другому SMTP-серверуsmtpd_use_tls = yes # поддерживаем подключение TLSsmtpd_tls_auth_only = yes # и используем только TLSsmtpd_helo_required = yes # начинаем сессию с HELO (или EHLO)
Теперь создадим файлы, которые указывали в этой конфигурации. Сперва укажем, где Postfix должен брать псевдонимы. Открываем файл /etc/postfix/mysql_virtual_alias_maps.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=$myhostnamesmtps 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
Генерация сертификатов безопасности
Для корректной работы почты нужно сгенерировать сертификаты безопасности с помощью утилиты openssl. В первую очередь создаём директорию, в которой будем хранить сертификаты (указывали в файле main.cf):
mkdir -p /etc/ssl/mailopenssl 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
Настраиваем способ хранения сообщений:
mail_location = maildir:/home/mail/%d/%u/
В этом же файле настраиваем метод аутентификации:
Настраиваем аутентификацию в Dovecot:
Заменяем строку !include auth-system.conf.ext на !include auth-sql.conf.ext, указывая, что использовать нужно sql-авторизацию.
Редактируем настройки шифрования:
В файле указываем:
ssl = requiredssl_cert = </etc/ssl/mail/public.pemssl_key = </etc/ssl/mail/private.key
При первом подключении пользователей создаём каталоги в домашней директории:
lda_mailbox_autocreate = yes
Настраиваем подключение к базе данных:
И добавим в него:
Настраиваем интерфейс Dovecot:
listen = *
Запускаем и перезагружаем Dovecot:
systemctl enable dovecot && systemctl restart dovecot
Установка и настройка PostfixAdmin
Устанавливаем необходимые расширения php:
apt install php-mysql php-mbstring php-imap
И создаём каталог для хранения кэша шаблонов:
Ставим на весь каталог права веб-сервера:
Создаём базу данных и пользователя:
mysql -u root
В локальном файле конфигурации postfix добавим конфигурацию базы данных:
В итоге вы будете перенаправлены на стартовый экран панели администрирования.
Создаём почтовый ящик в PostfixAdmin
Теперь вы можете проверить подключение с помощью почтовых клиентов. Параметры для подключения:
- Сервер — имя вашего сервера
- IMAP — 143 STARTTLS
- POP3 — 110 STARTTLS
- SMTP — 25 STARTTLS
Заключение
В этой статье мы изучили, что представляет из себя домашний почтовый сервер, какие технологии и программное обеспечение используются для его настройки.
Основное преимущество владения своим почтовым сервером — возможность полностью настроить его под себя: создать неограниченное количество почтовых ящиков, привязать псевдонимы, включать и выключать пользователей. Все эти возможности можно реализовать, арендовав облачное решение и настроив сервер по инструкции из этой статьи.
В следующих статьях расскажем о том, как бороться с вирусами в письмах, как настроить собственный веб-клиент для работы с почтой и о том, как избежать попадания в спам-листы.

