Почтовый сервер · 2 min read · Oct 05, 2025
Полное решение почтового сервера с виртуальными доменами и пользователями (Debian Etch, Postfix, Mysql, Dovecot, DSpam, ClamAV, Postgrey, RBL) - Страница 2
III. Установка и настройка MySQL сервера (+схема PostFixAdmin)
Сначала нам нужно установить сервер MySQL на sql-1.internal.example.com. Чтобы упростить задачу, мы также установим клиент командной строки MySQL. Это можно сделать, введя следующее в командной строке:
# apt-get install mysql-server mysql-clientПосле того как apt-get выполнит установку, вам нужно будет заблокировать доступ root к базе данных mysql. Это делается с помощью инструмента mysqladmin.
# mysqladmin -u root password "mypassword"ПРИМЕЧАНИЕ: Измените mypassword на ваш собственный надежный пароль!!!
Теперь мы создадим базу данных и пользователей для виртуальных пользователей и доменов. Важно отметить, что Postfix (и Dovecot) требуют только доступа SELECT к этой базе данных. PostfixAdmin потребует SELECT, UPDATE и INSERT.
# mysql -uroot -p
Enter password:
mysql> CREATE DATABASE virtual_mail;
mysql> GRANT SELECT ON virtual_mail.* TO 'vmail_user'@'mx-1.example.com' IDENTIFIED BY 'vmail_user_password';
mysql> GRANT SELECT,UPDATE,INSERT ON virtual_mail.* TO 'vmail_admin'@'mx-1.example.com' IDENTIFIED BY 'vmail_admin_password';
mysql> GRANT SELECT ON virtual_mail.* TO 'vmail_user'@'mx-2.example.com' IDENTIFIED BY 'vmail_user_password';
mysql> GRANT SELECT,UPDATE,INSERT ON virtual_mail.* TO 'vmail_admin'@'mx-2.example.com' IDENTIFIED BY 'vmail_admin_password';
mysql> quitПРИМЕЧАНИЕ: Измените vmail_user_password и vmail_admin_password на ваши собственные надежные пароли!!!
Теперь нам нужно скачать Postfix Admin. Хотя этот инструмент не является обязательным для нашей конфигурации, он очень полезен, и схема, которую он использует, хорошо продумана. После того как вы скачали дистрибутив Postfix Admin, распакуйте его следующим образом:
# tar xfvz postfixadmin-2.1.0.tgzВнутри полученной директории откройте postfixadmin-2.1.0/DATABASE_MYSQL.TXT в вашем любимом текстовом редакторе. Удалите все строки в разделе “Postfix / MySQL”. Эти строки создают начальную базу данных, которую мы уже создали. Для Postfix Admin 2.1.0 это строки 26-39.
Когда закончите, загрузите файл в вашу существующую таблицу MySQL с помощью следующей команды:
# mysql -uroot -p virtual_mail < postfixadmin-2.1.0/DATABASE_MYSQL.TXTПРИМЕЧАНИЕ: Если вы получите ошибку “Доступ запрещен для пользователя ‘mail’@’localhost’ к базе данных ‘mysql’”, значит, вы неправильно закомментировали строки. Если после ввода пароля вы не получите сообщение, значит, все прошло хорошо.
IV. Сервер общего доступа к файлам NFS
Многим серверам потребуется доступ к папкам Maildir наших пользователей, поэтому, чтобы упростить задачу, мы установим их на NFS-том. Одним из преимуществ Maildir является то, что он совместим с NFS. Формат почтового ящика, с другой стороны, не будет хорошим. К счастью, настройка NFS в Debian так же проста, как и настройка любой другой службы.
Начнем с установки службы на files-1.internal.example.com:
# apt-get install nfs-kernel-server nfs-common portmapЭкспорт NFS (общие ресурсы) контролируется файлом /etc/exports. Каждая строка начинается с абсолютного локального пути к директории, которая будет экспортирована, за которым следует список разрешенных клиентов, разделенный пробелами. NFS может быть чрезвычайно мощным, но я не буду вдаваться в полные детали здесь. Для наших целей подойдет следующее:
/etc/exports:
/vmail mx-1.internal.example.com(ro, insecure) mx-2.internal.example.com(ro, insecure) postman.internal.example.com(rw, no_root_squash) secure-mail.internal.example.com(rw, no_root_squash)Если вы внесете изменения в /etc/exports на работающем NFS-сервере, вы можете сделать изменения эффективными, выполнив команду:
# exportfs -aНам понадобится реальный пользователь для обработки всех виртуальных сопоставлений в нашей настройке. Для этого решения мы будем использовать идентификатор пользователя 150. Этот идентификатор пользователя предназначен для специально созданного пользователя “Виртуальная почта”. Он использует стандартную группу “mail” с идентификатором группы по умолчанию (Debian) 8. Вы можете создать пользователя и директорию следующим образом:
# useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c "Виртуальный почтовый ящик" vmail
# mkdir /vmail
# chmod 770 /vmail/
# chown vmail:mail /vmail/ ПРИМЕЧАНИЕ: Этот пользователь должен быть создан на всех серверах, которые будут получать доступ к этой общей папке (mx-1, mx-2, postman, files-1, secure-mail). Если пользователь не существует, вы можете получить ошибки доступа к файлам. Хотя NIS можно использовать для создания одного хоста для этого пользователя, это выходит за рамки данного документа.
Get new posts in your inbox
No spam. Unsubscribe anytime.