Сэр Серж aka Sir Serge (Сергей Лебедев) - official site
Статьи и заметкиРасчетыСтихиПрозаО сайте

Vpopmail и виртуальные пользователи в qmail

Первоначально рассказ о пакете vpopmail был представлен в конце статьи "Дополнительные фишки qmail", но позже я решил вынести его отдельной темой, дополнительно избавив от сумбура и неточностей. То есть - в данной статье - реальный минимум для установки vpopmail в связке с qmail

Предполагается, что qmail установлен и работает, как описано в статье.

Добавление vpopmai для запуска через tcpserver не представляет особой сложности и рассматриваться здесь не будет. Установка описана для версии пакета 5.4.9, для более поздних могут быть отличия, для более ранних отличия есть, но они несущественны.

Для чего же нужен vpopmail? Этот пакет решает в первую очередь проблемы с тем, что для работы стандартного qmail необходимо каждому почтовому ящику завести отдельного системного пользователя. Во многих системах имена таких пользователей, например, не могут начинаться с цифры, содержать внутри точку, быть переменного регистра. Если забыть ликвидировать shell на такого пользователя, то по данному логину возможен вход посторонних на почтовый сервер, а это в большинстве случаев неприемлемо ни при каких обстоятельствах. Далее, vpopmail позволяет использовать шифрованные пароли и сильно облегчает администрирование системы; в частности, заведение нового виртуального домена для приёма почты выполняется всего одной командой; весь список пользователей с паролями можно ввести через пакетный файл, что в случае работы через системных пользователей возможно только на крайне ущербных системах.

Я не буду объяснять, что такое многодоменный почтовый сервер, эта тема достаточно обсосана в основной статье, посвященной установке qmail. Хочу только сказать, что с точки зрения доставки почты виртуальным пользователям, vpopmail не вносит ничего нового - для этого используются стандартные стредства qmail без каких-либо изменений, однако утилиты администрирования от vpopmail самостоятельно управляют конфигурационными файлами qmail, внося в них изменения и при необходимости перезапуская соответствующие сервисы. То есть, доставку почты на сервер по виртуальным почтовым ящикам можно организовать и без vpopmail. Этот пакет занимается оконечной доставкой почты клиентам по pop3.

Для установки vpopmail понадобится уже установленный и отконфигурированный для реальной работы сервер qmail. Сервисы pop3 могут отсутствовать.

Распаковываем дистрибутив vpopmail.

tar -zxvf vpopmail-5.4.9.tar.gz
cd vpopmail-5.4.9

Делать это можно в любой каталог; ставить и компилировать исключительно из под root.

Добавляем системного пользователя и группу, под которым будут работать все программы пакета vpopmail:

groupadd -g 89 vchkpw
useradd -g vchkpw -u 89 vpopmail -d /home/vpopmail
mkdip -p /home/vpopmail/etc

Что касается ID группы 89... Почему-то это число кочует из мануала в мануал... Хотя привязанности vpopmail к номеру группы формально нет - ID формально может быть любым, главное, чтобы пользователь vpopmail являлся членом этой группы и его домашний каталог располагался в /home/vpopmail. Именно в этот каталог будут проинсталлированы все программы пакета, именно в этом каталоге будет храниться почта и все настройки vpopmail. Если у вас еще неполностью деинсталлирован postfix, самое время им заняться, потому что чаще всего id 89 уже имеет пользовательская группа postfix. :)

Сконфигурируем qmail:

./configure --prefix=/home/vpopmail --enable-logging=y --enable-auth-logging=y

В данном случае --prefix указывает каталог, в который ставится vpopmail, --enable-logging и --enable-auth-logging указывают демону qmail записывать все попытки авторизации и доставки почты между виртуальными каталогами в maillog. Для тех, кто одержим идеей запустить это из под tcpserver, интерес представляют ключи конфигурации --enable-tcpserver-file --enable-relay-clear-minutes и --enable-roaming-users. Любителям всё привязывать к mysql в данном случае пользоваться таковой возможностью не рекомендую, если только количество почтовых ящиков пользователей вашего сервера не исчисляется тысячами - ни к чему зависеть от промежуточного сервиса, который к тому же не слишком стабилен в некоторых случаях.

Далее следуют стандартные команды сборки:

make
make install-strip

Всё. Процесс установки как таковой на этом заканчивается.

Создаем для xinetd файл старта сервиса pop3. В нём должны быть следующие строки:

service pop3
{
    disable=no
    socket_type=stream
    protocol=tcp
    wait=no
    user=vpopmail
    server=/var/qmail/bin/qmail-popup
    log_on_success=HOST
    log_on_failure=HOST
    server_args=имя_нашего_домена /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir
}   

Обращаю ваше внимание на пользователя, от которого запускается сервис. Пользователя root туда ставить не надо!

Копируем файл pop3 в /etc/xinet.d/ и перезапускаем xinetd:

/etc/init.d/xinetd restart

Теперь можно заводить виртуальные домены и, собственно, пользователей виртуальных доменов:

/home/vpopmail/bin/vadddomain имя_виртуального_домена

После чего вас попросят ввести пароль для пользователя postmaster@имя_виртуального_домена. Этот пользователь является обязательным; именно ему будет сыпаться отбитая почта и сообщения об ошибках работы почтовой системы.

Остальные пользорватели заводятся командой:

/home/vpopmail/bin/vadduser имя@имя_домена пароль

