Поиск по сайту:

Как установить почтовый сервер с помощью ISPConfig в Debian 10


В этом учебном пособии в качестве примера используется настройка одного сервера. ISPConfig 3.1 установлен на Debian 10.0, Buster (см. руководство по установке ISPConfig Perfect Server для фактической установки сервера), цель этого руководства — показать вам шаги после установки исходного сервера для настройки работающей почтовой системы для вашего собственного доменное имя. Я обновил ISPConfig до версии 3.1.15 во время тестирования этого руководства.

Что нужно

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

  • хост, на котором вы устанавливаете ISPConfig (и операционную систему)
  • Я рекомендую 2 ГБ памяти с 4 ГБ подкачки, должно хватить для почтового сервера.
  • Хост должен иметь подключение к Интернету с портом 25, открытым в обе стороны
  • хост имеет фиксированный IP-адрес
  • хост должен иметь запись A для своего IP-адреса (или AAAA, если используется IPv6)
  • вы должны создать запись MX для службы имен DNS для хоста
  • вы должны получить PTR-запись обратного DNS-имени хоста, совпадающую с полным доменным именем хоста.

Требование к памяти для спам-фильтров. Вы можете обойтись 1 ГБ памяти даже с включенными спам-фильтрами, если есть своп на 4 ГБ, чтобы избежать ситуаций с нехваткой памяти.

Открытые порты

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

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

Записи службы имен DNS

Почтовому серверу требуется полное доменное имя, полное доменное имя (прочитайте об этом в Википедии: полное доменное имя). В этом примере доменное имя taleman.ovh. Чтобы показать, что имя хоста почтового сервера не обязательно должно быть mail, мы используем posti в качестве имени хоста. Таким образом, полное доменное имя — posti.taleman.ovh.

Этот хост установлен в системе поставщиков услуг, они предлагают регистрацию доменов, службу имен и службу обратных имен. Я использовал их.

IP-адрес 178.33.154.66. Я сделал следующее:

  • зарегистрировал домен taleman.ovh
  • добавил этот IP-адрес как запись A в службу имен DNS с именем posti.taleman.ovh
  • добавлена запись MX для домена taleman.ovh со значением posti.taleman.ovh
  • добавлена запись PTR службы обратных имен для этого IP-адреса, указывающая на posti.taleman.ovh

Запись MX создается для домена электронной почты. Поэтому я создаю его для taleman.ovh, и он указывает на posti.taleman.ovh, почтовый сервер, который получает электронную почту для этого домена.

Служба обратного имени

Прочтите о службе обратных имен в руководстве по службе имен. В этом примере служба обратного имени должна возвращать posti.taleman.ovh.

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

Тестирование службы имен

Лучше протестировать службу имен сейчас, так как отправка и получение электронной почты не будут работать, если служба имен настроена неправильно. Если ваша рабочая станция — Windows, а не Linux или Unix, используйте команду nslookup вместо host.

$ host taleman.ovh
taleman.ovh has address 188.165.143.5
taleman.ovh mail is handled by 10 posti.taleman.ovh.

Приведенный выше результат показывает, что с доменным именем связан IP-номер (который в данном случае отличается от IP-номера сервера электронной почты, но это не влияет на электронную почту), и есть запись MX, указывающая на пости.талеман.овх. Часть «почта обрабатывается» исходит из записи MX. Эта запись MX необходима, если электронная почта, отправленная на адреса @taleman.ovh, должна быть получена на posti.taleman.ovh.

Затем проверьте, что запись службы имен для почтового сервера FQDN (в данном случае posti.taleman.fi) является записью A и указывает на правильный IP-номер.

$ dig posti.taleman.ovh |grep "ANSWER SECTION" --after-context=3 
;; ANSWER SECTION:
posti.taleman.ovh. 3600 IN A 178.33.154.66
;; Query time: 56 msec

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

$ host 178.33.154.66
66.154.33.178.in-addr.arpa domain name pointer posti.taleman.ovh.

Вместо команд host и dig можно использовать веб-страницы, тестирующие службу имен. Я знаю о MXToolbox.

Если вы не можете выполнить вышеуказанные тесты, вы можете попробовать это руководство по настройке службы имен.

Установка ОС

Я использую Debian версии 10 Buster, поэтому я следую этому руководству:

Замените IP-номер, имя хоста и доменное имя своими значениями.

Поскольку я пишу это руководство на английском языке, я выбрал английский в качестве языка, но Финляндия в качестве страны и United_Kingdom en_GB.UTF-8 в качестве настройки локали.

:/tmp# cat /etc/debian_version 10.0
:~# cat /etc/timezone
Europe/Helsinki

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

:~#

Установка ISPConfig

Я решил установить Apache в качестве веб-сервера, поэтому для Debian Buster я следую этому руководству Perfect Server.

Я установил openssh-сервер на хост и настроил вход в систему root с помощью ключа ssh, поэтому я могу напрямую подключаться к хосту по ssh как root. Безопасный вход без пароля с помощью SSH.

:/tmp# free -h

