Sir Serge. Технические статьи.

Начальная страница

Гостевая

Технические статьи


Литературная часть сайта

Рейтинг@Mail.ru




181338

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
Сообщения с 1 по 3

Pahanivo ОС:Windows   09.12.2005 12:50:05

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

Пиши есчо )


Николай ОС:Vista   21.04.2007 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 ОС:Windows XP   21.04.2007 21:22:45

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

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

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

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


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

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

Число показов этой страницы: 534

Copyright © 2003-2010 by Sir Serge