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

Виртуальные пользователи и домены с Postfix, Courier и MySQL (Debian Etch)

Виртуальные пользователи и домены с Postfix, Courier и MySQL (Debian Etch)

Версия 1.0
Автор: Фалько Тимме

Этот учебник является объектом авторского права (c) 2007 года Фалько Тимме. Он основан на учебнике Кристофа Хааса, который вы можете найти по адресу http://workaround.org. Вы можете свободно использовать этот учебник в соответствии с лицензией Creative Commons 2.5 или любой более поздней версией.

Этот документ описывает, как установить почтовый сервер на основе Postfix, который основан на виртуальных пользователях и доменах, т.е. пользователях и доменах, которые находятся в базе данных MySQL. Я также продемонстрирую установку и настройку Courier (Courier-POP3, Courier-IMAP), чтобы Courier мог аутентифицироваться против той же базы данных MySQL, которую использует Postfix.

Получившийся сервер Postfix способен на SMTP-AUTH и TLS и квоты (квота не встроена в Postfix по умолчанию, я покажу, как правильно патчить ваш Postfix). Пароли хранятся в зашифрованном виде в базе данных (большинство документов, которые я нашел, имели дело с паролями в открытом виде, что является риском безопасности). В дополнение к этому, этот учебник охватывает установку Amavisd, SpamAssassin и ClamAV, чтобы электронные письма сканировались на наличие спама и вирусов.

Преимущество такой “виртуальной” настройки (виртуальные пользователи и домены в базе данных MySQL) заключается в том, что она гораздо более производительна, чем настройка, основанная на “реальных” системных пользователях. С этой виртуальной настройкой ваш почтовый сервер может обрабатывать тысячи доменов и пользователей. Кроме того, администрировать ее проще, потому что вам нужно иметь дело только с базой данных MySQL, когда вы добавляете новых пользователей/домены или редактируете существующие. Больше никаких команд postmap для создания db файлов, больше никакой перезагрузки Postfix и т.д. Для администрирования базы данных MySQL вы можете использовать веб-инструменты, такие как phpMyAdmin, которые также будут установлены в этом руководстве. Третье преимущество заключается в том, что у пользователей есть адрес электронной почты в качестве имени пользователя (вместо имени пользователя + адреса электронной почты), что проще для понимания и запоминания.

Это руководство предназначено как практическое руководство; оно не охватывает теоретические основы. Они рассматриваются во многих других документах в сети.

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

1 Предварительная заметка

Этот учебник основан на Debian Etch, поэтому вам следует установить базовую установку Debian Etch, прежде чем продолжить с этим учебником. Система должна иметь статический IP-адрес. Я использую 192.168.0.100 в этом учебнике и server1.example.com в качестве имени хоста.

2 Установка Postfix, Courier, Saslauthd, MySQL, phpMyAdmin

Чтобы установить Postfix, Courier, Saslauthd, MySQL и phpMyAdmin, мы просто выполняем

apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl postfix-tls libsasl2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl phpmyadmin apache2 libapache2-mod-php5 php5 php5-mysql

Вам будет задано несколько вопросов:

Создать каталоги для веб-администрирования? <– Нет
Общий тип конфигурации? <– Интернет-сайт
Имя почты? <– server1.example.com
Требуется SSL-сертификат? <– Ок

3 Применение патча квоты к Postfix

Нам нужно получить исходные коды Postfix, патчить их с помощью патча квоты, собрать новые пакеты Postfix.deb и установить эти пакеты .deb:

apt-get install build-essential dpkg-dev fakeroot debhelper libgdbm-dev libldap2-dev libpcre3-dev libssl-dev libsasl2-dev postgresql-dev po-debconf dpatch libdb4.3-dev libmysqlclient15-dev lsb-release libcdb-dev
cd /usr/src  
 apt-get source postfix

(Убедитесь, что вы используете правильную версию Postfix в следующих командах. У меня установлена версия Postfix 2.3.8. Вы можете узнать вашу версию Postfix, выполнив

postconf -d | grep mail_version

Вывод должен выглядеть так:

server1:~# postconf -d | grep mail_version  
 mail_version = 2.3.8  
 milter_macro_v = $mail_name $mail_version

)

wget http://vda.sourceforge.net/VDA/postfix-2.3.8-vda.patch.gz  
 gunzip postfix-2.3.8-vda.patch.gz  
 cd postfix-2.3.8  
 patch -p1 < ../postfix-2.3.8-vda.patch  
 dpkg-buildpackage

Вы можете увидеть предупреждение, подобное этому, в конце команды dpkg-buildpackage:

(WARNING: Не удалось подписать .dsc и .changes файл)

Вы можете игнорировать это сообщение.

Чтобы установить наш новый пакет Postfix, мы выполняем

cd ..  
 dpkg -i postfix_2.3.8-2_i386.deb  
 dpkg -i postfix-mysql_2.3.8-2_i386.deb
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.