• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Статья Как установить почтовый сервер в Ubuntu или Debian

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

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


Предварительные требования
Каждый домен должен иметь запись на 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. Причём в первом файле следует размещать только имя хоста.
Bash:
root@mail:~# vim /etc/hostname
mail
Bash:
root@mail:~# vim /etc/hosts
Код:
## IP                 Полностью определённое доменное имя       Имя хоста ##
192.168.10.1          mail.example.tst                          mail


Добавление пользователей
Каждый пользователь Linux, по умолчанию, имеет автоматически созданный почтовый ящик. Эти пользователи и почтовые ящики будут использоваться как почтовые учётные записи и соответствующие им адреса почтовых ящиков. Создание пользователя очень простое.
Bash:
root@mail:~# adduser alex


Установка и настройка SMTP
Профиль службы: postfix
Каталог с конфигурационными файлами/etc/postfix/
Скрипт/etc/init.d/postfix
Лог-файл/var/log/mail.log
Номер портаTCP/25

SMTP: Установка postfix
это один из наиболее используемых SMTP серверов, поскольку он стабильный, лёгкий, масштабируемый и высоко настраиваемый. Установка postfix может быть выполнена использованием apt-get.
Bash:
root@mail:~# apt-get install postfix


Во время установки задаются тип почтового сервера и доменное имя.
1575750079079.png

1575750090510.png


Так как почтовый сервер будет отправлять письма напрямую к месту назначения, то нужно использовать "Интернет-сайт".
1575750112055.png

Также задаём доменное имя почтового сервера. Эта настройка определяет, что все письма, приходящие с этого почтового сервера, будут иметь @example.tst в качестве домена отправителя.

Конфигурационные файлы postfix размещены в /etc/postfix Важны следующие конфигурационные файлы. Некоторые из них могут отсутствовать и их нужно создать вручную.
  • transport: В первую очередь используется для определения, как почта должна быть направлена в направлении конкретного домена назначения. Это тот случай, когда кому-то может быть потребуется отправлять почту, предназначенную для домена XYZ.com, напрямую на IP адрес X.Y.Y.X независимо от каких-либо результатов запросов DNS.
  • access: Может быть использован в целях безопасности, например для блокирования отправителей/получателей и их доменов.
  • aliases: Используется для задания пользовательских псевдонимов. Например, почта отправленная пользователю userA должна быть принята пользователем userB, а также пользователем userC.
  • main.cf: Это конфигурационный файл для postfix.

SMTP: Настройка конфигурационных файлов
Время приготовить конфигурационные файлы. Файлы transport и aliases не поставляются при установке, их нужно создать вручную.
Bash:
root@mail:~# cd /etc/postfix
root@mail:/etc/postfix# touch transport aliases


  • main.cf
Сделайте резервную копию main.cf а затем модифицируйте. Следующие строки добавлены/изменены в конфигурационном файле. Для дальнейших подробностей о параметрах обратитесь к официальному и .
Bash:
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 запросов.
Bash:
root@mail:/etc/postfix# vim transport
example.tst local:
.example.tst local:
root@mail:/etc/postfix# postmap transport


  • aliases
Предполагаем, что все письма, отправленные пользователю userA, должны быть доставлены также пользователю userB, для этого файл aliases изменён как показано ниже:
Bash:
root@mail:/etc/postfix# vim aliases
userA: userA, userB
root@mail:/etc/postfix# postalias aliases

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


SMTP: Запуск и обслуживание
postfix может быть запущен командой.
Bash:
root@mail:~# service postfix restart
Лог-файл в /var/log/mail.log должен предоставить полезную информацию, если что-то пойдёт не так. Прослушивает ли почтовый сервер TCP порт 25 можно также проверить используя netstat
Bash:
root@mail:~# netstat -nat
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
Как видно из вывода, сервер прослушивает TCP порт 25 для входящих запросов соединений.


Установка и настройка POP/IMAP
Профиль службы: dovecot
Директория конфигурационных файлов/etc/dovecot
Скрипт/etc/init.d/dovecot
Файл журнала/var/log/mail.log
Номер портаTCP: 110 (POP3), 143 (IMAP), 993 (IMAPS), 995 (POP3S)


POP/IMAP: Установка dovecot
— это, без сомнений, лидирующее IMAP и POP серверное программное обеспечения в сообществе опен сорс. Очень просто установить и настроить dovecot. Для установки dovecot мы опять будем использовать apt-get.
Bash:
root@mail:~# apt-get install dovecot-common dovecot-pop3d dovecot-imapd

Прямо из коробки dovecot может поддерживать POP3 и IMAP (обычный текст), а также зашифрованный POP3S и IMAPS (безопасный). По умолчанию dovecot создаёт и использует самоподписанный сертификат для SSL шифрования. Сертификаты могут быть созданы вручную или ипортированы позже, в зависимости от требований. В этом уроке будет использован сапомодписанный сертификат, сгенерированный dovecot.

На последних версиях больше не создаёт. Сертификаты нужно создавать вручную и вручную подключать их. Как это сделать, описано в этой инструкции.


POP/IMAP: Подготовка конфигурационных файлов
Следующие параметры изменяются как нужно.
Bash:
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 установлен и настроен, он может быть запущен, используя следующую команду.
[/CODE=bash]root@mail:~# service dovecot restart[/CODE]
Вновь лог-файл (/var/log/mail.log) может предоставить важные зацепки, если что-то пойдёт не так. Узнать, запущен ли dovecot, можно при использовании netstat следующим образом.
Bash:
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 определила следующие настройки для моего сервера:
1575750137460.png

Крайне рекомендуется перейти и продолжить по этой инструкции для включения SSL шифрования.


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

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

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

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

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!