Postfix: настройка, установка. Почтовый сервер Postfix. Настройка Яндекс. Почты. Отправка тестового письма

| |

Postfix – это агент пересылки сообщений (англ. Mail Transfer Agent, или MTA), приложение для отправки и получения электронной почты. В данном руководстве показано, как установить и настроить Postfix только для отправки сообщений локальных приложений (то есть, приложений, установленных на одном сервере с Postfix).

Зачем это нужно?

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

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

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

Если же сервер должен отправлять извещения потенциальным пользователям сайта (например, электронные подтверждения регистрации), нужно защитить домен от спамеров; тогда извещения сервера с меньшей вероятностью будут помечены как спам.

Требования

Для выполнения данного руководства нужны:

  • и учетная запись пользователя с расширенными привилегиями sudo;
  • Валидное доменное имя (в данном руководстве используется условный домен example.com).

Имя хоста сервера должно соответствовать этому домену или поддомену. Чтобы проверить имя хоста сервера, введите в командную строку hostname. Вывод должен совпадать с именем сервера, которое он получил при создании (например, example.com).

1: Установка Postfix

Чтобы установить Postfix, а заодно и ряд других программ, необходимых для настройки почты, просто установите пакет mailutils:

sudo apt-get install mailutils

Вместе с пакетом mailutils будет установлен Postfix и его зависимости. Вывод команды выглядит примерно так:

The following NEW packages will be installed:
guile-2.0-libs libgsasl7 libkyotocabinet16 libltdl7 liblzo2-2 libmailutils4 libmysqlclient18 libntlm0 libunistring0 mailutils mailutils-common mysql-common postfix ssl-cert
0 upgraded, 14 newly installed, 0 to remove and 3 not upgraded.
Need to get 5,481 kB of archives.
After this operation, 26.9 MB of additional disk space will be used.
Do you want to continue?

Чтобы установить все вышеперечисленные пакеты, нажмите ENTER. В конце установки появится окно настройки Postfix, в котором нужно выбрать тип почтовой настройки; опция по умолчанию – Internet Site, что полнее удовлетворяет требования данного руководства (чтобы подтвердить, нажмите TAB и ENTER).

После этого появится новое окно настройки Postfix с полем System mail name. Это поле должно совпадать с именем сервера, которое вы выбрали при его создании. Укажите имя, а затем нажмите TAB и ENTER.

Примечание : Если в строке появляется поддомен вроде first.example.com, сократите его до example.com.

2: Настройка Postfix

Данный раздел покажет, как настроить Postfix для отправки сообщений с сервера, на котором он установлен (то есть, с локального хоста).

Для этого Postfix должен быть настроен на прослушивание только интерфейса внутренней петли (loopback interface) – это виртуальный сетевой интерфейс, который используется сервером для внутреннего взаимодействия. Откройте конфигурационный файл Postfix с помощью редактора nano:

sudo nano /etc/postfix/main.cf

Найдите в нем следующий блок кода:

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

Замените строку inet_interfaces = all строкой inet_interfaces = loopback-only. Теперь этот блок выглядит так:

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only

Вместо loopback-only можно также использовать localhost:

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = localhost

Завершив редактирование файла, сохраните изменения и закройте его (CTRL+X, затем Y и ENTER). После этого перезапустите Postfix:

sudo service postfix restart

3: Тестирование SMTP-сервера

Теперь необходимо проверить, может ли Postfix отправлять сообщения на внешний электронный адрес. Для этого используется команда mail, которая также входит в пакет mailutils.

Итак, чтобы отправить тестовое сообщение, наберите:

echo "This is the body of the email" | mail -s "This is the subject line" [email protected]

Примечание : Вместо [email protected] используйте валидный адрес электронной почты.

Проверьте почтовый ящик, на который было отправлено сообщение. Если отправленное сообщение не появилось, проверьте папку спама.

Примечание : В данном руководстве используется условный адрес [email protected], где gunter – имя пользователя Linux, а домен – имя хоста сервера (эту строку нужно указать в поле From).

4: Форвардинг почты

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

Чтобы Postfix отправлял сгенерированные системой сообщения на ваш почтовый адрес, отредактируйте файл /etc/aliases.

sudo nano /etc/aliases

В стандартной установке Ubuntu 14.04 этот файл выглядит так:


postmaster: root

