Courier mail server настройка linux

Обновлено: 06.07.2024

Courier-IMAP используют для обеспечения как IMAP так и POP3 сервисов. Многие заинтересованы в IMAP, так как POP3 не так сильно распространен в последнее время. Это вполне понятно, так как у IMAP есть много преимуществ.

Эта глава будет в основном сосредоточена на IMAP, но также будет включать в себя POP3 для полноты изложения. Могут потребоваться некоторые исследования этих двух протоколов, если выбор не однозначен.

Установка Courier-IMAP

У net-mail/courier-imap есть несколько USE-флагов, с которыми необходимо ознакомится. net-libs/courier-authlib — это важная зависимость, так как этот пакет отвечает за то, как пользователи проходят аутентификацию, поэтому также рассматриваются и его USE-флаги.

USE flags for net-libs/courier-authlib Courier authentication library

Выбрать только нужные бэкэнды базы данных.

Предупреждение
libauth*sql.so может быть скомпилирован только тогда, когда -vpopmail устанавливлен как USE-флаг и в системе не установлен vpopmail. Vpopmail и libauth*sql.so не смешиваются. Заметка
USE-флаг fam необходим для IDLE (например, для работы функции 'Push')

Если установлены соответствующие USE-флаги, emerge courier-imap должен подтянуть courier-authlib:

Настройка courier-authlib

Postgres

Courier-authlib запускается от суперпользователя, так что доступ к сокету будет разрешен по умолчанию.

Заметка
Те поля, которые должны быть изменены, перечислены здесь. Есть две закомментированые опции. PGSQL_HOST , очевидно, как упоминалось ранее, будет использовать UNIX сокеты. PGSQL_QUOTA_FIELD комментируется на данный момент, поскольку квоты будут включены на более позднем этапе. PGSQL-UID_FIELD , PGSQL-GID_FIELD и PGSQL_HOME_FIELD (Обратите внимание на лидирующий слэш в пути!) устанавливаются в статичные (постоянные) значения, заметьте как они указаны. Таким образом, используются постоянные значения, а не значения из базы данных. Файл /etc/courier/authlib/authpgsqlrc Настройка подключения к базе данных

Для того, чтобы использовать более сложные проверки подлинности SQL может быть использован PGSQL_SELECT_CLAUSE . Courier-authlib, будет игнорировать любой из заданных ранее параметров для SELECT , но мы будем использовать их для подсчета количества учетных записей или для изменения пароля и, таким образом, при смене пароля поле имени пользователя по-прежнему используется. Если аутентификация выполняется с именем пользователя помните, что имена пользователей должны быть уникальными.

Файл /etc/courier/authlib/authpgsqlrc Пользовательская настройка доступа к базе данных

MySQL

Далее перенастройте аутентификацию в courier-imap и postfix, чтобы использовалась база данных mailsql. Во всех приведенных ниже примерах замените $password паролем, который был установлен для mailsql пользователя в MySQL.

Файл /etc/courier/authlib/authmysqlrc Настройка аутентификации

Перезагрузите необходимые сервисы:

Настройка authdaemon

Authdaemon на самом деле отвечает за выполнение аутентификации. Здесь authdaemon настроен на использование правильного хранения базы данных. Portage на самом деле установил authmodulelist переменную должным образом. Проверьте это в конфигурационном файле. Также включите отладку здесь, поскольку это поможет с любым потенциальным проблемам позже.

PostgreSQL

Файл /etc/courier/authlib/authdaemonrc Проверьте модули аутентификации Заметка
Очевидно, что если нужно больше (или другие) модулей аутентификации, они должны быть также перечислены здесь.

MySQL

Файл /etc/courier/authlib/authdaemonrc Проверьте модули аутентификации

Права доступа

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

Тестирование courier-authlib

Courier-authlib, включает в себя простую утилиту тестирования. Она требует валидное имя пользователя в качестве параметра. Не стесняйтесь проверить страницу руководства authtest для получения дополнительной информации. Он короткий, но четкий.

Для того, чтобы выполнить некоторые базовые тесты, запустите демон authlib:

Запуск authtest с testuser:

Настройка POP3/IMAP

Файл /etc/courier-imap/pop3d Включение pop3

IMAP имеет несколько возможностей, которые могут быть включены.

