338 lines
10 KiB
Plaintext
338 lines
10 KiB
Plaintext
|
VMailMgr HOWTO
|
|||
|
Bruce Guenter <bruceg@em.ca>, Dan Kuykendall <dan@kuyk<79>
|
|||
|
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:
|
|||
|
|
|||
|
<20> IP-based virtual server access (invisible to the POP3 user)
|
|||
|
|
|||
|
<20> username-based access (username-virtualuser)
|
|||
|
|
|||
|
<20> hostname-based access (virtualuser@virtual.host 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 vmailmgr@lists.em.ca
|
|||
|
<mailto:vmailmgr@lists.em.ca>.
|
|||
|
|
|||
|
1.4. History
|
|||
|
|
|||
|
This document was started by Bruce Guenter and reworked by Dan
|
|||
|
Kuykendall.
|
|||
|
|
|||
|
1.5. Version History
|
|||
|
|
|||
|
Old Version
|
|||
|
|
|||
|
|
|||
|
<20> Created by Bruce, wasn't in SGML HOWTO format.
|
|||
|
|
|||
|
v1.0 (April 20, 2000)
|
|||
|
|
|||
|
|
|||
|
<20> Built proper SGML version.
|
|||
|
|
|||
|
<20> Included the FAQ.
|
|||
|
|
|||
|
<20> Other minor additions.
|
|||
|
|
|||
|
v1.1 (April 23, 2000)
|
|||
|
|
|||
|
|
|||
|
<20> Split the FAQ to a seperate file, but included some important info
|
|||
|
from the FAQ.
|
|||
|
|
|||
|
<20> Updated the Courier-IMAP support section.
|
|||
|
|
|||
|
<20> Switched the license to the GNU FDL.
|
|||
|
|
|||
|
<20> 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 vmailmgr@lists.em.ca
|
|||
|
<mailto:vmailmgr@lists.em.ca> 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 `me@mydomain.org`, with aliases
|
|||
|
of `myself@mydomain.org` and `myname@mydomain.org`.
|
|||
|
|
|||
|
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`.
|
|||
|
|
|||
|
<20> To `rcpthosts` : add the line `mydomain.org`.
|
|||
|
|
|||
|
<20> 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
|
|||
|
|
|||
|
<20> To `rcpthosts` : add the line `.mydomain.org`.
|
|||
|
|
|||
|
<20> 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.
|
|||
|
|
|||
|
<20> 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`.
|
|||
|
|
|||
|
<20> 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
|
|||
|
|
|||
|
<20> type: `vadduser me` (which prompts for a password)
|
|||
|
|
|||
|
<20> type: `vaddalias me myself`
|
|||
|
|
|||
|
<20> 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 `me@mydomain.com', `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.
|
|||
|
|
|||
|
<20> You must copy `/usr/local/bin/authvmailmgr` to `/usr/lib/courier-
|
|||
|
imap/libexec/authlib/authvmailmgr`.
|
|||
|
|
|||
|
<20> Then modify the `AUTHMODULES` statement in `/usr/lib/courier-
|
|||
|
imap/etc/imapd.config` and add `authvmailmgr` as the first
|
|||
|
authentication module.
|
|||
|
|
|||
|
|
|||
|
|