Как установить почтовый сервер с поддержкой домена .РФ на операционной системе Debian
Доменное имя в зоне .РФ удобно использовать по двум причинам: его легко запомнить и ввести в поисковую строку в браузере. Кроме того, в зоне .РФ много свободных адресов в отличие от .ru и других популярных сегментов. Можно придумать красивый домен, а затем настроить на нем почтовый сервер и принимать письма с любых почтовых ящиков.
Однако настроить почту с кириллическим доменом на Gmail, Mail.ru и других подобных почтовых сервисах пока не получится: они всё еще не поддерживают почтовые домены на национальных языках. Чтобы принимать и отправлять письма через интернационализированные адреса электронной почты (EAI), а главное, создавать кириллические почтовые ящики с доменом .РФ, вы можете установить и настроить свой собственный почтовый сервер. Сделать это не так сложно: всего 7 этапов, и вы сможете работать с электронной почтой на своем кириллическом домене.
Расскажем подробнее, как установить почтовый сервер в домене .РФ на ОС Debian. Для настройки мы использовали инструкцию для системных администраторов с вики.поддерживаю.РФ.
Перед настройкой почтового сервера зарегистрируйте домен и настройте его DNS-сервера
Это можно сделать вручную, но проще обратиться в службу поддержки вашего регистратора доменов или провайдера хостинга. Специалисты компании оперативно внесут изменения в DNS-записи, и вы сможете приступить к установке почты.
Вот пример, как выглядят DNS-записи в случае с нашим тестовым доменом
Этап 1. Установка сервера баз данных
В нашем примере мы будем использовать сервер управления базами данных MariaDB.
Для этого понадобится команда:
apt install mariadb-server mariadb-client
Создаем пользователя и базы данных для работы почтовой системы и веб-интерфейса
Для этого перейдите в MariaDB и последовательно выполните несколько команд.
Первая — создайте базы данных:
create database vexim;
create database roundcube;
Вторая — создайте пользователей под эти базы данных:
CREATE USER 'vexim'@'localhost' IDENTIFIED BY '*************'; CREATE USER 'roundcube'@'localhost' IDENTIFIED BY '*************';
Третья — настройте доступы для созданных пользователей:
GRANT ALL PRIVILEGES ON vexim.* TO 'vexim'@'localhost'; GRANT ALL PRIVILEGES ON roundcube.* TO 'roundcube'@'localhost'; flush privileges;
Обязательно сохраните пароли от vexim и roundcube, потому что они понадобятся для доступа в их веб-интерфейсы.
Этап 2. Установка веб-сервера apache2
Для этого выполните команду:
apt install apache2
Здесь же внесите правки в виртуальный хост для работы roundcube. Для этого сначала изменяем директиву DocumentRoot в несколько шагов.
Первый шаг — создаем папку:
mkdir /usr/share/roundcube
Второй шаг — меняем права у директории:
chown -R www-data: /usr/share/roundcube
Третий шаг — создаем файл:
sudo nano /etc/apache2/sites-available/roundcube.conf
И в нем прописываем следующий текст:
<VirtualHost *:80> ServerName xn--b1aebcsticdxckc1bzg.xn--p1ai ServerAdmin xn--e1aybc@xn--b1aebcsticdxckc1bzg.xn--p1ai DocumentRoot /usr/share/roundcube ErrorLog ${APACHE_LOG_DIR}/roundcube-error.log CustomLog ${APACHE_LOG_DIR}/roundcube-access.log combined </VirtualHost>
При этом вместо xn--b1aebcsticdxckc1bzg.xn--p1ai и xn--e1aybc@xn--b1aebcsticdxckc1bzg.xn--p1ai пропишите ваши данные в формате punycode.
Далее — включаем roundcube:
a2ensite roundcube
Проверяем конфиг:
apachectl configtest
Если всё настроено верно, вы увидите ответ: Syntax OK
Теперь перезагружаем apache2:
systemctl reload apache2
После перезагрузки веб-сервер не будет работать, так как мы настроили только интерфейс. Но проверить правильность установки всё равно можно.
Этап 3. Установка roundcube
Подготовительный этап: устанавливаем roundcube и перемещаем его в нужную папку
Для начала скачайте исходный код:
wget https://github.com/roundcube/roundcubemail/releases/download/1.4.9/roundcubemail-1.4.9-complete.tar.gz
А затем распакуйте архив с исходным кодом:
tar -xvzf roundcubemail-1.4.9-complete.tar.gz
Осталось перенести файлы из архива в другое место и приступить к установке. Это делается в несколько шагов.
Первый шаг — создаем папку:
mkdir /usr/share/roundcube
Второй шаг — копируем содержимое распакованного архива:
cp -r roundcubemail-1.4.9/* /usr/share/roundcube/
Третий шаг — настраиваем владельца папки:
chown -R www-data:www-data /usr/share/roundcube/
Четвертый шаг — отключаем стандартный сайт apache, чтобы он не мешал в процессе установки:
a2dissite 000-default
Пятый шаг — включаем нужный модуль для roundcube:
a2enmod rewrite
Шестой шаг — перезапускаем веб-сервер и начинаем настраивать непосредственно roundcube:
systemctl restart apache2
Основной этап: устанавливаем roundcube
Roundcube настраивается по адресу http://<ip>/installer (входить нужно по IP-адресу сервера, на котором установлен roundcube). Здесь вы увидите три последовательные вкладки: проверки ранее введенной информации, создания конфига, создания базы данных.
На первой вкладке проверьте, чтобы рядом с MySQL был статус OK, и нажмите NEXT.
На второй вкладке введите название базы данных, имя пользователя и пароль для roundcube — они сгенерировались на этапе 1.
Затем спуститесь вниз и нажмите на CREATE CONFIG.
На третьей вкладке нажмите на кнопку Initialize database.
Осталось удалить папку installer:
rm -rf /usr/share/roundcube/installer
Теперь доступ в roundcube работает по адресу http://<ip>.
Этап 4. Установка PHP
Для этого выполните команду:
apt install php php7.4-mbstring php7.4-xml php7.4-mysql php7.4-gd php7.4-imagick php7.4-zip
А затем еще раз перезапустите apache командой:
systemctl restart apache2
Этап 5. Установка почтового сервера exim
Выполните команду:
apt install exim4-daemon-heavy
Следующий этап — настройка exim4 по пути Internet Site.
Вот как заполнять каждое новое окно:
- System mail name — напишите название вашего домена в формате punycode.
- IP-addresses to listen on for incoming SMTP connections — напишите 127.0.0.1 ; ::1 и IP вашего домена. Между 127.0.0.1 ; ::1 и IP вашего домена поставьте точку с запятой «;».
- Other destinations for which mail is accepted — добавьте название вашего домена в формате punycode.
- Domains to relay mail for — оставьте пустым.
- Machines to relay mail for — оставьте пустым.
- Keep the number of DNS-queries minimal (Dial-on-Demand) ? — выберите «нет».
- Delivery method for local mail: выберите «Maildir format in home directory».
- Split configuration into small files ? — выберите «нет».
- Root and postmaster mail recipient — напишите «root».
После настройки перейдите в папку /etc/exim4/update-exim4.conf.conf и добавьте строку
dc_localdelivery=’maildir_home’
Если строка, начинающаяся с dc_localdelivery= уже существует, замените ее на
dc_localdelivery=’maildir_home’
Теперь перезапускаем Exim:
systemctl restart exim
И проверяем отправку писем командой:
echo "my test" | mail -s "test message" -a "From: xn--e1aybc@xn--b1aebcsticdxckc1bzg.xn--p1ai" существующаяпочта@винтернете.рф
Вместо xn--e1aybc@... указывайте вашу почту, для которой поднимаете почтовый сервер, в формате punycode. Вместо «существующаяпочта@винтернете.рф» укажите интернационализированный email-адрес получателя, к которому у вас есть доступ, для проверки входящих сообщений.
Для того чтобы письма с настроенного почтового сервера принимались другими почтовыми сервисами, поддерживающими получение и отправку с интернационализированных почтовых адресов, например Gmail или Outlook.com, нужно настроить SPF, DMARC и DKIM. SPF-запись защищает от подделки домена. Без нее письма попадут в спам, потому что этот элемент указывает на используемые сервера и правила обработки писем. Наличие DKIM-подписи необходимо, чтобы подтвердить реальность адреса отправителя. Также эта запись обеспечивает доставляемость писем, потому что сервер получателя автоматически ее проверяет и принимает решение о приеме входящих. DMARC — это набор правил обработки электронных сообщений, которые не прошли авторизацию. Настройка позволяет выбрать порядок работы с такими письмами: либо не делать с ними ничего, либо помещать их в спам, либо просто отклонять. Подробнее о том, как настроить SPF, DMARC и DKIM, лучше уточнять у вашего провайдера хостинга или регистратора домена — его техническая поддержка даст актуальные настройки под ваш домен. |
Для этого выполните команду:
apt-get install courier-imap courier-pop courier-authlib-mysql courier-authdaemon
Следующий шаг — настройка доступа к серверу баз данных для авторизации.
Открываем файл authmysqlrc:
vim /etc/courier/authmysqlrc
И изменяем в нем строки:
MYSQL_USERNAME; MYSQL_DATABASE; MYSQL_PASSWORD.
В них прописываем логин, имя базы и пароль, которые мы указывали при создании базы данных для vexim на первом этапе.
Вот что делаем дальше:
Найдите эти строки: | Допишите в них эти слова: |
MYSQL_USER_TABLE |
users |
MYSQL_LOGIN_FIELD |
username |
MYSQL_HOME_FIELD |
pop |
MYSQL_NAME_FIELD |
realname |
Теперь перезапускаем courier командой:
service courier-* restart
Этап 7. Установка веб-интерфейса vexim
Подготовительный этап: загружаем специальный пакет для работы с zip. архивом
apt install unzip
Теперь копируем исходный код и распаковываем архив:
cd /usr/share/ wget https://github.com/vexim/vexim2/archive/master.zip unzip master.zip
А затем импортируем схему в ранее созданную базу данных:
mysql vexim < /usr/share/vexim2-master/setup/mysql.sql
При этом импорте система выдаст нам пароль от пользователя siteadmin. Обязательно сохраните пароль, он понадобится для доступа в панель администрирования.
Основной этап: настраиваем доступ к серверу баз данных
Первый шаг — используем команду:
cd /usr/share/vexim2-master/vexim/config
Второй шаг — изменяем имя файла:
mv variables.php.example variables.php
Третий шаг — проверяем значения uid и gid. Запомните их, чтобы прописать на следующем шаге:
cat /etc/passwd| grep exim
Затем в файле variables.php, который открывается командой sudo nano variables.php, находим строки sqluser и sqlpass. Меняем имя пользователя на vexim и добавляем в нее пароль от пользователя vexim:
$sqluser = "vexim"; $sqlpass = "CHANGE”;
Четвертый шаг — находим значения uid и gid и меняем на те, которые узнали ранее. В нашем случае это:
$uid = "106"; $gid = "113”;
Пятый шаг — создаем файл конфигурации для vexim:
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/vexim.conf
Шестой шаг — открываем файл командой:
sudo nano /etc/apache2/sites-available/vexim.conf
И вставляем туда текст ниже:
<VirtualHost *:8080> ServerName domain1.com DocumentRoot /usr/share/vexim ErrorLog ${APACHE_LOG_DIR}/vexim-error.log CustomLog ${APACHE_LOG_DIR}/vexim-access.log combined <Directory /usr/share/vexim> Options -Indexes AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>
Седьмой шаг — меняем права:
chown -R www-data: /usr/share/vexim
Восьмой шаг — включаем сайт:
a2ensite vexim
Девятый шаг — проверяем конфиг сайта:
apachectl configtest
Должен появиться ответ: Syntax OK
И перезагружаем Apache2:
systemctl reload apache2
Десятый шаг — правим файл:
sudo nano /etc/apache2/ports.conf
Для этого после Listen 80 добавляем Listen 8080.
И перезагружаем Apache2:
systemctl reload apache2
После этого можно зайти в интерфейс vexim http://<ip>/vexim. Логином будет siteadmin, а пароль вводим тот, который мы получили при импорте баз данных.
На этом настройка vexim завершена. Теперь ваш почтовый сервер может принимать и отправлять электронные письма на кириллице.
Для создания кириллических адресов электронной почты в вашем домене .РФ необходимо продолжить настройку почтового сервера с помощью официальной документации vexim и roundcube.