VMailMgr HOWTO
 Bruce Guenter <[email protected]>, Dan Kuykendall <dan@kuyk�
 endall.org>
 v1.1, 23 April 2000

 This document explains how to setup VMailMgr support pop3 virtual
 domain   services in conjunction with Qmail.
 ______________________________________________________________________

 Table of Contents


 1. Introduction

    1.1 What is VMailMgr and why should I use it?
    1.2 New versions
    1.3 Comments
    1.4 History
    1.5 Version History
    1.6 Copyrights and Trademarks
    1.7 Acknowledgements and Thanks

 2. Installation

    2.1 Get the files   Visit the VMailMgr website
    2.2 Install with RPMS
       2.2.1 Compiling SRC.RPM's
       2.2.2 Installing RPM's
    2.3 Install with source

 3. Setup

    3.1 Setting Up a Virtual Domain
    3.2 Using one IP address for mutiple domains
       3.2.1 Logging in as a virtual user?
    3.3 Catch all misdirected mail?
    3.4 Setup VMailMgr IMAP support?


 ______________________________________________________________________

 1.  Introduction

 VMailMgr (short for Virtual MAIL ManaGeR) is a package of programs
 designed to manage multiple domains of mail addresses and mailboxes on
 a single host. It co-operates with qmail for mail delivery and program
 control.

 1.1.  What is VMailMgr and why should I use it?

 VMailMgr is:

 A series of utilities for managing virtual domains which include a
 password checking interface for qmail which replaces the usual
 checkpassword, and an authentication module for Courier IMAP, that
 provide access to the virtual mailboxes by one of three methods:

 �  IP-based virtual server access (invisible to the POP3 user)

 �  username-based access (username-virtualuser)

 �  hostname-based access ([email protected] or
    virtualuser:virtual.host)

 You should use it if:

 You prefer to have each domain controlled by a seperate username,
 allowing the use of system quotas and better security

 1.2.  New versions

 The newest version of this can be found on my homepage
 <http://www.clearrivertech.com/linux/HOWTO> as SGML source, as HTML
 and as TEXT.  Other versions may be found in different formats at the
 LDP homepage  <http://www.linuxdoc.org/>.  A copy can also be found on
 the VMailMgr homepage  <http://em.ca/~bruceg/vmailmgr/> in its HTML
 version as well as in the VMailMgr source package as both SGML source
 and as HTML.

 1.3.  Comments

 Comments on this HOWTO should be directed to the VMailMgr mailing
 list.  To subscribe, send an email to [email protected]
 <mailto:[email protected]>.

 1.4.  History

 This document was started by Bruce Guenter and reworked by Dan
 Kuykendall.

 1.5.  Version History

 Old Version


 �  Created by Bruce, wasn't in SGML HOWTO format.

 v1.0 (April 20, 2000)


 �  Built proper SGML version.

 �  Included the FAQ.

 �  Other minor additions.

 v1.1 (April 23, 2000)


 �  Split the FAQ to a seperate file, but included some important info
    from the FAQ.

 �  Updated the Courier-IMAP support section.

 �  Switched the license to the GNU FDL.

 �  Other minor additions.

 1.6.  Copyrights and Trademarks

 Copyright (c)  Dan Kuykendall.  Permission is granted to copy,
 distribute and/or modify this document under the terms of the GNU Free
 Documentation License, Version 1.1 or any later version published by
 the Free Software Foundation

 A copy of the license is available at GNU Free Documentation License
 <http://www.gnu.org/copyleft/fdl.txt>.

 1.7.  Acknowledgements and Thanks

 Thanks to Bruce Guenter for VMailMgr and the core of this HOWTO.
 Thanks to Mike Bell, who always seems to have the answers to my
 questions. Finally, thanks to all those on the [email protected]
 <mailto:[email protected]> mailing list who have helped me, or
 asked the same stuff so many times that I had to write this to stop
 the repeat questions.

 2.  Installation

 2.1.  Visit the VMailMgr websiteurlnam
 <http://em.ca/~bruceg/vmailmgr/> to get the package.  Get the files

 If you get the binary RPMS you will need at least the vmailmgr and
 vmailmgr-daemon packages.

 2.2.  Install with RPMS

 2.2.1.  Compiling SRC.RPM's

 Simply compile the src.rpm file with the `rpm --rebuild` command.
 -Example-

 ______________________________________________________________________
   rpm -ivh vmailmgr-0.96.6-1.src.rpm
 ______________________________________________________________________



 2.2.2.  Installing RPM's

 After compiling the source rpms, the binaries will be located in
 `/usr/src/redhat/RPMS/i386/` or something similar.

 Simply run the following command for each package

   rpm -ivh <location>/<package.i386.rpm>


 -Example-

 ______________________________________________________________________
   rpm -ivh /usr/src/redhat/RPMS/i386/vmailmgr-0.96.6-1.i386.rpm
   rpm -ivh /usr/src/redhat/RPMS/i386/VMailMgr-daemon-0.96.6-1.i386.rpm
 ______________________________________________________________________



 2.3.  Install with source

 If you dont ue RPMS you can install from source.

 Run the following command

   (As non-root user)
   tar zxf <package.tar.gz>
   cd <newly created dir>
   ./configure
   make
   (As root)
   make install


 -Example-



 ______________________________________________________________________
   (As non-root user)
   tar zxf vmailmgr-0.96.6.tar.gz
   cd vmailmgr-0.96.6
   ./configure
   make
   (As root)
   make install
 ______________________________________________________________________


 That should do it.

 3.  Setup

 3.1.  Setting Up a Virtual Domain

 The following steps are necessary to set up a virtual domain with
 vmailmgr (assuming vmailmgr has been compiled and installed). As an
 example, we'll set up a virtual user `[email protected]`, with aliases
 of `[email protected]` and `[email protected]`.

 1. Set up a DNS entry for the domain. I won't cover this here, as it
    is dependant on far too many other things.  I will mention that to
    make IP based virtual domains work a PTR record which matches an
    entry in virtualdomains is nessesary, for example, if nslookup
    10.56.33.122 returns mail.mydomain.com, `virtualdomains` needs an
    entry like `mail.mydomain.com:myuser`

    For the example, we'll assume that the mail exchanger for
    mydomain.org is already set up to point to your computer.

 2. Set up a base user for the domain. Create a user, with a name of
    your choosing.  Since the maildirs for all the users in the virtual
    domain will be stored under this user's home directory, make sure
    you set the user up in a partition or disk that is appropriate for
    such storage. The tools that you should use to accomplish this step
    vary greatly between different systems. For our example, I'll add a
    user `myuser`.

 3. Configure qmail to recognize the domain. To do this, you need to
    modify two of qmail's configuration files in `/var/qmail/control`
    `rcpthosts` and `virtualdomains`.

 �  To `rcpthosts` : add the line `mydomain.org`.

 �  To `virtualdomains` : add the line `mydomain.org:myuser`.

    If you wish to have mail to `anything.mydomain.org` be delivered in
    the same way, add the following

 �  To `rcpthosts` : add the line `.mydomain.org`.

 �  To `virtualdomains` : add the line `.mydomain.org:myuser`.

 4. Configure qmail-popup/qmail-pop3d to use `checkvpw` as the password
    checker. This step is dependant on how you have installed qmail.

 �  Replace `checkpassword` in the command you use to invoke qmail-
    popup/qmail-pop3d (either in `/etc/inet.conf` or in a `tcpserver`
    command) with `checkvpw`.

 �  And/Or at the prompt type: `echo checkvpw >
    /var/qmail/control/checkpassword`


 5. Add users or aliases to the domain. Either change user to the user
    you just created (for example, type `su - myuser`) or log in (with
    either telnet or at the console) as the new user, and use the
    included programs to add users and aliases.

    For our example, we would

 �  type: `vadduser me` (which prompts for a password)

 �  type: `vaddalias me myself`

 �  and type: `vaddalias me myname`

    After you have completed all these steps, you will need to kill and
    restart `qmail-send` to make it read the new `virtualdomains`
    table.

 If you are using `inetd` to launch `qmail-popup`, `kill -HUP` the
 `inetd` process as well.

 3.2.  Using one IP address for mutiple domains

 3.2.1.  Logging in as a virtual user?

 There are two ways to log in without using multiple IP addresses.


 1. The first way is to log in as `userSEPvirtual.domain.org`, where
    `user` is the mailbox name of the virtual user, SEP is one of `@`
    or `:` (by default, this is configurable in the `/etc/vmailmgr/'
    directory), and `virtual.domain.org' is the virtual domain's name,
    as listed in `/var/qmail/control/virtualdomains'.

 2. The second way is to use the internal form of the mailbox name --
    that is, `baseuser-user', where `user' is the same as above, and
    `baseuser' is the username of the managing user.

    Example: `/var/qmail/control/virtualdomains' contains

      testdomain.org:testuser


 User `myuser' exists, and has set up a virtual mailbox with the name
 `me'. The `separators' variable in `/etc/vmailmgr/' contains `@:'.
 This virtual user could log in as `[email protected]', `me:mydomain.cm',
 or `myuser-me'.


 3.3.  Catch all misdirected mail?

 In the `vmailmgr/' configuration directory, there is an entry called
 `default-username'. If mail to a virtual domain does not match any
 users or aliases in that domain, it is delivered to the name listed in
 this configuration item if it exists (which defaults to `+'). To make
 this deliver to you, simply type:

   vaddalias me +



 3.4.  Setup VMailMgr IMAP support?

 VMailMgr supports Courier-IMAP, but Courier-IMAP does not auto detect
 VMailMgr.  This means that some minor work is required for making the
 two work together.

 �  You must copy `/usr/local/bin/authvmailmgr` to `/usr/lib/courier-
    imap/libexec/authlib/authvmailmgr`.

 �  Then modify the `AUTHMODULES` statement in `/usr/lib/courier-
    imap/etc/imapd.config` and add `authvmailmgr` as the first
    authentication module.