Я предпочитаю редакторы в стиле Emacs, а не nano, поэтому сейчас я устанавливаю jed, чтобы редактирование файлов было более приятным.

У меня были правильно настроены /etc/host и /etc/hostname после установки операционной системы, поэтому я только что проверил их правильность, следуя руководству Perfect Server. Обратите внимание на имя хоста и полное доменное имя, если вы напутаете их, в конце концов вы обнаружите, что ваш почтовый сервер не работает. Повреждение можно исправить, но проще исправить с самого начала.

:/tmp# hostname -f
posti.taleman.ovh

В остальном я просто следую руководству Perfect Server. Обратите внимание, что в основном вы можете вырезать и вставлять команды из руководства в командную строку.

Я не устанавливал Mailman, не планирую использовать Mailman на этом хосте. Точно так же я не стал устанавливать BIND DNS Server, Webalizer, AWStats. Я установил Roundcube Webmail, так как этот хост становится почтовым сервером.

В главе 18 (Установка инструмента администрирования базы данных PHPMyAdmin) я использовал команду

/usr/bin/apg -m 32 -x 32

чтобы сгенерировать 32-символьный секрет иглобрюха.

Использование системы

Создание домена электронной почты и почтовых ящиков

Теперь я вхожу как администратор в ISPConfig и

  • Добавить нового клиента
  • Добавьте новый домен (домен электронной почты!) и заполните форму
  • Добавить новый почтовый ящик

Создайте ключи DKIM и запишите их, нажимая кнопки в порядке, указанном на изображении. Вы можете прочитать о DKIM в Википедии.

Рисунок 1: Создание почтового домена

Затем подождите две минуты или пока не исчезнет красный шарик с номером в верхней части панели ISPConfig.

В качестве первого теста войдите в веб-почту Roundcube с созданным выше почтовым ящиком и отправьте электронное письмо на тот же адрес. ISPConfig отправляет приветственное сообщение в каждый созданный почтовый ящик, поэтому там уже должно быть одно сообщение. Используйте кнопку «Создать» и напишите короткое тестовое сообщение.

Рисунок 2. Веб-почта Roundcube

Рисунок 3: Отправка из Roundcube

Сообщение должно скоро появиться в почтовом ящике.

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

Обратите внимание, что если вы включили серый список для почтового ящика, электронная почта, отправленная из-за пределов вашего сервера, не сразу поступает в почтовый ящик. Тем не менее, вы должны сразу же увидеть в почтовом журнале записи о попытке доставки, чтобы убедиться, что почта может попасть на ваш сервер. Запись серого списка в файле /var/log/mail.log выглядит примерно так:

Aug 29 19:08:42 posti postfix/smtpd[16911]: NOQUEUE: reject: 
  RCPT from mta-out1.inet.fi[62.71.2.194]: 450 4.2.0 
  <>: Recipient address rejected: Greylisted, 
  see http://postgrey.schweikert.ch/help/taleman.ovh.html; 
  from=<****@*****.***> to=<> proto=ESMTP 
  helo=<******.****.***>

Вы можете отслеживать журнал почты в окне терминала, например, так:

tail -f /var/log/mail.log

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

tail -f /var/log/mail.log | grep Greylisted

или

grep Greylisted /var/log/mail.log

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

В моем случае все получилось с первого раза. Это показывает, что ISPConfig Perfect Server Guide действительно работает.

Подключить почтовый клиент

Использование Thunderbird в качестве почтового клиента. Аналогичным образом работают и другие почтовые клиентские приложения.

ISPConfig делает имя учетной записи адресом электронной почты.

Рисунок 4: Настройки учетной записи Thunderbird

Рисунок 5: Настройки сервера Thunderbird

Безопасность соединения STARTTLS означает, что соединение начинается незащищенным, а затем переключается на зашифрованное, если обе стороны поддерживают шифрование. SSL/TSL означает, что сеанс зашифрован с самого начала. SSL/TSL, вероятно, немного более безопасен, поэтому попробуйте, если ваш клиент работает с ним.

Рисунок 6: Настройки исходящего сервера Thunderbird

Использование SPF

Прочтите о структуре политики отправителей в Википедии. Первоначально SPF расшифровывался как Sender Permitted From, что хорошо помнить, что это означает. Прочитав о SPF, вы можете создать запись самостоятельно, проверить, может ли ваш поставщик услуг имен создавать запись SPF или использовать поисковые системы в Интернете с

SPF wizard

Найдите веб-сайт, который создает для вас запись службы имен SPF. Затем вырежьте и вставьте запись в службу имен. Добавьте запись TXT или, возможно, в какой-либо системе DNS добавьте запись SPF.

Посмотрите, как выглядит SPF в службе имен, например

$ dig taleman.ovh -t TXT | grep spf
taleman.ovh. 3000 IN TXT "v=spf1 mx ~all"

Или вот так:

$ dig +short taleman.ovh TXT
"v=spf1 mx ~all"
"1|www.taleman.ovh"

Использование DKIM