Эта настройка передает сообщения системы пользователю root. Теперь нужно сделать так, чтобы сообщения перенаправлялись на ваш адрес электронной почты. Для этого внесите в файл строку:

# See man 5 aliases for format
postmaster: root
root: [email protected]

Замените [email protected] своим личным адресом электронной почты. Сохраните и закройте файл. Чтобы изменения вступили в силу, выполните следующую команду:

Теперь протестируйте форвардинг, отправив сообщение пользователю root:

echo "This is the body of the email" | mail -s "This is the subject line" root

Это сообщение должно появиться в вашем почтовом ящике (если нет – проверьте папку спама).

Tags: ,

Дорогой читатель! IP – АТС Asterisk использует e-mail сообщения для отправки уведомлений о различных событиях: голосовая почта, факс, доступные обновления модулей, технические проблемы и много других информативных нотификаций. «Из коробки», для отправки почты используются внутренние механизмы, но что если мы хотим вписать Asterisk в почтовый домен? Для решения данного вопроса можно прибегнуть к двум методам:

  1. Приобретение модуля System Admin Pro за $25 (на 29 марта стоимость составляет 1 600 рублей) и настройка SMTP с помощью удобного графического интерфейса FreePBX;
  2. Настройка встроенного почтового сервера Postfix через консоль сервера. Это бесплатно:)

Мы не ищем легких путей, поэтому, в статье расскажем как настроить Postfix для отправки почтовых уведомлений IP – АТС. В качестве примера рассмотрим настройку Яндекс. Почты для домена и общий случай.

Настройка Яндекс. Почты

Подключаемся к консоли нашего сервера IP – АТС через SSH под пользователем root . Открываем для редактирования файл конфигурации Postfix:

# vim /etc/postfix/main.cf

Нажимаем «О» для редактирования и добавляем в него следующую конфигурацию (предварительно удалив комментарии):

Smtp_sasl_auth_enable = yes //включаем SMTP аутентификацию для SMTP - демона smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd //указываем Postfix путь для файла, в котором хранятся пароль и логин для авторизации на SMTP сервере smtp_sasl_security_options = noanonymous //мы будем посылать запрос на авторизацию в открытом виде (нешифрованные логин и пароль) smtp_sasl_type = cyrus // использование библиотеки Cyrus SASL для аутентификации smtp_sasl_mechanism_filter = login //предлагаемый SMTP клиентом механизм SASL аутентификации smtp_sender_dependent_authentication = yes //аутентификация в зависимости от отправителя sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay //данная переменная указывает переписывать глобальную настройка relayhost. В данном случае мы будет сравнивать домен отправителя и релэй, куда отправлять почту. sender_canonical_maps = hash:/etc/postfix/canonical //через какой аккаунт отправлять почту с определенного домена smtp_generic_maps = hash:/etc/postfix/generic //данная настройка указывает правила, согласно которым, необходимо подменять адрес отправителя письма smtp_use_tls = yes //у Яндекс. Почты используется TLS myhostname = asterisk.merionet.ru //хостнейм вашего сервера mydomain = merionet.ru //домен сервера myorigin = $mydomain //в данном случае, при отправлении первоначального письма от пользователя root, email адрес отправителя будет [email protected] (в последствие будет заменен согласно правилам переменной smtp_generic_maps) mynetworks = 127.0.0.0/8 //авторизованная часть сети. Для отправки почты от Asterisk’а оставьте данную настройку как есть relayhost = :465 //SMTP Яндекс

По окончанию настроек нажимаем:x! и Enter. Начнем конфигурировать файлы, к которым мы указали ссылки в конфигурации main.cf. Открываем файл /etc/postfix/sasl_passwd:

# vim /etc/postfix/sasl_passwd

Указываем там следующие параметры:

# логин:пароль

В качестве логина и пароля используются реквизиты доступа к настраиваемому почтовому адресу. Нажимаем:x! и Enter. Теперь поработаем с файлом sender_relay:

Обратите внимание, что если Вы производите почту для домена от Яндекс. Почты, в поле логин нужно указывать полностью почтовый ящик.
# vim /etc/postfix/sender_relay

Вносим следующую конфигурацию:

# @домен пользователь@домен

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

# vim /etc/postfix/canonical

Добавляем:

@домен настраиваемый_почтовый_ящик

В данной настройке мы подсказываем Постфиксу, что отправлять почту с нашего домена нужно через настраиваемый почтовый ящик. Сохраняем изменения. Переходим к настройке generic:

