Почтовый сервер · 12 min read · Sep 25, 2025

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

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

Что нужно

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

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

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

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

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

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

Записи службы DNS

Почтовому серверу нужно полное доменное имя (FQDN, Fully Qualified Domain Name) (узнайте об этом из Википедии: FQDN). В этом примере доменное имя - taleman.ovh. Чтобы показать, что имя хоста почтового сервера не обязательно должно быть mail, мы используем posti в качестве имени хоста. Таким образом, FQDN - 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 имеет адрес 188.165.143.5  
 taleman.ovh почта обрабатывается 10 posti.taleman.ovh.

Вышеуказанный результат показывает, что доменное имя действительно имеет связанный IP-номер (который в этом случае отличается от IP-номера почтового сервера, но это не влияет на электронные письма), и есть MX-запись, указывающая на posti.taleman.ovh. Часть “почта обрабатывается” происходит из 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   
;; Время запроса: 56 мс

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

$ host 178.33.154.66  
 66.154.33.178.in-addr.arpa указатель доменного имени posti.taleman.ovh.

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

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

Установка ОС

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

https://www.howtoforge.com/tutorial/debian-10-buster-minimal-server/

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

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

root@posti:/tmp# cat /etc/debian_version 10.0
root@posti:~# locale  
 LANG=en_GB.UTF-8  
 LANGUAGE=en_GB:en  
 LC_CTYPE="en_GB.UTF-8"  
 LC_NUMERIC="en_GB.UTF-8"  
 LC_TIME="en_GB.UTF-8"  
 LC_COLLATE="en_GB.UTF-8"  
 LC_MONETARY="en_GB.UTF-8"  
 LC_MESSAGES="en_GB.UTF-8"  
 LC_PAPER="en_GB.UTF-8"  
 LC_NAME="en_GB.UTF-8"  
 LC_ADDRESS="en_GB.UTF-8"  
 LC_TELEPHONE="en_GB.UTF-8"  
 LC_MEASUREMENT="en_GB.UTF-8"  
 LC_IDENTIFICATION="en_GB.UTF-8"  
 LC_ALL=  
 root@posti:~# cat /etc/timezone  
 Европа/Хельсинки

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

root@posti:~# hostname posti  
 root@posti:~# hostname -f posti.taleman.ovh  
 root@posti:~#

Установка ISPConfig

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

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

root@posti:/tmp# free -h

Результат команды Free

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

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

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

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

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

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

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

для генерации 32-символьного секретного ключа blowfish.

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

Создание почтового домена и почтовых ящиков

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

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

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

Создание почтового домена в ISPConfig

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

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

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

Вход в RoundCube

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

Отправка электронной почты в 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  
  <[email protected]>: Recipient address rejected: Greylisted,  
  see http://postgrey.schweikert.ch/help/taleman.ovh.html;  
  from=<**@*.*> to=<[email protected]> proto=ESMTP  
  helo=<****..*>

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

tail -f /var/log/mail.log

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

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

или

grep Greylisted /var/log/mail.log

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

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

Подключение почтового клиента

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

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

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

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

Настройки сервера Thunderbird

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

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

Исходящий почтовый сервер Thunderbird

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

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

Узнайте о Sender Policy Framework из Википедии. Изначально 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 Identified Mail из Википедии. ISPConfig создал ключи DKIM для вас при создании почтового домена (если вы не забыли отметить флажок DKIM). Скопируйте и вставьте DNS-запись, которая является публичным ключом, в вашу службу имен в качестве TXT-записи. Ваш провайдер службы имен может предложить инструмент, который упростит создание записи DKIM. Держите приватный ключ DKIM в секрете.

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

$ host -t txt default._domainkey.taleman.ovh.  
 default._domainkey.taleman.ovh описательный текст "v=DKIM1;h=sha256;s=*;p=MIIB(Я укоротил длинную строку)0rp" "sTGLXyK(укоротил)B;t=s;"

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

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

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

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

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

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

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

Перейдите на вкладку системы панели ISPConfig, интерфейс основной конфигурации и вкладку почты. Там установите

Использовать зашифрованное соединение SSL/TLS для SMTP

на SSL.

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

ssl testing

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

ssl testing mail server

Плагины Roundcube ISPConfig

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

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

$config['soap_validate_cert'] = true;

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

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

Произошла ошибка.  
Soap Error: Вход не разрешен с 

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

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

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

Устранение неполадок

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

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

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

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

tail -f /var/log/mail.log | grep postfix, чтобы увидеть, что происходит, когда почта принимается или отправляется.

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

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

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

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, [email protected]

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

# grep A9F2880C76 /var/log/mail.log

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

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

Howtoforge имеет форумы ISPConfig, задавайте вопросы там.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.