Прочитайте об идентифицированной почте DomainKeys из Википедии. ISPConfig создал для вас ключи DKIM при создании домена электронной почты (если вы не забыли поставить галочку в поле DKIM). Вырежьте и вставьте DNS-запись, которая является открытым ключом к вашей службе имен, в качестве записи TXT. Ваш поставщик услуг имен может предложить инструмент, облегчающий создание записи DKIM. Держите закрытый ключ DKIM в секрете.

Посмотрите, как выглядит DKIM в службе имен, например:

$ host -t txt default._domainkey.taleman.ovh.
default._domainkey.taleman.ovh descriptive text "v=DKIM1;h=sha256;s=*;p=MIIB(I cut long string shorter)0rp" "sTGLXyK(cut shorter)B;t=s;"

Если именно ISPConfig создал ключи DKIM, закрытый ключ копируется в нужное место в настройках amavis.

Существует сайт mail-tester.com, на котором можно проверить работу SPF и DKIM. Перейдите на этот веб-сайт, он дает адрес электронной почты, и вы отправляете туда электронное письмо со своего сервера. Затем подождите минуту и снова проверьте веб-сайт.

Создание сертификатов

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

Существует прекрасное руководство: Защита ISPConfig с помощью бесплатного SSL-сертификата Lets Encrypt.

Следуя этому руководству, я заметил, что созданный веб-сайт показывал веб-страницу Debian по умолчанию, пока я не создал сертификат LE для веб-сайта. Кроме того, панель ISPConfig была шаткой, я полагаю, потому что у нее был самоподписанный сертификат, а теперь этот новый сертификат или вообще нет сертификата. Обновление страниц в браузере решило эту проблему.

Когда сертификаты настроены, введите https-адрес сервера в браузере. Щелчок по значку слева от адресной строки браузера другой кнопкой мыши показывает информацию о сертификате.

Перейдите на вкладку «Система» панели ISPConfig, вкладку «Главная конфигурация интерфейса» и «Почта». Там набор

Use SSL/TLS encrypted connection for SMTP

к SSL.

Дальнейшее тестирование сертификата возможно с помощью инструментов на веб-сайтах, используйте поисковые системы в Интернете с

ssl testing

как поисковые слова. Эти инструменты обычно проверяют веб-сайт, при проверке сертификатов почтового сервера выполните поиск с помощью

ssl testing mail server

Плагины ISPConfig Roundcube

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

Я установил плагины ISPConfig Rouncube с помощью Tutorial ISPConfig 3 Roundcube Plugin на Debian 9. Tutorial точно работал на Debian 10 Buster, за исключением того, что теперь в ispconfig3_account/config/config.inc.php есть еще одна строка:

$config['soap_validate_cert'] = true;

Это значение может оставаться равным true, поскольку сертификат правильно настроен и протестирован в предыдущей главе этого руководства. Однако, если у хоста нет действительного сертификата, измените этот параметр на false.

У меня была одна проблема. Некоторые элементы в разделе «Учетная запись» отображали сообщение об ошибке

An error occurred.
Soap Error: The login is not allowed from <host ip-number>

Я решил эту проблему, отметив удаленный доступ и написав posti.taleman.ovh для этого пользователя rcmail-remote, которого я создал в соответствии с руководством. Похоже, что учебник неправильный в том, что не нужно ставить галочку «Удаленный доступ». Теперь мне кажется, что это необходимо как для односерверных настроек, так и для многосерверной настройки ISPConfig с отдельным почтовым сервером.

Дальнейшее использование

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

Поиск неисправностей

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

Чтение форума показало, что распространенными причинами неработающего почтового сервера являются неправильная настройка имени хоста и имени хоста -f и/или ошибки в файле /etc/postfix/main.cf.

Если вы подозреваете проблемы со службой имен DNS, проверьте проблемы с DNS с помощью ISPConfig -tutorial. Существуют инструменты веб-сайтов, которые проверяют DNS, например intodns.com, dnschecker.com, mxtoolbox.com.

Если электронные письма не получены или не отправлены, эти функции выполняет postfix, и они регистрируются в /var/log/mail.log. Ну действуй

tail -f /var/log/mail.log | grep postfix to see what happens when mail is being received or sent.

Если у вас возникли проблемы с подключением к почтовому клиенту (например, Thunderbird), используйте это, чтобы посмотреть, что произойдет:

tail -f /var/log/mail.log | grep dovecot

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

Sep 23 14:19:34 posti postfix/smtps/smtpd[10260]: A9F2880C76:
client=dsl-tkubng21-58c1ce-191.dhcp.inet.fi[99.99.99.99],
sasl_method=PLAIN, 

Идентификатор этого электронного письма — A9F2880C76. Вы можете найти записи журнала для этого электронного письма, используя

# grep A9F2880C76 /var/log/mail.log

Команда mailq показывает электронные письма, которые находятся в отложенной очереди postfix. То есть те письма, которые еще не доставлены. Это нормально иметь там несколько последних записей, электронные письма не всегда могут быть доставлены немедленно. Вы можете увидеть содержимое этих писем, используя идентификатор очереди, например:

# postcat /var/spool/postfix/deferred/A/A9F2880C76

У Howtoforge есть форумы ISPConfig, спрашивайте совета там.