DNS-записи домена — введение
Доменные имена
Общая группа доменов указывается справа. В приведенных ниже примерах домен верхнего уровня или TLD — это .com.
example.com mail.hello.example.com
Каждое значение слева от TLD отделяется точкой, и называются поддоменами. hello и mail соответственно являются поддоменами второго и третьего уровня. Субдомены используются для идентификации определенных компьютеров или служб.
Серверы имен
Выбор и указание сервера DNS является неотъемлемой частью владения доменом. Иначе клиентские устройства не будут знать, где найти информацию о DNS.
Серверы имен размещают информацию о домене DNS в текстовом файле, который называется файлом зоны. Они также известны как записи Start of Authority (SOA). Вы можете разместить свою информацию DNS на серверах имен в одном из нескольких мест:
- Регистратор домена;
- Ваш собственный DNS-сервер;
- Сторонний DNS-хостинг.
DNS-записи и файлы зон
Записи DNS сопоставляют доменные имена с IP-адресами. Затем DNS-записи автоматически объединяются в файл зоны, что позволяет подключенным устройствам искать правильный IP-адрес домена. Если вы решите использовать серверы имен Linode, диспетчер DNS поможет создать файл зоны. Он содержит следующие записи:
; example.com $TTL 86400 @ IN SOA ns1.linode.com. admin.example.com. 2013062147 14400 14400 1209600 86400 @ NS ns1.linode.com. @ NS ns2.linode.com. @ NS ns3.linode.com. @ NS ns4.linode.com. @ NS ns5.linode.com. @ MX 10 mail.example.com. @ A 12.34.56.78 mail A 12.34.56.78 www A 12.34.56.78
Файл зоны каждого домена включает в себя адрес электронной почты администратора домена, серверы имен и DNS-записи. Вы можете создавать множество записей для любого количества поддоменов.
Разрешение DNS
Доменное имя должно быть переведено на IP-адрес. DNS сопоставляет понятные пользователю доменные имена (example.com) с IP-адресами (192.0.2.8). Это происходит в специальном текстовом файле, называемом файлом зоны. В нем перечислены домены и соответствующие им IP-адреса. Файл зоны похож на телефонную книгу, в которой имена совпадают с адресами улиц.
Вот как работает процесс поиска DNS:
- Вы вводите доменное имя, например com,в адресную строку браузера.
- Компьютер подключен к интернету через провайдера (ISP). DNS-преобразователь интернет-провайдера запрашивает у корневого сервера имен соответствующий сервер имен TLD.
- Корневой DNS-сервер отвечает IP-адресом для сервера имен .com.
- DNS-распознаватель провайдера использует IP-адрес, полученный от корневого сервера имен.
- Сервер имен .comотвечает IP-адресом сервера имен com.
- DNS-распознаватель ISP считывает файл зоны с сервера имен домена.
- Файл зоны показывает, какой IP-адрес соответствует домену.
- Теперь, когда у провайдера есть IP-адрес для com, он возвращает его браузеру, который затем обращается к серверу сайта.
Описанный выше сценарий выполняется, если у провайдера нет информации о запрашиваемом домене. На самом деле провайдеры кэшируют данные о DNS после того, как получили ее в первый раз. Это ускоряет поиск и снижает нагрузку на DNS-серверы.
Но кэширование может стать проблемой, если вы недавно внесли изменения в информацию о DNS. Для ее решения измените значение времени жизни файла зоны (TTL), чтобы обновление DNS происходило быстрее.
Настройка аутентификации на Postfix
Аутентификация на postfix будет выполняться методом dovecot. Для этого устанавливаем его. Заодно, устанавливаем и postfix (на случай, если его нет еще в системе). В зависимости от используемой операционной системы используем разные команды.
а) если используем Ubuntu / Debian:
apt-get update
apt-get install postfix dovecot-imapd dovecot-pop3d
б) если используем CentOS / Red Hat:
yum install postfix dovecot
После установки пакетов, разрешаем автозапуск dovecot и postfix:
systemctl enable postfix dovecot
Открываем на редактирование конфигурационный файл нашего MTA Postfix:
vi /etc/postfix/main.cf
Добавляем строки (или меняем значения):
smtpd_sasl_type = dovecot
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_relay_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
* где:
- smtpd_sasl_type — тип плагина, который используется для SASL-аутентификации. Командой postconf -a мы можем получить список механизмов аутентификации, которые поддерживаются почтовой системой.
- smtpd_sasl_auth_enable — разрешает или запрещает аутентификацию по механизму SASL.
- smtpd_sasl_path — путь до файла для обмена аутентификационной информацией. Используется для взаимодействия нескольких систем — в нашем примере Postfix + Dovecot.
-
smtpd_relay_restrictions — правила разрешения и запрета использования MTA при пересылке. В нашем случае:
- permit_mynetworks — разрешить отправку с компьютеров, чьи IP-адреса соответствуют настройке mynetworks.
- permit_sasl_authenticated — разрешить отправку писем тем, кто прошел авторизацию.
- reject_unauth_destination — запретить всем, кто не прошел проверку подлинности.
Проверяем корректность настройки:
postconf > /dev/null
Если команда не вернула ошибок, перезапускаем Postfix:
systemctl restart postfix
Переходим к настройке dovecot — открываем файл:
vi /etc/dovecot/conf.d/10-master.conf
… и приводим опцию service auth к следующему виду:
service auth {
…
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
…
}
* если соответствующей секции unix_listener нет, то ее нужно создать
Обратите внимание, что для обмена аутентификационными данными мы применяем файл /var/spool/postfix/private/auth, который в конфигурационном файле postfix был указан, как private/auth
Отключаем требование ssl для аутентификации (на текущем этапе нам это не нужно):
vi /etc/dovecot/conf.d/10-ssl.conf
Проверяем, чтобы значение ssl не было required:
ssl = yes
* нас устроит оба варианта — yes или no.
Настройки аутентификации приводим к следующему виду:
vi /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain login
* данные механизмы позволяют передачу данных в открытом виде.
В этом же файле проверяем, что снят комментарий со следующей строки:
!include auth-system.conf.ext
Проверяем корректность настройки dovecot:
doveconf > /dev/null
Если команда ничего не вернула, перезапускаем сервис:
systemctl restart dovecot
В качестве логина и пароля можно использовать любую системную учетную запись. Создадим ее для теста:
useradd smtptest
passwd smtptest
Мы настроили простую аутентификацию на сервере SMTP. Для проверки можно воспользоваться любым почтовым клиентом. Пример настройки thunderbird:
Пробуем отправить письмо. Отправка должна потребовать ввода логина и пароль — используем аутентификационные данные для записи, созданной выше.
Мы завершили настройку аутнтификации на postfix при отправке письма. Добавим проверку данных через LDAP.
Установите бесплатный SSL-сертификат Let’s Encrypt
Мы собираемся использовать сертификат SSL для доступа к нашей установке Postfix Admin и включить шифрование Dovecot и Postfix SSL / TLS.
У нас есть руководство по установке SSL-сертификата Let’s Encrypt . Наиболее важным моментом здесь является создание сертификата SSL для вашего имени хоста сервера (FQDN) в нашем случае .
После того, как вы сгенерировали сертификат SSL, следуя приведенному выше учебнику, отредактируйте свой блок сервера Nginx следующим образом:
/etc/nginx/sites-enabled/mail.baks.dev.conf
Перезагрузите службу Nginx, чтобы изменения вступили в силу:
На этом этапе вы сможете войти в систему установки Postfix Admin по адресу , используя пользователя superadmin, созданного ранее в этом руководстве.
Настройка Dovecot
Dovecot — это IMAP и POP3 сервер, который позволит нам забирать почту программами сборщиками. Это гибкий и безопасный инструмент в системе Linux.
Нам нужно открыть на редактирование файл /etc/postfix/master.cf и добавить в конце следующие ниже строки:
Сохраним для потомков изначальный конфигурационный файл Dovecot:
После чего откроем файл /etc/dovecot/dovecot.conf на редактирование и заменим всё его содержимое указанным ниже кодом. Ящик «postmaster@example.com» следует заменить на желаемый:
MySQL будет сохранять в себе пароли доступа, поэтому мы сохраним копию первоначального /etc/dovecot/dovecot-sql.conf, а потом произведём настройку:
Содержимое исходного файла /etc/dovecot/dovecot-sql.conf полностью заменим на нижеуказанное, не забудем поменять пароль «mail_admin_password» на актуальный:
На этом настройка Dovecot завершена, следует перезагрузить его:
Проверим файл /var/log/mail.log на отсутсвие ошибок:
И найдём примерно следующие строки:
Перед началом тестирования следует установить права и владельца на файл конфигурации Dovecot /etc/dovecot/dovecot.conf:
Проверим корректность работы POP3 сервера, для этого мы подключимся к POP3 серверу через терминал:
После ввода команды в консоли должно отобразиться примерно следующие:
Выйдем из режима терминала, пока он нам больше не нужен:
С Dovecot разобрались, теперь перейдём к настройке алиасов.
Настройка Postfix на работу с MySQL
Для каждой таблицы в MySQL нам следует создать файл соответствия для Postfix.
Создадим файл для работы с почтовыми доменами Postfix:
В созданный файл /etc/postfix/mysql-virtual_domains.cf нужно добавить следующие строки, замените пароль «mail_admin_password» на пароль пользователя «mail_admin»:
Создадим похожий файл для настройки пересылки почты с ящика на ящик:
В созданный файл /etc/postfix/mysql-virtual_forwardings.cf нужно добавить следующие строки, замените пароль «mail_admin_password» на пароль пользователя «mail_admin»:
Далее создадим файл для работы с почтовыми аккаунтами:
В созданный файл /etc/postfix/mysql-virtual_mailboxes.cf нужно добавить следующие строки, замените пароль «mail_admin_password» на пароль пользователя «mail_admin»:
И наконец создаём вспомогательный файл для виртуального отображения почты:
Установим нужные права и владельца на только что созданные файлы:
Добавим почтовую группу и пользователя для передачи почты. Все сообщения виртуальных почтовых ящиков будут храниться в папке /home/vmail на сервере:
На редактирование файл /etc/postfix/main.cf и убедимся в наличии следующих строк, адрес сервера следует заменить на выбранный ранее:
На этом мы закончим конфигурировать Postfix и перейдём к настройке SSL и генерации сертификата.
Создание сертификатов для postfix и dovecot
Генерируем Certificate Signing Request (CSR)
Создадим ключ для Certificate Signing Request (CSR)
cd /etc/ssl && openssl genrsa -des3 -out server.key 2048
здесь необходимо будет указать пароль для защищённого ключа
Теперь создадим незащищённый ключ
openssl rsa -in server.key -out server.key.insecure && mv server.key server.key.secure && mv server.key.insecure server.key
здесь необходимо будет указать пароль от защищённого ключа
Создадим CSR
openssl req -new -key server.key -out server.csr
здесь необходимо будет ответить на ряд вопросов
Country Name (2 letter code) :RU (страна) State or Province Name (full name) :obl-t (область) Locality Name (eg, city) []:NewCity (город) Organization Name (eg, company) : Example Ltd (название организации) Organizational Unit Name (eg, section) []:branch (название подразделения) Common Name (eg, YOUR name) []:example.com (ваш домен) Email Address []:admin@example.com A challenge password []: (оставил пустым) An optional company name []: Example
Установим ключ сервера
cp server.key /etc/ssl/private
Создаём внутренний Certification Authority (CA)
Для начала создадим директории необходимые для СА сертификатов
mkdir /etc/ssl/CA && mkdir /etc/ssl/newcerts
Создаём необходимые файлы
sh -c "echo '01' > /etc/ssl/CA/serial" && touch /etc/ssl/CA/index.txt
Редактируем /etc/ssl/openssl.cnf в секции следующим образом
dir = /etc/ssl/ # Where everything is kept database = $dir/CA/index.txt # database index file. certificate = $dir/certs/cacert.pem # The CA certificate serial = $dir/CA/serial # The current serial number private_key = $dir/private/cakey.pem# The private key default_days = 3650 # how long to certify for
Создадим self-singed корневой сертификат
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -newkey rsa:2048 -out cacert.pem
здесь необходимо будет указать пароль для ключа и ответить на вопросы
Установим корневой сертификат и ключ
mv cakey.pem /etc/ssl/private/ && mv cacert.pem /etc/ssl/certs/
Создадим сертификаты для postfix и dovecot
Создаём сертификат для postfix
openssl ca -in server.csr -config /etc/ssl/openssl.cnf
отвечаем на вопросы
Enter pass phrase for /etc/ssl//private/cakey.pem: пароль_от_ключа Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n] y
Установим полученный сертификат
cat /etc/ssl/newcerts/01.pem | sed -n '/-----BEGIN CERTIFICATE-----/,$p' > /etc/ssl/certs/postfix.pem
Для создания следующего сертификата необходимо в файле /etc/ssl/CA/index.txt.attr заменить значение unique_subject с yes на no
sed 's/unique_subject = yes/unique_subject = no/' /etc/ssl/CA/index.txt.attr > /etc/ssl/CA/temp && mv /etc/ssl/CA/temp /etc/ssl/CA/index.txt.attr
Создаём сертификат для dovecot
openssl ca -in server.csr -config /etc/ssl/openssl.cnf
Устанавливаем полученный сертификат
cat /etc/ssl/newcerts/02.pem | sed -n '/-----BEGIN CERTIFICATE-----/,$p' > /etc/ssl/certs/mydovecot.pem
Настройка saslauthd для доступа к MySQL
Saslauthd — это демон аутентификации, который работает посредствам SASL. Нам он нужен, чтобы связать Postfix с MySQL и позволять им совместно работать.
Для начала создадим директорию для saslauthd:
Сохраним начальную версию файла:
Откроем на редактирование файл /etc/default/saslauthd и установим в нём следующие значения:
После этого нам нужно создать файл /etc/pam.d/smtp:
И внести в него следующие строки. Укажите нужный пароль для пользователя «mail_admin», заменив «mail_admin_password» на верное значение:
Создадим файл /etc/postfix/sasl/smtpd.conf:
И внесём в него следующие строки, так же заменив пароль на верный:
Установим права на вновь созданные файлы:
Теперь добавим пользователя postfix в группу sasl и перезапустим сервисы:
На этом конфигурирование saslauthd завершено. Далее мы настроим Dovecot на использование базы данных MySQL для IMAP/POP3 идентификации.
Install SSL Certificate
While you can generate an SSL certificate through any certificate authority, we recommend using Certbot to quickly and easily generate a free certificate. Follow these
Certbot instructions, selecting your Linux distribution and web server software (or “None” if this server is only functioning as a mail server). Once installed, run Certbot with the option and type in the FQDN name of your mail server (such as mail.example.com):
You can also reference the
Install an SSL Certificate with Certbot guide. Make a note of the file paths for the certificate and private key on the Linode. You will need the path to each during the
configuration steps.
1. Настройка аутентификации на Postfix
Аутентификация на postfix будет выполняться методом dovecot. Для этого устанавливаем его. Заодно, устанавливаем и postfix (на случай, если его нет еще в системе). В зависимости от используемой операционной системы используем разные команды.
а) если используем Ubuntu / Debian:
apt-get update
apt-get install postfix dovecot-imapd dovecot-pop3d
б) если используем CentOS / Red Hat:
yum install postfix dovecot
После установки пакетов, разрешаем автозапуск dovecot и postfix:
systemctl enable postfix dovecot
Открываем на редактирование конфигурационный файл нашего MTA Postfix:
vi /etc/postfix/main.cf
Добавляем строки (или меняем значения):
YAML
smtpd_sasl_type = dovecot
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_relay_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
1 |
smtpd_sasl_type=dovecot permit_mynetworks permit_sasl_authenticated reject_unauth_destination |
* где:
- smtpd_sasl_type — тип плагина, который используется для SASL-аутентификации. Командой postconf -a мы можем получить список механизмов аутентификации, которые поддерживаются почтовой системой.
- smtpd_sasl_auth_enable — разрешает или запрещает аутентификацию по механизму SASL.
- smtpd_sasl_path — путь до файла для обмена аутентификационной информацией. Используется для взаимодействия нескольких систем — в нашем примере Postfix + Dovecot.
-
smtpd_relay_restrictions — правила разрешения и запрета использования MTA при пересылке. В нашем случае:
- permit_mynetworks — разрешить отправку с компьютеров, чьи IP-адреса соответствуют настройке mynetworks.
- permit_sasl_authenticated — разрешить отправку писем тем, кто прошел авторизацию.
- reject_unauth_destination — запретить всем, кто не прошел проверку подлинности.
Проверяем корректность настройки:
postconf > /dev/null
Если команда не вернула ошибок, перезапускаем Postfix:
systemctl restart postfix
Переходим к настройке dovecot — открываем файл:
vi /etc/dovecot/conf.d/10-master.conf
… и приводим опцию service auth к следующему виду:
YAML
service auth {
…
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
…
}
1 |
serviceauth{ … unix_listener/var/spool/postfix/private/auth{ mode=0660 user=postfix group=postfix } … } |
* если соответствующей секции unix_listener нет, то ее нужно создать. Обратите внимание, что для обмена аутентификационными данными мы применяем файл /var/spool/postfix/private/auth, который в конфигурационном файле postfix был указан, как private/auth.
Отключаем требование ssl для аутентификации (на текущем этапе нам это не нужно):
vi /etc/dovecot/conf.d/10-ssl.conf
Проверяем, чтобы значение ssl не было required:
ssl = yes
* нас устроит оба варианта — yes или no.
Настройки аутентификации приводим к следующему виду:
vi /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain login
* данные механизмы позволяют передачу данных в открытом виде.
В этом же файле проверяем, что снят комментарий со следующей строки:
!include auth-system.conf.ext
Проверяем корректность настройки dovecot:
doveconf > /dev/null
Если команда ничего не вернула, перезапускаем сервис:
systemctl restart dovecot
В качестве логина и пароля можно использовать любую системную учетную запись. Создадим ее для теста:
useradd smtptest
passwd smtptest
Мы настроили простую аутентификацию на сервере SMTP. Для проверки можно воспользоваться любым почтовым клиентом. Пример настройки thunderbird:
Пробуем отправить письмо. Отправка должна потребовать ввода логина и пароль — используем аутентификационные данные для записи, созданной выше.
Мы завершили настройку аутнтификации на postfix при отправке письма. Добавим проверку данных через LDAP.
Managing Spam With SpamAssassin: Stop spam on Postfix, Dovecot, And MySQL
-
Install SpamAssassin:
-
Next, create a user for SpamAssassin daemon(spamd):
-
Edit the configuration file. Set the home directory, update the parameter with the user that was just created (as well as the home directory), and update the parameter to .
- File: /etc/default/spamassassin
-
Here is a
detailed documentation of SpamAssassin’s configuration file that you can refer to while working through these next steps. -
- File: /etc/spamassassin/local.cf
-
-
- File: /etc/postfix/master.cf
-
-
Start Spamassassin and enable the service to start on boot:
If not using systemd (as is the case with Debian 7 and earlier), edit the configuration file instead. Set the parameter to .
Как установить Postfix
По умолчания Postfix включен в репозиторий операционной системы Ubuntu, поэтому с установкой не должно возникнуть никаких проблем. Провести ее мы можем с использованием команды apt.
Первым делом обновляем кэш пакетов:
sudo apt update
Затем устанавливаем непосредственно сам пакет Postfix
Здесь важно обратить внимание на значение DEBIAN_PRIORITY=low – оно позволяет нам подключить некоторые дополнительные опции
sudo DEBIAN_PRIORITY=low apt install postfix
В результате перед нами отобразится ряд вопросов и сообщений. Отвечаем на них следующим образом:
- General type of mail configuration? – в нашем случае мы указываем значение «Internet Site», но оно может отличаться в зависимости от инфраструктуры.
- System mail name – стандартный домен, который используется для создания точного адреса электронной почты. Он необходим в тех случаях, когда имеется только часть адреса с именем профиля. Например, имя сервера email.example2.com, но мы хотим, чтобы имя системной почты выглядело как example2.com. В этом случае для пользователя user будет использоваться адрес user@example2.com.
- Root and postmaster mail recipient – это аккаунт Linux, на который будет перенаправляться почта, адресованная root@ и postmaster@. В данном случае вам потребуется использовать свою учетную запись, например, UserNameZ7.
- Other destinations to accept mail for – текущий параметр определяет получателей почты, которых будет принимать этот экземпляр Postfix. При необходимости вы можете указать собственные доменные имена, для которых сервер будет получать почту.
- Force synchronous updates on mail queue? – если в вашем случае используется журнальная файловая система, то укажите значение «No».
- Local networks – это список локальных сетей, для которых почтовая служба настроена как устройство пересылки сообщений. Начальные значения подойдут для всех, но если вы захотите их изменить, то рекомендуется максимально сократить диапазон сетей.
- Mailbox size limit – позволяет сократить размер сообщения. Если установлено значение «0», то в таком случае ограничения будут полностью отключены.
- Local address extension character – символ, который используется для отделения обычной части адреса от расширения. По умолчанию значение установлено как «+», можете его оставить.
- Internet protocols to use – здесь указываем, требуется ли ограничивать версии IP, которые поддерживаются Postfix. Выбираем значение «All».
Все вышеуказанные настройки мы в любой момент времени можем подкорректировать. Чтобы открыть окно редактирования, достаточно ввести:
sudo dpkg-reconfigure postfix
На этом установка Postfix на Ubuntu завершена, теперь можем переходить к более детальным настройкам.
Настройка MySQL базы данных доменных имён и пользователей
Для начала подключимся к MySQL серверу прямо из командной строки, нужно будет ввести пароль пользователя root, указанный при установке:
После этого должно появиться приглашение к вводу команд MySQL, вроде этого:
Создадим базу данных для Postfix и выберем её для дальнейшего использования:
Подобные команда может быть выполнена и через интерфейс phpMyAdmin, но это менее безопасно во всех случаях.
Создадим пользователя с говорящим именем «mail_admin», он у нас будет главный по почте, поэтому наделим его всему привилегиями на всех локальных доменах
ВАЖНО! Сейчас и ниже «mail_admin_password» следует заменить на пароль для этого пользователя, в первой строке он задаётся впервые:. Далее создаём таблицу в которой будут храниться все активные почтовые домены, доменов может быть сколько угодно и это радует:
Далее создаём таблицу в которой будут храниться все активные почтовые домены, доменов может быть сколько угодно и это радует:
Создадим таблицу пересылки почты с ящика на ящик:
Создадим таблицу для хранения почтовых аккаунтов:
И наконец создадим таблицу транспортировки:
Работа с MySQL на данном этапе завершена, выходим обратно в консоль:
Проверим, что MySQL связана с localhost (127.0.0.1). Для этого откроем файл /etc/mysql/my.cnf и найдём следующую строку:
Если MySQL на сервере уже настроен на другой IP адрес, следует это учесть в последующих шагах настройки Postfix. Не рекомендуется запускать MySQL сервер на публичном IP адресе — это небезопасно.
Чтобы внесённые нами изменения корректно вступили в силу — перезапустим MySQL сервер:
На следующем этапе мы настроим Postfix на работу с MySQL.
Настройка SSL
В секции SSL указаны пути к сертификатам:
ssl = yes
ssl_cert = </etc/pki/dovecot/certs/server.crt
ssl_key = </etc/pki/dovecot/private/server.key
Проверте пути к файлам, по-умолчанию это вполне может быть, например, так:
ssl = yes
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
Права на эти файлы д.б. только для root:
chown root:root /etc/pki/dovecot/certs/dovecot.pem
chown root:root /etc/pki/dovecot/private/dovecot.pem
chmod 444 /etc/pki/dovecot/certs/dovecot.pem
chmod 400 /etc/pki/dovecot/private/dovecot.pem
Настройка Dovecot
Dovecot — это IMAP и POP3 сервер, который позволит нам забирать почту программами сборщиками. Это гибкий и безопасный инструмент в системе Linux.
Нам нужно открыть на редактирование файл /etc/postfix/master.cf и добавить в конце следующие ниже строки:
Сохраним для потомков изначальный конфигурационный файл Dovecot:
После чего откроем файл /etc/dovecot/dovecot.conf на редактирование и заменим всё его содержимое указанным ниже кодом. Ящик «postmaster@example.com» следует заменить на желаемый:
MySQL будет сохранять в себе пароли доступа, поэтому мы сохраним копию первоначального /etc/dovecot/dovecot-sql.conf, а потом произведём настройку:
Содержимое исходного файла /etc/dovecot/dovecot-sql.conf полностью заменим на нижеуказанное, не забудем поменять пароль «mail_admin_password» на актуальный:
На этом настройка Dovecot завершена, следует перезагрузить его:
Проверим файл /var/log/mail.log на отсутствие ошибок:
И найдём примерно следующие строки:
Перед началом тестирования следует установить права и владельца на файл конфигурации Dovecot /etc/dovecot/dovecot.conf:
Проверим корректность работы POP3 сервера, для этого мы подключимся к POP3 серверу через терминал:
После ввода команды в консоли должно отобразиться примерно следующие:
Выйдем из режима терминала, пока он нам больше не нужен:
С Dovecot разобрались, теперь перейдём к настройке алиасов.
Установка Dovecot
Я уже давно для себя выбрал CentOS как основу для серверов. Поэтому все команды установки софта будут именно для этой операционной системы. Я крайне не советую ставить основные программы из исходников командами типа make, make install и т.д. Это приведет только к невозможности получения обновлений в удобной форме.
В процессе отладки я наступал на разные грабли, список которых выделил в отдельную страницу «размышления по ходу отладки». Не поленитесь, посмотрите, вдруг что-то пригодится.
yum install dovecot
yum install dovecot-mysql
chkconfig dovecot on
Вот и все, дальше надо настраивать конфиг.
Отправка писем из очереди
Всю почту отправляемую во внешний мир postfix ставит в очередь, для того чтоб письма из очереди доставлялись адресатам необходимо выполнить команду postfix flush. Добавим в crontab эту команду, так чтоб письма в очереди отправлялись каждую минуту
crontab -e (выбираем редактор)
и добавляем следующее
* * * * * /usr/sbin/postfix flush
в результате письма из очереди будут отправляться каждую минуту.
Всё почтовый сервер готов к использованию.
pass_filter = (&(objectClass=gosaMailAccount)(mail=%u))
на
pass_filter = (&(objectClass=gosaMailAccount)(mail=%n@*))
ВНИМАНИЕ!!! Данный вариант работает только если ваш сервер обслуживает один домен, на серверах где больше одного домена не тестировалось, скорей всего работать не будет так как на разных доменах могут быть одинаковые пользователи.
Установка нужных пакетов
Выполним следующую команду для установки Postfix, Dovecot, OpenSSL и MySQL:
В процессе установки появится несколько диалогов первоначальной настройки пакетов, вот основные шаги:
- Во время установки сервера MySQL, если он не был установлен ранее, потребуется ввести пароль для пользователя root. Пароль следует выбрать надёжный;
- Тип используемого Postfix сервера, — в одноимённом диалоге, — «Internet Site»;
- В диалоге настройки Postfix следует определиться с почтовым именем. Имеется ввиду полное доменное имя сервера, в нашем примере это mysrv.example.com, его ещё называют FQDN (Fully Qualified Domain Name).
Так же нам понадобится отличный инструмент mailx, с его помощью мы будем отсылать тестовые письма непосредственно из консоли:
или, если недоступен первый вариант программы:
Итак мы установили все необходимые пакеты и готовы перейти к детальной настройке конфигурации.
Создание сертификатов для связи с LDAP
Для связи с LDAP сервером по защищённому соединению нам потребуются отдельные сертификаты.
Идём на наш LDAP сервер.
Создаём папку для сертификатов почтового сервера и заходим в неё
mkdir /etc/ssl/veles-ssl && cd /etc/ssl/veles-ssl
Создаём ключ для почтового сервера
certtool --generate-privkey > mail_server_ldap_key.pem
Создаём файл mail.info следующего содержания
country = US state = North Carolina locality = Winston-Salem organization = Example Company cn = mail.example.com tls_www_client encryption_key signing_key
Первые пять значений меняйте на свои.
Создаём сертификат
certtool --generate-certificate --load-privkey mail_server_ldap_key.pem \ --load-ca-certificate /etc/ssl/certs/cacert.pem --load-ca-privkey /etc/ssl/private/cakey.pem \ --template mail.info --outfile mail_server_ldap_cert.pem
Копируем СА сертификат и переименовываем его
cp /etc/ssl/certs/cacert.pem . && mv cacert.pem mail_server_ldap_ca.pem
Теперь содержимое папки mail-ssl необходимо скопировать на почтовый сервер следующим образом
файлы mail_server_ldap_ca.pem и mail_server_ldap_cert.pem необходимо положить в папку /etc/ssl/certs на почтовом сервере
файл mail_server_ldap_key.pem необходимо положить в папку /etc/ssl/private на почтовом сервере.
Серверная почта на основе Postfix, Dovecot и MySQL для Debian
Postfix — очень мощный почтовый сервер, основанный на идеологии Open Source, его часто называют Postfix MTA — Postfix Mail Transfer Agent. В этом руководстве, собранном из разных источников и дополненных личными переживаниями, я расскажу как установить Postfix в связке с Dovecot (IMAP/POP3) и MySQL на сервер Apache под управлением OC Debian. Руководство было опробовано на Debian 5 Lenny и Debian 6 Squeeze.
Текст статьи достаточно объёмный, но выполнив все шаги, мы получим в своё распоряжение надёжный почтовый сервер с возможностью добавления почтовых доменов и ящиков прямо через интерфейс MySQL, а это многого стоит.
Аутентификация с помощью виртуальных пользователей
Теперь настроим проверку подлинности не с помощью системных учетных записей, а с помощью виртуальных. В данном примере это будут виртуальные пользователи только для аутентификации при отправке почты.
Открываем конфигурационный файл dovecot:
vi /etc/dovecot/conf.d/auth-system.conf.ext
Находим секцию passdb и приводим ее к виду:
passdb {
# driver = pam
driver = passwd-file
args = scheme=SHA1 /etc/dovecot/passwd
…
}
* в моем случае было закомментировано использование pam драйвера и добавлены опции driver и args. В данном примере они указывают на использование в качестве базы логинов и паролей — файл /etc/dovecot/passwd.
Создаем хэш для пароля первого пользователя:
doveadm pw -s sha1 | cut -d ‘}’ -f2
* система запросит пароль — вводим его дважды.
Полученный хэш имеет, примерно, такой вид:
tMoWsjKKoenYg7+SLRB8GXZQY38=
Копируем его и создаем файл:
vi /etc/dovecot/passwd
user@dmosk.ru:tMoWsjKKoenYg7+SLRB8GXZQY38=
* в данном примере user@dmosk.ru — имя виртуального пользователя; tMoWsjKKoenYg7+SLRB8GXZQY38= — хэш нашего пароля.
Задаем права на файл с базой логинов и паролей:
chown dovecot: /etc/dovecot/passwd
chmod 600 /etc/dovecot/passwd
Перезапускаем Dovecot:
systemctl restart dovecot
Настройка брандмауэра
Перед тем, как мы начнем настройку, убедимся, что для почтового сервера у нас открыты необходимые порты в брандмауэре. В зависимости от используемой системы управления netfilter команды будут отличаться.
Для Iptables
Как правило, Iptables используется для систем на базе Debian.
Для того, чтобы открыть нужные нам порты, вводим:
iptables -I INPUT 1 -p tcp —match multiport —dports 25,465,587 -j ACCEPT
iptables -I INPUT 1 -p tcp —match multiport —dports 110,143,993,995 -j ACCEPT
* где мы откроем следующие порты:
- 25 — стандартный SMTP через STARTTLS;
- 110 — стандартный POP3 через STARTTLS;
- 143 — стандартный IMAP через STARTTLS;
- 465 — защищенный SMTP через SSL/TLS;
- 587 — защищенный SMTP через STARTTLS;
- 993 — защищенный IMAP через SSL/TLS;
- 995 — защищенный POP3 через SSL/TLS.
Для сохранения правил установим пакет:
apt-get install iptables-persistent
И выполняем команду:
netfilter-persistent save
Firewalld
Firewalld, в основном, используется в системах на базе Red Hat.
Для открытия нужных нам портов вводим команды:
firewall-cmd —permanent —add-port=25/tcp —add-port=465/tcp —add-port=587/tcp
firewall-cmd —permanent —add-port=110/tcp —add-port=143/tcp —add-port=993/tcp —add-port=995/tcp
И применяем настройки:
firewall-cmd —reload
* где мы откроем следующие порты:
- 25 — стандартный SMTP через STARTTLS;
- 110 — стандартный POP3 через STARTTLS;
- 143 — стандартный IMAP через STARTTLS;
- 465 — защищенный SMTP через SSL/TLS;
- 587 — защищенный SMTP через STARTTLS;
- 993 — защищенный IMAP через SSL/TLS;
- 995 — защищенный POP3 через SSL/TLS.
Вывод
Хоть и конфиг Dovecot получился достаточно большой, в нем все предельно просто, а многие директивы оставлены просто на будущее. Достаточно подробная и внятная официальная документация упрощает процесс настройки, а также предлагает готовые примеры реализации функционала.
На этапе отладке включайте логи как можно более подробно, вплоть до дебагинга. Dovecot предоставляет на редкость информативные сообщения и, более того, в большинстве случаев сразу предлагает и решение проблемы.
Разбивать конфиг на части (в соответствующие файлы конфигурации в каталоге conf.d/) или сводить все в один dovecot.conf решать конечно же вам, но второй вариант лично для меня более удобен, информативен, прост в отладке.
Notes:
- Dovecot Logging
- Login processes
- Autocreate plugin (v2.0 and older)
- Mailbox settings
comments powered by HyperComments