Все команды управления пользователями содержатся в директории /home/vpopmail/bin/. Из постоянно применяемых можно отметить vdeluser - удаление виртуального пользователя, valias - заведение пользователя, вся почта, приходящая которому, будет отсылаться на указанный почтовый адрес; не обязательно нашего домена. vdeldomain, соответственно, удалит почтовый домен полностью.

Настроенный таким образом vpopmail требует идентификации пользователей по полному почтовому имени, включая "@" и имя домена. Чтобы была возможность идентифицировать пользователей, не вводя этот хвостик, необходимо создать файлик /home/vpopmail/etc/defaultdomain и поместить туда имя домена по умолчанию, которое будет автоматически добавляться к именам c отсутствующим знаком "@".

Замеченные на первый взгляд ерундовины.

Если вы внимательно просмотрите каталог /home/vpopmail/bin, то среди прочего обнаружите команду vsetuserquota. Казалось бы, хороший признак - специальной командой установить квоты использования дискового пространства. Но, проверка осуществляется только после фактического приёма нового письма qmail. Не стоит говорить о том, что такая акция бесполезна абсолютно: результатом будет следующее: не помещающееся в почтовый ящие письмо будет отослано тому, кто его написал, с полным вложением объёма (если, конечно, вы не укоротили принудительно bounce messages в своей системе),

в случае повторного возврата весь этот объем опять вернется к вам. Соответственно, получается излишняя генерация бесполезного трафика. Ну, и вся та же проблема спама стандартного qmail сообщениями bounce - возвратом наружу с несуществующих адресов домена.

Не забудьте закрыть файерволом 110 порт адресных сетей, абонентам которых ни к чему получать почту вашего домена!

Sir Serge,

6.07.2005,

Barnaul, RF.


Всего комментариев: 3

Pahanivo OC: Windows XP   2005-12-09 12:50:05


Молодец. Я долго втыкал из хау-ту типа "установка qmail+vpopmail+etc... " нафиг нужен vpopmail.
Тяперича понял наконец.

Пиши есчо )


Николай OC: Vista   2007-04-21 18:15:52


Ситуация такая:
Существовало два домена - ntrlab.ru (базовый) и ntrlab.com (виртуальный, с полным соответствием юзеров базовому).
Возникла необходимость добавить еще один домен sinergo.ru с соответствием юзеров. Сделал ./vaddaliasdomain sinergo.ru ntrlab.ru. Виртуальный домен создался, конечно. Если делаю ./vuserinfo user@sinergo.ru выдается информация, как и должно быть.
НО! vpopmail не выдает пользователей этого домена при создании файла recipients в каталоге users qmail при помощи команды qmail-vpopmail2recipients. В результате письма от посторонних серверов (которым запрещен релай) на адреса sinergo.ru отвергаются на основании того, что у юзеров "нет почтового ящика ". В остальных управляющих файлах qmail нужная информация прописана.
Вопрос - как исправить ситуацию?


Sir Serge OC: Windows XP   2007-04-21 21:22:45


Не мудрствуя лукаво, есть путь некрасивый, но работоспособный :) это:

1. Завести обычный виртуальный домен (не алиас) с пользователями в нужном перечне. В vpopmail, благо есть возможность их сгенерировать по списку.
2. Для каждого пользователя этого домена в файлике .qmail прописать прямую пересылку на адрес другого домена. Всё.

Путь более красивый, но требующий большего приложения усилий:

vpopmail сама по себе не управляет получением почты. Все изменения вносятся в стандартные конфигурационные файлы qmail. Поэтому, смотрим в них, что там нагенерировано и при необходимости - корректируем. В частности, алиас домена можно было повернуть, не пользуясь вообще средствами vpopmail и не создавая для этого виртуального домена. Ну и... в качестве варианта, почему сделанное всё-таки не работает - проверьте собственника каталогов созданного, но неработающего домена и права доступа на эти каталоги.



Вы можете добавить свои комментарии.

Поскольку у нас тут абсолютная демократия, то комментарий появится на сайте только после того, как он будет одобрен администрацией. Оперативности, однако, не обещаем.

Прошу соблюдать относительную корректность в высказываниях. Заявления типа "Пошел на...", посты, написанные в олбанской лексике и психоанализ личности автора и участников обсуждения в свет не выйдут. Также будут блокированы сообщения, не имеющие никакого отношения к заявленной тематике. Если вы не согласны с приведенным текстом - выскажите своё мнение, но обосновывайте его. Помните, что свою позицию доказываете Вы не мне, а другим читателям. Всячески приветствуются возможные технические поправки и исправления неточностей. Для возможности внесения комментариев в браузере должна быть включена поддержка JavaScript. Реклама и ссылки на сайты, не относящиеся к делу, являются прямым основанием блокировки. Поля "E-mail" и "WWW" обязательными для заполнения не являются, поле E-Mail не публикуется. Если хотите просто что-то написать автору статьи, без публикации на сайте - воспользуйтесь специальной формой под пунктом меню "О сайте". Администрация оставляет за собой право публиковать или не публиковать адреса, введенные в поле www, а также при необходимости редактировать текст вашего сообщения. Ответы на ваши сообщения по введенному вами E-mail автоматически сайтом не высылаются. Да, теги PHPBB и HTML не действуют, так что не старайтесь их вводить.

Copyright © 2003-2018 by Sir Serge