# vim /etc/postfix/generic

Здесь мы будем подменять адрес отправителя. Это очень важно поле, так как по умолчанию, в письмо в поле From: будет подставляться значение пользователь@домен. Заполняем:

Root настраиваемый_почтовый_ящик root@localhost настраиваемый_почтовый_ящик [email protected] настраиваемый_почтовый_ящик root@freepbx настраиваемый_почтовый_ящик [email protected] настраиваемый_почтовый_ящик asterisk настраиваемый_почтовый_ящик asterisk@localhost настраиваемый_почтовый_ящик [email protected] настраиваемый_почтовый_ящик asterisk@freepbx настраиваемый_почтовый_ящик [email protected] настраиваемый_почтовый_ящик

Сохраняем изменения:x! . Готово, теперь необходимо выполнить команду:

# postmap /etc/postfix/generic && postmap /etc/postfix/canonical && postmap /etc/postfix/sender_relay && postmap /etc/postfix/sasl_passwd

И затем перезагружаем Postfix:

# service postfix restart Shutting down postfix: [ OK ] Starting postfix: : [ OK ]

Выполняем проверку. Отправьте тестовое пустое письмо на свой личный почтовый ящик:

# mail -s "Postfix Test with Yandex" ваш_email < /dev/null

Как результат, получаем письмо на адрес электронной почты:

Общий случай настройки Postfix