Файл /etc/courier-imap/imapd Включение imapd и некоторых опций Заметка
MAILDIRPATH раздел содержит некоторые обманки, убедитесь, что он правильно установлен и очищен.

Некоторые клиенты нуждаются в минимальной длины параметра DH 2048 бит (например, с использованием >=dev-libs/nss-3.19.1). Сгенерируйте один с:

Затем удостоверьтесь что Courier использует его:

Файл /etc/courier-imap/imapd-ssl Убедимся что Courier использует наш dhparams.pem

Тестирование IMAP/POP3

Courier-pop3d следует запустить:

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

Заметка
Это первый раз, когда используется пароль в виде простого текста. Ранее было известно только как $1$16117118$ajxN3QRilmP5zLVHjTkE31. Предупреждение
Не забудьте подготовить пользовательский maildir инструментом maildirmake .

Если тестирование прошло успешно, добавьте courier-pop3d в уровень запуска по умолчанию:

Следует запустить courier-pop3d:

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

Если тестирование прошло успешно, добавьте courier-imap в уровень запуска по умолчанию:

Почтовый сервер на Postfix и Courier с MySQL

Устанавливаем необходимые пакеты:

В ходе установки отвечаем на следующие вопросы:

Создадим базу данных в MySQL

В MySQL создадим пользователя mail_admin и предоставим ему права на базу данных mail.

В базе данных создадим таблицы domains, forwardings, users и transport.

Таблица domains будет хранить наименования виртуальных доменов, для которых Postfix будет получать письма. Таблица forwardings будет содержать псевдонимы почтовых ящиков. Таблица users будет содержать всю информацию о виртуальных пользователях. Таблица transport необязательного характера, она для продвинутых пользователей. Позволяет перенаправлять почту отдельных пользователей, доменов либо всю почту на другой почтовый сервер.

Проверим, на каком адресе слушает MySQL. Для этого выполним:

Ответ должен быть следующим:

Создадим 4 файла конфигурации для postfix. В каждом из них убеждаемся, что параметр password задан верно.

Выставим права и владельца на созданные файлы:

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

Внесем изменения в конфигурацию postfix. Проверьте параметры, относящиеся к вашему почтовому серверу

В ходе генерации отвечаем на ряд простых вопросов:

Дадим на него права:

Создадим каталог для saslauthd

Отредактируем файл /etc/default/saslauthd. Изменим параметры START и OPTIONS на следующие:

Создадим файл /etc/pam.d/smtp и вставим в него две строки (измените пароль на свой):

Создаем файл /etc/postfix/sasl/smtpd.conf и добавляем в него следующие сотроки:

Добавляем пользователя postfix в группу sasl и перезапускаем postfix и saslauthd:

Сохраняем файл /etc/courier/authmysqlrc. Вместо него создаем вместо него пустой файл:

Добавляем в созданный файл следующее:

Удаляем оригинальные сертификаты, созданные Courier

В файлах /etc/courier/imapd.cnf и /etc/courier/pop3d.cnf заменяем CN=localhost на CN=полное_доменное_имя_почтового_сервера.
Регенерируем сертификаты и перезапускаем сервисы:

Редактируем псевдонимы в файле /etc/aliases:

Обновляем алиасы и перезапускаем postfix:

Проверяем наш smtp сервер:

Когда подключимся, выполняем

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

Теперь можно создавать виртуальные домены и пользователей. Для этого заходим в MySQL:

Для создания почтового ящика отправляем письмо на адрес ozzy@yourdomain.local

Пакет Courier содержит Mail Transport Agent ( MTA ). Он полезен для отправки почты другим пользователям на вашей машине. Так же он может быть настроен в качестве центрального сервера почты вашего домена или в качестве агента перенаправления почты. Пакет Courier так же включает web-основанный интерфейс почты, IMAP , IMAP - SSL , POP 3 и POP 3- SSL .

Информация о пакете

Контрольная сумма: 639bb3b236914e3b86f287ce3f55264e

Требуемое дисковое пространство: 102 MB

Расчетное время сборки: 2.62 SBU

Зависимости Courier

Требуемые
Опционально

Установка Courier

[Замечание]

Замечание

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

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

Скрипт install так же ожидает наличия пользователя bin. Если у вас уже есть пользователь с именем bin, то этот шаг может быть пропущен.

