Пошаговая инструкция установки Postfix и Dovecot на Ubuntu
Иногда на предприятии или в быту требуется создать собственный почтовый сервер. Рассмотрим создание такого сервера под управлением ОС Ubuntu 16.04 LTS, а также установку и настройку почтовых агентов Postfix и Dovecot. Все действия будем выполнять из SSH-клиента PuTTY.
Postfix — агент передачи почты (MTA — mail transfer agent), является свободным программным обеспечением и создавался как альтернатива Sendmail.
Dovecot — свободный IMAP- и POP3-сервер, разработанный с акцентом на безопасность, гибкость настройки и быстродействие.
Перед установкой обновляем данные о репозиториях и индексах пакетов:
Обновляем пакеты и компоненты системы:
Перезагружаем систему, иногда это требуется:
Приступим к установке. Сперва устанавливаем Postfix:
Система спрашивает о необходимости установки пакетов и намерении продолжать. Отвечаем Y. Запустится пользовательский интерфейс установки:
На клавиатуре нажимаем курсорную клавишу вправо (->). Будет подсвечен “Ok”. На клавиатуре нажимаем Enter. В обновленном окне Выбираем Internet site, нажимаем курсорную клавишу вправо (->), подсветится “Ок” — нажимаем Enter:
В новом окне, в поле System mail name, нужно указать доменное или локальное имя сервера и нажать Enter на клавиатуре:
Установка Postfix завершена. Приступаем к настройке.
Переходим в каталог /etc/postfix:
Создаем файл virtual, в котором будут храниться почтовые адреса и имена пользователей почтового сервера:
Создаем директорию private для хранения файлов настроек yandex smtp:
Проверим результаты командой ls:
Перейдем в каталог /etc/postfix/private/ и создадим еще три необходимых файла:
canonical — в файле определяются правила подмены адресов
sender_relay — определяется соответствие доменов и конкретных отправителей к внешним службам
sasl_passwd — в этот файл добавим внешние учетные данные почтового провайдера
Теперь внесем изменения в файл конфигурации main.cf:
Записи в данном файле имеют формат параметр = значение1, значение2, значение3. Комментарии начинаются с символа “решетка” #. Заменим значение параметра myhostname на ваше доменное имя. Если доменного имени нет — оставляем по умолчанию:
В параметр mydestination следует указать IP-адрес сервера, а также доменное имя, через запятую, если таковое имеется. Чтобы письмо можно было переслать на другие домены или адреса, заменяем параметр alias_maps на virtual_alias_maps и изменяем расположение хеш-файла. Должно получиться так:
В параметре mynetworks определяем список авторизованных сетей:
Для отправки почты с помощью Yandex SMTP добавим в конец файла следующие строки:
Выйдем из редактирования файла сочетанием клавиш Ctrl+X, и на вопрос о желании сохранить файл нажимаем Y и Enter.
Следует объяснить, что значат добавленные строки:
Возможные значения параметра:
Далее внесем изменения в файлы:
echo “@yandex.ru smtp.yandex.ru” >> /etc/postfix/private/sender_relay
Вместо ****** указываем пароль от почты:
echo “[smtp.yandex.ru] username@yandex.ru:******” >> /etc/postfix/private/sasl_password
Для переадресации писем на другие почтовые адреса следует создать псевдонимы. Для этого отредактируем файл virtual:
Указываем произвольные электронные адреса, которые необходимо создать, и имена существующих системных пользователей, которым нужно доставлять почту:
Чтобы посмотреть список всех системных пользователей, выполним команду:
Преобразуем файл /etc/postfix/virtual и файлы в директории /etc/postfix/private/ в справочные таблицы выполнив команду postmap и перезапускаем сервис:
С помощью iptables (это Firewall в Unix-системах) добавим разрешающие правила для отправки почты. Аналогичное следует выполнить и для других портов (465 и 587) если такие используются:
Проверим работу с помощью утилиты mutt. Для начала установим её:
Теперь проверяем:
Настроим получение писем с помощью Dovecot, но вначале установим:
Перейдем к настройке.
В файле /etc/dovecot/dovecot.conf перечислим протоколы, с которыми будем работать:
В файле /etc/dovecot/conf.d/10-mail.conf проверяем значение параметра mail_location:
Перезапускаем сервис:
В файл /etc/hosts, добавим собственное доменное имя:
С помощью iptables (это Firewall в Unix-системах) добавим разрешающие правила для получения почты:
Для проверки нужно отправить письмо с любого почтового сервиса на созданные почтовые адреса. Письмо должно быть доставлено только одному адресату, только существующему системному пользователю и только на адрес с указанием доменного имени. Доставка писем по IP-адресу невозможна.
Следует обратить внимание, что после перезагрузки сервера правила iptables следует указать заново. Для решения этой проблемы следует прибегнуть к чтению руководства к iptables: