Почтовый сервер · 6 min read · Nov 13, 2025

Как настроить почтовый сервер ISP с виртуальными пользователями/доменами на Centos 5.0 с использованием Postfix, Dovecot, MySQL, phpMyAdmin, TLS/SSL - Страница 3

Тестирование и проверка вашей конфигурации:

Проверьте поддержку MySQL в Postfix

postconf -m
btree  
cidr  
environ  
hash  
ldap  
mysql  
is  
proxy  
regexp  
static  
unix

Если MySQL не отображается, проверьте вашу установку и перекомпилируйте Postfix снова.

Проверьте поддержку SMTP AUTH в Postfix

telnet mail.example.co.tz 25

(S: = сервер, C: = клиент):

S: 220 mail.example.co.tz ESMTP Postfix  
C: EHLO example.co.tz  
S: 250-mail.example.co.tz  
S: 250-PIPELINING  
S: 250-SIZE 10240000  
S: 250-VRFY  
S: 250-ETRN  
S: 250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI  
S: 250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI  
S: 250-XVERP  
S: 250 8BITMIME  
C: quit

Обратите внимание на две новые строки?

250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI  
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI

Это строки, которые Postfix выдает, когда предлагает использовать SMTP AUTH.

Проверьте поддержку TLS в Postfix

telnet mail.example.co.tz 25

Этот раздел применим как для NON-RPM, так и для RPM установки.

В нашем HOWTO демон smtpd находится в /usr/libexec/postfix/. Поэтому мы выполняем следующее в командной строке:

ldd /usr/libexec/postfix/smtpd
libsasl.so.7 => /usr/lib/libsasl.so.7 (0x4001e000)  
libssl.so.2 => /lib/libssl.so.2 (0x4002a000)  
libcrypto.so.2 => /lib/libcrypto.so.2 (0x40057000)  
libdb-3.2.so => /lib/libdb-3.2.so (0x4011a000)  
libnsl.so.1 => /lib/libnsl.so.1 (0x401c1000)  
libresolv.so.2 => /lib/libresolv.so.2 (0x401d7000)  
libgdbm.so.2 => /usr/lib/libgdbm.so.2 (0x401ea000)  
libc.so.6 => /lib/i686/libc.so.6 (0x401f1000)  
libdl.so.2 => /lib/libdl.so.2 (0x4032c000)  
libcrypt.so.1 => /lib/libcrypt.so.1 (0x40330000)  
libpam.so.0 => /lib/libpam.so.0 (0x4035d000)  
libgssapi_krb5.so.2 => /usr/kerberos/lib/libgssapi_krb5.so.2 (0x40365000)  
libkrb5.so.3 => /usr/kerberos/lib/libkrb5.so.3 (0x40378000)  
libk5crypto.so.3 => /usr/kerberos/lib/libk5crypto.so.3 (0x403d1000)  
libcom_err.so.3 => /usr/kerberos/lib/libcom_err.so.3 (0x403e2000)  
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Демон smtpd поддерживает TLS. Если вы не можете найти libssl в выводе, вы либо собрали Postfix со статическими библиотеками, либо сборка Postfix с TLS не удалась. В этом случае вам придется перенастроить ваш исходный код Postfix, перекомпилировать или пересобрать его, сделать резервную копию данных в /etc/postfix/ и переустановить вновь скомпилированные бинарные файлы Postfix.

Далее мы проверим, можем ли мы инициировать TLS-сессию. Мы подключаемся к серверу и проверяем, появляется ли строка STARTTLS, когда Postfix рекламирует свои возможности. Затем мы просто вводим STARTTLS и ждем, пока Postfix ответит, что он готов начать TLS. Вот как должна выглядеть наша успешная сессия telnet:

telnet mail.example.co.tz 25
S: 220 mail.example.co.tz ESMTP Postfix (1.1.5)  
C: EHLO example.co.tz  
S: 250-mail.example.co.tz  
S: 250-PIPELINING  
S: 250-SIZE 10240000  
S: 250-VRFY  
S: 250-ETRN  
S: 250-STARTTLS - -Поддержка TLS  
S: 250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI  
S: 250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5 GSSAPI  
S: 250-XVERP  
S: 250 8BITMIME  
C: STARTTLS  
S: 220 Готов начать TLS

Отправка тестового письма с локальной машины

Сначала мы проверим, можем ли мы отправить письмо на localhost пользователю test. Это самый простой тестовый случай, который у нас есть. Если мы добьемся успеха, мы перейдем к отправке писем на test из почтового клиента, который не работает на нашем сервере Postfix.

mail [email protected]
Subject: Тест с localhost  
Тест #1  
.  
Cc:  
[[email protected]]#

Проверьте доставку тестового письма на локальной машине

Подключитесь к pop3, чтобы проверить, доставил ли Postfix ваше письмо:

telnet example.co.tz pop3
Trying 192.168.49.81...  
Connected to mail.example.co.tz (192.168.49.81).  
Escape character is '^]'.  
+OK Dovecot готов.  
user [email protected]  
+OK  
pass mwamaLis  
+OK Вход выполнен.  
list  
+OK 1 сообщение:  
1 429  
.  
retr 1  
+OK 429 октетов  
Return-Path: <[email protected]>  
X-Original-To: [email protected]  
Delivered-To: [email protected]  
Received: by mail.example.co.tz (Postfix, from userid 500)  
id 74408C0AC6; Thu, 19 Jun 2008 10:47:52 +0300 (EAT)  
To: [email protected]  
Subject: Тест с локального  
Message-Id: <[email protected]>  
Date: Thu, 19 Jun 2008 10:47:52 +0300 (EAT)  
From: [email protected] (Пользователь)
Тест #1  
.  
]^  
[[email protected]]$

Смотрите Приложение B для дальнейших тестовых случаев.

Наконец, запустите браузер и перейдите на http://mail.example.co.tz, введите имя пользователя и пароль, а затем нажмите Войти. И наслаждайтесь работой с вашим почтовым сервером.

Установка и настройка phpMyAdmin:

PhpMyAdmin - это утилита, написанная на PHP, предназначенная для помощи в администрировании MySQL-сервера, как локально, так и через WWW. Она поддерживается благодаря упорному труду и преданности людей из проекта phpMyAdmin и в настоящее время доступна на 47 различных языках.

Установка:

Скачайте и распакуйте пакет phpMyAdmin. Давайте переместим файл туда, где он нам нужен, и изменим имя на что-то более простое;

mv phpMyAdmin-2.11.6-english /var/www/html/phpadmin

Перейдите в корневую директорию phpadmin:

cd phpadmin/

Теперь нам нужно переименовать и отредактировать файл config.sample.inc.php, чтобы он работал с вашей настройкой.

cp -p config.sample.inc.php config.inc.php

Используя vi или любой другой ваш любимый редактор, откройте config.inc.php, найдите следующие строки и отредактируйте их в соответствии с вашей настройкой;

vi config.inc.php

Отредактируйте следующие строки:

Введите эту строку с паролем, например:

$cfg['blowfish_secret'] = 'bongo';

$cfg['Servers'][$i]['controluser'] = 'pma'; --Имя пользователя MySQL
$cfg['Servers'][$i]['controlpass'] = 'pmapass'; --Пароль MySQL

Сохраните и выйдите из файла.

Создайте виртуальный алиас в /etc/httpd/conf/httpd.conf, добавив следующие строки.

vi /etc/httpd/conf/httpd.conf
Alias /phpadmin /var/www/html/phpadmin

  Order allow,deny
  Allow from all

После этого запустите браузер и введите http://127.0.0.1/phpadmin в адресной строке. Введите имя пользователя и пароль и начните использовать его. Наслаждайтесь использованием phpMyAdmin для создания пользователей, доменов и алиасов.

Приложение A:

Опции компилятора:

Опции, которые Postfix нуждается в своем Makefile, определяются в переменных окружения, таких как CCARGS.
CCARGS: Предоставляет дополнительные аргументы компилятору. Если ваш компилятор позволяет специальные опции или ваши вспомогательные файлы не находятся в стандартных директориях, укажите эти опции с помощью этой переменной. Стандартное местоположение для заголовочных файлов - это директория /usr/include. Если ваши заголовочные файлы находятся где-то еще, вам нужно сообщить компилятору, где их искать. Опция компилятора -I используется для указания дополнительных директорий, где компилятор может найти заголовочные файлы.

CCARGS='-I/usr/local/include/'

Используйте дополнительные опции -I для каждой дополнительной директории, которую компилятор должен искать.

Postfix использует условную компиляцию во время своей сборки, в зависимости от того, какие библиотеки или другие ресурсы доступны на вашей системе. Он определяет определенные макросы на основе того, что он обнаруживает о вашей системе или на основе выбранных вами опций. Опция -D предоставляет способ определения макросов в момент компиляции Postfix. Дополнительные пакеты для Postfix требуют, чтобы вы определили определенный макрос, чтобы сообщить Postfix включить его при сборке.

Например, если вы хотите включить поддержку MySQL, вы определяете макрос HAS_MYSQL:

CCARGS='-DHAS_MYSQL'

Опции компоновщика устанавливаются в переменной AUXLIBS. После того, как Postfix скомпилировал объектные файлы, он связывает их вместе с необходимыми библиотеками в исполняемые файлы. Стандартное местоположение для системных библиотек - это /usr/lib. Чтобы сообщить компоновщику искать дополнительные директории для библиотек, используйте опцию -L:

AUXLIBS='-L/usr/local/lib'

Вы также должны сообщить компоновщику, какие конкретные библиотеки связывать. Опция -l используется для указания конкретных библиотек. Файлы библиотек должны находиться в стандартном местоположении или в директории, указанной с помощью опции -L. Файлы архивов библиотек называются начиная с lib, за которым следует их имя, за которым следует расширение, которое обычно .a для статических библиотек и .so или .sl для общих объектов или общих библиотек. Когда вы используете опцию -l, вы опускаете начальную часть lib и расширение файла библиотеки. Чтобы связать с библиотекой клиента MySQL, например, где файл библиотеки называется libmysqlclient.a, опция -l указывается следующим образом:

AUXLIBS='-L/usr/local/lib -lmysqlclient

Приложение B

Доставка почты удаленному пользователю (Ретрансляция)

Мы подключаемся к mail.example.co.tz 25. С удаленной машины подключитесь к 192.168.49.81 на порту 25. При успешном подключении Postfix появится и поприветствует нас своим баннером smtpd. (Если вы не можете подключиться, проверьте правила таблиц вашего брандмауэра или работает ли Postfix.) После подключения выполните следующие команды.

(S: = сервер, C: = клиент):

S: 220 mail.example.co.tz ESMTP Postfix
C: EHLO example.co.tz
S: 250-mail.example.co.tz
S: 250-PIPELINING
S: 250-SIZE 10240000
S: 250-VRFY
S: 250-ETRN
S: 250-XVERP
S: 250 8BITMIME
C: mail from:< [email protected] >
S: 250 Ok
C: rcpt to:< [email protected] >
S: 250 Ok
C: data
S: 354 Завершите данные с .
C: Testmail ретранслирует почту от [email protected] к [email protected]
C: Test #3
C: .
S: 250 Ok: в очереди как 84BA64078A
C: quit
S: 221 Пока

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.