Courierfilter требует директорию /var/run/courier для сохранения всех pid и lock-файлов для Courier . /var/lock/subsys так же должен присутствовать для основного lock-файла Courier . Выполним следующие команды для создания этих директорий:

Соберем Courier под непривилегированным пользователем при помощи следующих команд:

А теперь опять станем пользователем root и установим Courier при помощи следующих команд:

Описание команд

--libexecdir=/usr/lib/courier: Описывает директорию, которая содержит программы и библиотеки, которые не могут быть непосредственно запущены из командной строки.

--datadir=/usr/share/courier: Описывает директорию, в которую будут установлены различные скрипты оболочки, Perl скрипты и файлы данных.

--localstatedir=/var/spool/courier: Описывает директорию, которая будет содержать очередь почты и другие временные данные.

--with-piddir=/var/run/courier: Описывает директорию, в которой сохраняются PID файлы Courier когда Courier активен.

--with-paranoid-smtpext: Быть параноиком при переговорах Courier-specific ESMTP расширений с удаленными серверами. Почтовый сервер Courier описывает и реализует некоторые экспериментальные ESMTP расширения: XVERP и XEXDATA. Проблемы могут быть следствием событий, когда кто-то другой использует то же самое имя для реализации другого расширения. Если эта опция описана, то ESMTP сервер Courier а так же будет объявлять фиктивную возможность ESMTP , называемую XCOURIEREXTENSIONS, и не будет узнавать любые Courier-специфичные расширения пока удаленный почтовый сервер так же объявляет эту фиктивную ESMTP возможность.

--disable-autorenamesent: Не переименовывать папку Sent каждый месяц. Так же эта опция может быть контролирована переменной окружения SQWEBMAIL_AUTORENAMESENT.

--enable-workarounds-for-imap-client-bugs: Есть несколько подтвержденных ошибок в некоторых клиентах IMAP , которые не правильно реализуют протокол IMAP 4rev1. Эта опция включает некоторые обходы для этих ошибочных IMAP клиентов. ЗАМЕЧАНИЕ: make check при использовании этой опции будет выпадать. Сначала вы должны использовать configure без этой опции и, если все послеконфигурационные тесты проходят, перезапустить configure с этой опцией и пересобрать.

--with-db=gdbm: Courier так же требует библиотеку базы данных GDBM или DB . GDBM используется если присутствуют обе. Эта опция принудительно выбирает GDBM , так как в данный момент courier не работает при использовании DB .

--with-ispell=/usr/bin/aspell: Сервер интернет почты Courier может использовать проверку орфографии если configure находит ispell или если вы точно установите положение aspell .

Как настроить почтовый сервер в Linux

Настраиваем почтовый сервер в Linux

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

SMTP и компоненты почтовой службы

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

Шаг 1: Инсталляция Postfix

Ранее мы уже уточнили, какой инструмент взяли за пример. Если вас этот выбор не устраивает, инсталлируйте любую другую утилиту и переходите к ее конфигурации по указанным в следующих шагах инструкциям, учитывая новые особенности. Иногда в стандартной сборке дистрибутива сервер Postfix уже установлен, что можно проверить командой grep postfix , однако в большинстве случаев его приходится инсталлировать самостоятельно, что мы и продемонстрируем далее.

Переход к терминалу для дальнейшей установки Postfix в Linux

Команда для запуска установки почтового сервера Postfix в Linux через терминал

Подтверждение подлинности профиля для установки сервера Postfix в Linux

Ожидание скачивания компонентов Postfix в Linux перед установкой

Информация об основных настройках почтового сервера Postfix в Linux

Выбор оптимальной конфигурации основных настроек почтового сервера Postfix в Linux

Ожидание завершения установки Postfix в Linux через терминал

Команда для добавления почтового сервера Postfix в Linux в автозагрузку

Ввод пароля для добавления почтового сервера Postfix в Linux для автозагрузки

Команда для активации работы сервера Postfix в Linux

Пароль для подтверждения активации работы сервера Postfix в Linux

Шаг 2: Настройка установленного сервера

    Как известно, конфигурация в Linux осуществляется путем изменения строк в специальных файлах. Для этого используется удобный текстовый редактор. Новичкам может быть сложно освоить vi, поэтому мы советуем установить сначала более простое решение. Для этого введите в консоли команду sudo apt install nano и нажмите на Enter.