Выше мы рассмотрели частный случай настройки Яндек.Почты для домена. Давайте пошагово рассмотрим настройку любого другого SMTP:

  1. Подключаемся по SSH к консоли сервера
  2. Открываем файл /etc/postfix/main.cf
  • добавляем relayhost =
  • Открываем файл /etc/postfix/sasl_passwd
    • добавляем запись вида логин:пароль
  • Даем команду postmap hash:/etc/postfix/sasl_passwd
  • Снова открываем файл /etc/postfix/main.cf
    • добавляем smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = smtp_generic_maps = hash:/etc/postfix/generic
  • Выполняем команду service postfix restart
  • Открываем файл /etc/postfix/generic
    • добавляем в него строчки, которые добавили на этапе настройки Яндекс.Почты: root настраиваемый_почтовый_ящик asterisk настраиваемый_почтовый_ящик ….
  • Выполняем команду postmap /etc/postfix/generic
  • Выполняем команду service postfix restart
  • Возможные ошибки

    После команды тестовой отправки почты смотрим лог:

    # tail -f /var/log/maillog

    Если наблюдаете ошибку вида 503 5.5.4 Error: send AUTH command first. , то она означает, что email с которого мы пытаемся отправить сообщение отбивается SMTP сервером (как правило, это видно в выводе лога в поле from=<>). В таком случае, проверьте корректность настроек файла /etc/postfix/generic.

    Если в логах обнаружили ошибку warning: SASL authentication failure: No worthy mechs found , то вам необходимо установить механизм аутентификации SASL (Simple Authentication and Security Layer). Сделать это можно с помощью команды ниже:

    # yum install cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain

    Если на этапе отладки Вы получаете ошибку вида bash: mail: команда не найдена, то Вам необходимо установить Unix утилиту mailx . Сделать это можно с помощью этой команды:

    # yum install mailx

    Полезна ли Вам эта статья?

    Пожалуйста, расскажите почему?

    Нам жаль, что статья не была полезна для вас:(Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

    Postfix - это бесплатное программное обеспечение почтового сервера, разработанное для использования в операционных системах семейства Unix. Оно относится к классу агентов пересылки сообщений (message transport agent, MTA), которые осуществляют передачу электронных писем между почтовыми клиентами пользователей. Для организации серверов подобной почты крайне популярна связка Ubuntu Linux + Postfix. Настройка их будет рассмотрена в приведенной ниже статье.

    Подготовка к инсталляции Postfix

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

    Устанавливаем корректное имя хоста

    По умолчанию, Postfix использует имя хоста почтового сервера для того, чтобы идентифицировать себя при коммуникации с другими агентами пересылки сообщений. Имя хоста может быть двух видов: простое слово или полностью определенное имя домена (Fully Qualified Domain Name, FQDN). Когда что применяется?

    Имя хоста в виде простого слова обычно используется для персональных компьютеров. Если вы используете Linux на домашнем ПК, то вы можете назвать его, к примеру, linux, debian, ubuntu. FQDN состоит из двух частей: имя узла и имя домена. Например, mail.yourdomain.co.

    Здесь mail - имя узла, yourdomain.com - доменное имя. FQDN, как правило, используется для интернет-серверов, и именно его следует использовать при настройке Postfix для отправки почты. Приведенная выше форма FQDN является стандартной для email-серверов.

    Для того чтобы узнать FQDN вашего сервера, введите в терминале Ubuntu следующую команду: hostname -f.

    Если у сервера еще нет FQDN, его можно задать при помощи утилиты hostnamectl . sudo hostnamectl set - hostname your - fqdn .

    После этого выйдите из учетной записи в системе и войдите обратно. Вы сможете увидеть изменения при помощи команды hostname -f.

    Проверяем системное время

    Проходя через Postfix, почта получает отметку о времени пересылки. Для этого сервер проверяет свое системное время. Эта отметка также записывается в его лог Postfix (/ var/log/mail.log). Поэтому перед тем как устанавливать Postfix, настройку системного времени необходимо произвести корректно.

    Используйте команду date, чтобы узнать временную зону и текущее системное время на сервере Ubuntu: user@mail:~$ date. Sun Dec 31 06:37:19 BST 2017.

    Задаем записи DNS для почтового сервера

    • Запись MX. MX-запись (от английского “mail exchanger”) сообщает другим агентам пересылки сообщений, что ваш сервер mail.yourdomain.com отвечает за отправку почты в вашем домене. Запись MX @ mail.yourdomain.com.
    • Запись A. А-запись устанавливает связь между FQDN и IP-адресом: mail.yourdomain.com .
    • Запись PTR. PTR-запись (от английского “pointer record”) устанавливает обратную связь между IP-адресом и FQDN. Она является противоположностью записи A и используется для обратных запросов DNS. mail.yourdomain.com

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

    Обратная связь между записью A и записью PTR используется при блокировке спама. Многие агенты передачи сообщений принимают почту, только если сервер действительно связан с определенным доменом. Задать запись PTR необходимо, чтобы письма с вашего сервера не попадали у отправителей в папку со спамом.

    Для того чтобы узнать запись PTR для определенного IP-адреса, выполните в консоли следующую команду: dig - x < IP > + short или host < IP > .

    После того как подготовка завершена, начнем инсталляцию Postfix.

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

    Чтобы скачать Postfix, выполните следующие две команды в терминале на вашем сервере Ubuntu:

    • sudo apt-get update;
    • sudo apt-get install postfix -y.

    Для вновь установленного Postfix настройка начинается с выбора типа почтовой конфигурации:

    • No configuration - в процессе установки не будут настраиваться какие-либо параметры.
    • Internet Site - Postfix будет настроен для отправки электронной почты другим почтовым серверам и приема сообщений от них.
    • Internet with smarthost - сервер Postfix будет использоваться для получения электронных сообщений от других почтовых серверов, но отправка писем будет осуществляться через сервер-ретранслятор.
    • Satellite system - ретранслятор будет использоваться и для получения, и для отсылки почты.
    • Local only - электронная почта будет пересылаться только внутри локальной учетной записи.

    Далее введите ваше доменное имя в качестве имени почтовой системы, то есть того, что идет в почтовом адресе после символа @. Например, если ваш адрес электронной почты - [email protected] , то в качестве имени почтовой системы следует ввести yourdomain.com .

    Настройка Postfix в Ubuntu завершена.

    После установки сервер Postfix будет автоматически запущен, и в каталоге /etc будет сгенерирован конфигурационный файл /etc/postfix/main.cf . Теперь мы можем проверить версию Postfix следующей командой:

    user@mail:~$ sudo postconf mail_version

    mail_version = 2.11.0

    Мы также можем выяснить при помощи утилиты netstat, что основной процесс Postfix «слушает» TCP-порт 25: sudo netstat -lnpt.

    Перед тем как отправлять первое тестовое письмо, не лишним будет проверить, блокируется ли порт 25 сетевым экраном. Для сканирования открытых портов можно использовать утилиту nmap . Выполните следующую команду в терминале на каком-нибудь другом компьютере под Linux (например, на вашем ПК), подставив в нее реальный IP вашего почтового сервера: sudo nmap .

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

    Отправка тестового письма

    Собственно говоря, теперь мы можем отправлять и получать письма в консоли Ubuntu. Если ваш пользовательский аккаунт на сервере называется user , вашим почтовым адресом будет [email protected] . В качестве теста вы можете отправить письмо администратору ресурса (пользователь root) или на любой почтовый адрес Gmail, "Яндекс" и так далее.

    При установке Postfix в каталог /usr/sbin/sendmail записывается бинарный файл агента пересылки сообщений sendmail. Мы можем использовать его для того, чтобы отправить пробное письмо на почтовый адрес Gmail, например: echo «тест» | sendmail youraccount @ gmail . com

    Эта несложная команда сообщает sendmail, что нужно считать сообщение из стандартного ввода и создать тело электронного письма с текстом «тест», а потом отправить его на указанный почтовый адрес Gmail. Письмо с данным текстом должно прийти на ваш почтовый ящик Google. Обратите внимание, что адрес отправителя указывать не нужно: его автоматически вставит в метаданные письма Postfix, при настройке которого мы задали имя почтовой системы.

    Теперь попробуем ответить на это сообщение, чтобы проверить, как Postfix принимает сообщения. Входящие письма, приходящие на ваш почтовый сервер, хранятся в каталоге /var/spool/mail/ и /var/mail/ . Также расположение входящих писем можно узнать командой: postconf ail_spool_directory.

    Журнал сообщений Postfix находится в файле /var/log/mail.log .

    Установка и настройка спам-фильтра

    В Postfix для настройки спам-фильтра выполните установку spamassassin и spamc: apt-get install spamassassin spamc

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

    Основным конфигурационным файлом спам-фильтра является /etc/mail/spamassassin/local.cf , который можно открыть при помощи любого удобного вам текстового редактора. В частности, значимыми для фильтрации считаются следующие настройки, которые нужно при необходимости добавить или раскомментировать:

    report_safe 0

    required_score 8.0

    rewrite_header Subject

    1. Параметр report_safe рекомендуется установить равным 0. В этом случае входящий спам будет получать в заголовке отметку, заданную параметром rewrite_header . Если задать значение параметра равным 1, то сообщения будут удаляться.
    2. Параметр required_score отвечает за чувствительность спам-фильтра. Чем меньше его значение, тем строже фильтруется почта. Для крупных почтовых серверов, обслуживающих более сотни аккаунтов, значение required_score рекомендуется устанавливать в промежутке между 8.0 и 10.0.

    Сохраните конфигурационный файл, а затем включите и запустите спам-фильтр и обновите его конфигурацию:

    # systemctl enable spamassassin

    # systemctl start spamassassin

    # sa-update

    Интеграция Postfix и SpamAssassin

    Для того чтобы эффективно интегрировать Postfix со спам-фильтром, необходимо создать отдельного пользователя и группу для процесса спам-фильтра:

    # useradd spamd -s /bin/false -d /var/log/spamassassin

    spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

    После этого в начале файла укажем, что spamassassin будет работать в качестве фильтра контента (параметр content_filter ):

    -o content_filter=spamassassin

    Наконец, перезапустите Postfix, чтобы применить изменения:

    # systemctl restart postfix

    Настройка спам-фильтра завершена.

    Для того чтобы проверить работоспособность SpamAssassin, можно выполнить следующий тест. Отправьте электронное письмо с другого почтового сервера (к примеру, Gmail или Яндекс) на адрес электронной почты на вашем сервере. Задайте ему любой заголовок, а в теле сообщения введите:

    XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

    При отправке вышеприведенного текста на ваш сервер, к примеру, с аккаунта Gmail, будет получен следующий ответ:

    Verify SpamAssassin Detecting Spam Mails

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

    # journalctl | grep spam

    Сообщение лога содержит текст: Monitor SpamAssassin Mail Logs

    Дополнительно, вы можете проверить spamassassin прямо из консоли: # spamassassin - D < / usr / share / doc / spamassassin -3.4.0/ sample - spam . txt

    Вышеприведенная команда выдает достаточно подробный результат, который должен включать в себя нижеприведенную строку: Test SpamAssassin Spam from Commandline.

    Заключение

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

    Выполнив приведенные в статье рекомендации, вы сможете установить и корректно настроить почтовый сервер на базе Ubuntu Linux и Postfix для приема и передачи сообщений, а также для фильтрации спама. Инструкции действительны для начиная с 12.04.

    Postfix является агентом передачи почты (MTA) в Ubuntu по умолчанию. Он разработан чтобы быть быстрым, простым в администрировании и безопасным. Он совместим с MTA sendmail . Этот раздел описывает как установить и настроить postfix. Здесь также разъясняется как сделать его SMTP сервером, использующим безопасные соединения (для безопасной передачи сообщений).

    Установка

    Для установки postfix выполните следующую команду:

    Sudo apt-get install postfix

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

    Базовая настройка

    Для настройки postfix , выполните следующую команду:

    Sudo dpkg-reconfigure postfix

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

      mail.example.com

      steve

      mail.example.com , localhost.localdomain, localhost

      127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24

    Замените mail.example.com на домен, для которого вы настраиваете email, 192.168.0.0/24 на актуальную подсеть и маску для вашего почтового сервера и steve на соответствующее имя пользователя.

    Теперь самое время решить какой формат почтового ящика вы хотите использовать. По умолчанию postfix использует формат mbox . Вместо непосредственного редактирования файла конфигурации вы можете использовать команду postconf для настройки параметров postfix. Параметры будут сохранены в файле /etc/postfix/main.cf. В дальнейшем если вы решите переконфигурировать отдельные параметры вы можете как запустить команду, так и вручную поправить файл.

    Для настройки формата почтового ящика для Maildir :

    Sudo postconf -e "home_mailbox = Maildir/"

    Аутентификация SMTP

    SMTP -AUTH позволяет клиенту идентифицировать себя через механизм аутентификации (SASL). Транспортный уровень безопасности (TLS) будет использоваться для шифрования процесса аутентификации. После аутентификации SMTP сервер позволит клиенту передавать почту.

    1. Настройте Postfix на SMTP -AUTH с использованием SASL (Dovecot SASL):

    Sudo postconf -e "smtpd_sasl_type = dovecot" sudo postconf -e "smtpd_sasl_path = private/auth-client" sudo postconf -e "smtpd_sasl_local_domain =" sudo postconf -e "smtpd_sasl_security_options = noanonymous" sudo postconf -e "broken_sasl_auth_clients = yes" sudo postconf -e "smtpd_sasl_auth_enable = yes" sudo postconf -e "smtpd_recipient_restrictions = \ permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination"

    Настройка smtpd_sasl_path является путем, относительным к каталогу запросов Postfix.

    3. Как только у вас появился сертификат, настройте Postfix на использование TLS шифрования как для входящей, так и для исходящей почты:

    Sudo postconf -e "smtp_tls_security_level = may" sudo postconf -e "smtpd_tls_security_level = may" sudo postconf -e "smtp_tls_note_starttls_offer = yes" sudo postconf -e "smtpd_tls_key_file = /etc/ssl/private/server.key" sudo postconf -e "smtpd_tls_cert_file = /etc/ssl/certs/server.crt" sudo postconf -e "smtpd_tls_loglevel = 1" sudo postconf -e "smtpd_tls_received_header = yes" sudo postconf -e "myhostname = mail.example.com"

    4. Если вы используете собственный Центр сертификации , для подписи сертификата введите:

    Sudo postconf -e "smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem"

    Опять же, для подробностей смотрите раздел Сертификаты .

    После выполнения всех команд Postfix настроен на SMTP -AUTH и самоподписанный сертификат создан для TLS шифрования.

    Начальная настройка postfix закончена. Выполните следующую команду для перезапуска сервиса postfix:

    Postfix поддерживает SMTP -AUTH как описано в RFC2554 . Он основан на SASL . Однако все-таки необходимо настроить аутентификацию перед тем, как вы сможете использовать SMTP -AUTH.

    Настройка SASL

    Postfix поддерживает две реализации SASL: Cyrus SASL и Dovecot SASL . Чтобы разрешить Dovecot SASL , требуется установить пакет dovecot-common . Для этого из терминала введите следующее:

    Sudo apt-get install dovecot-common

    Socket listen { #master { # Master socket provides access to userdb information. It"s typically # used to give Dovecot"s local delivery agent access to userdb so it # can find mailbox locations. #path = /var/run/dovecot/auth-master #mode = 0600 # Default user/group is the one who started dovecot-auth (root) #user = #group = #} client { # The client socket is generally safe to export to everyone. Typical use # is to export it to your SMTP server so it can do SMTP AUTH lookups # using it. path = /var/spool/postfix/private/auth-client mode = 0660 user = postfix group = postfix } }

    Чтобы позволить использовать SMTP -AUTH клиентам Outlook, в секции auth default файла /etc/dovecot/dovecot.conf добавьте "login":

    Mechanisms = plain login

    После того, как Dovecot настроен, перезапустите его:

    Sudo /etc/init.d/dovecot restart

    Почтовый стек доставки

    Другой опцией настройки Postfix для SMTP -AUTH является использование пакета mail-stack-delivery (ранее он назывался dovecot-postfix). Этот пакет установит Dovecot и настроит Postfix для его использования совместно с SASL аутентификацией и как агента доставки почты (MDA). Пакет также настроит Dovecot для IMAP , IMAPS, POP3 и POP3S.

    Вы можете захотеть или не захотеть использовать IMAP , IMAPS, POP3 , или POP3S на вашем почтовом сервере. Например, если вы настраиваете свой сервер в качестве почтового шлюза, фильтра спама и вирусов и т.п. В этом случае возможно будет проще использовать вышеприведенные команды для настройки Postfix на SMTP _AUTH.

    Чтобы установить пакет, введите в терминале:

    Sudo apt-get install mail-stack-delivery

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

    После того, как вы получили заказанный сертификат для сервера, замените следующую опцию в /etc/postfix/main.cf:

    Smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key

    Перезапустите Postfix:

    Sudo /etc/init.d/postfix restart

    Тестирование

    Настройка SMTP -AUTH завершена. Теперь самое время проверить настройки.

    Чтобы убедиться, что SMTP -AUTH и TLS работают правильно, выполните следующую команду:

    Telnet mail.example.com 25

    После установления соединения с почтовым сервером postfix введите:

    Ehlo mail.example.com

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

    250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIME

    Решение проблем

    Эта секция описывает несколько общих способов определения причин возникающих проблем.

    Отказ от режима chroot

    Пакет postfix в Ubuntu по умолчанию устанавливается в окружении chroot из соображений безопасности. Это может дополнительно усложнить процесс поиска решения проблем.

    Для отключения функционирования chroot, найдите следующую строку в файле настроек /etc/postfix/master.cf:

    Smtp inet n - - - - smtpd

    И замените на следующее:

    Smtp inet n - n - - smtpd

    После этого вам придется перезапустить Postfix для использования новых настроек. Из терминал введите следующее:

    Sudo /etc/init.d/postfix restart

    Файлы журналов

    Postfix посылает все сообщения в журнал /var/log/mail.log. Однако сообщения об ошибках и предупреждения могут иногда теряться в нормальном журнале, поэтому они отдельно сохраняются в /var/log/mail.err и /var/log/mail.warn соответственно.

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

    Tail -f /var/log/mail.err

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

    1. Для увеличения TLS активности журнала, установите опции smtpd_tls_loglevel значение от 1 до 4.

    Sudo postconf -e "smtpd_tls_loglevel = 4"

    2. Если вы испытываете трудности с отправкой или приемом почты отдельного домена, вы можете включить его в параметр debug_peer_list .

    Sudo postconf -e "debug_peer_list = problem.domain"

    3. Вы можете увеличить детализацию любого сервиса Postfix редактированием /etc/postfix/master.cf, добавив -v после соответствующей записи. Для примера изменим запись smtp :

    Smtp unix - - - - - smtp -v

    Важно помнить, что после внесения изменений настроек журналирования процессов, Postfix требуется перезапустить для восприятия новой конфигурации: sudo /etc/init.d/postfix reload

    4. Для увеличения количества информации в журнале при поиске проблем с SASL, вы можете установить следующие опции в /etc/dovecot/dovecot.conf:

    Auth_debug=yes auth_debug_passwords=yes

    Как и в случае с Postfix, если вы изменяете настройки Dovecot, процесс требуется перезапустить: sudo /etc/init.d/dovecot reload

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

    Ссылки

    Администрирование сервера Postfix может быть очень сложной задачей. В какой-то момент вам может потребоваться обратиться к сообществу Ubuntu для более квалифицированной помощи.

    Для погружения в информацию по Postfix очень рекомендуется прочитать The Book of Postfix .

    Наконец сайт Postfix также содержит много информации по всем возможным опциям настройки.

    Кроме того страница Ubuntu Wiki Postfix содержит дополнительную информацию.

    • Сергей Савенков

      какой то “куцый” обзор… как будто спешили куда то