Установка текстового редактора для конфигурации Postfix в Linux

Ожидание завершения установки текстового редактора для конфигурации Postfix в Linux

Запуск конфигурационного файла для редактирования Postfix в Linux

Настройка имени хоста в конфигурационном файле Postfix в Linux

Настройка домена в конфигурационном файле Postfix в Linux

Настройка параметра myorigin в конфигурационном файле Postfix в Linux

Настройка параметра mydestination в конфигурационном файле Postfix в Linux

Переход к сохранению конфигурационного файла Postfix в Linux после внесения изменений

Выбор названия для конфигурационного файла Postfix в Linux после изменений

Выход из текстового редактора после внесения изменений в Postfix в Linux

Перезапуск Postfix в Linux после внесения изменений

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

queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix

myorigin = $mydomain
inet_interfaces = $myhostname, localhost
mydestination = $myhostname, localhost.$mydomain, $mydomain
default_transport = smtp
alias_database = hash:/etc/aliases
mailbox_command = /usr/local/bin/procmail

smtpd_banner = $myhostname ESMTP READY
smtpd_client_restrictions = permit_mynetworks, reject_unknown_client
smtpd_sender_restrictions = permit_mynetworks, reject_unknown_address, reject_non_fqdn_sender, reject_invalid_hostname
smtpd_recipient_restrictions = permit_mynetworks, permit_mx_backup, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, check_relay_domains, reject_unknown_client, reject

local_destination_concurrency_limit = 2
default_destination_concurrency_limit = 10
debug_peer_level = 2
debugger_command =
PATH=/usr/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5

После останется просто сохранить все эти изменения и внести правки, соответствующие вашим требованиям.

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

Шаг 4: Настройка безопасности

Из представленных выше руководств вы уже знаете, что Postfix и другие серверы взаимодействуют с устройствами через сеть. Если соединение не будет защищено, вполне возможна ситуация совершения атак с целью похитить данные или нарушить стабильность работы ОС. Проще всего организовать правила безопасности с помощью системы OpenSSH, но для начала ее требуется установить и выполнить основную конфигурацию. Детальнее об этом читайте в других материалах на нашем сайте, воспользовавшись приведенными ниже ссылками.

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

openssl genrsa -des3 -out mail.key
openssl req -new -key mail.key -out mail.csr
cp mail.key mail.key.original
openssl rsa -in mail.key.original -out mail_secure.key
openssl x509 -req -days 365 -in mail.csr -signkey mail_secure.key -out mail_secure.crt
cp mail_secure.crt /etc/postfix/
cp mail_secure.key /etc/postfix/

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

smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/mail_secure.crt
smtpd_tls_key_file = /etc/postfix/mail_secure.key
smtp_tls_security_level = may

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

Шаг 5: Установка и конфигурация Dovecot

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

    В консоли введите команду sudo apt-get -y install dovecot-imapd dovecot-pop3d и нажмите на Enter. Для обладателей RedHat команда выглядит немного иначе: dnf -y install dovecot .

Команда для установки вспомогательного компонента Dovecot в Linux

Подтверждение установки вспомогательного компонента Dovecot в Linux

Ожидание установки вспомогательного компонента Dovecot в Linux

Добавление компонента Dovecot в Linux в автозагрузку

Ввод пароля для добавления компонента Dovecot в Linux в автозагрузку

Команда для активации компонента Dovecot в Linux

Запуск конфигурационного файла Dovecot в Linux для дальнейшей настройки

Настройка конфигурационного файла компонента Dovecot в Linux

protocols = imap pop3 lmtp
listen = *, ::

userdb driver = pam
>

ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem

Для межсетевого экрана потребуется отдельно ввести следующее:

$ iptables -A INPUT -p tcp --dport 110 -j ACCEPT
$ iptables -A INPUT -p tcp --dport 995 -j ACCEPT
$ iptables -A INPUT -p tcp --dport 143 -j ACCEPT
$ iptables -A INPUT -p tcp --dport 993 -j ACCEPT

$ iptables -A INPUT -p tcp --dport 25 -j ACCEPT

Для FirewallD эта структура выглядит немного иначе:

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

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Читайте также: