Complete Virtual Mail Server
The purpose of this guide is to establish a virtual mail system that can handle multiple domains with a variety of different interface options. This is not intended to be used by the average user who is looking for a mail client, this is a full-scale Mail Transfer Agent (MTA) intended for individuals who are hosting their own domains and/or need to provide support for virtual domains.
By the end of this guide, an easy method to manage a mail server that supports the following features has passed the revue:
- Web based system administration
- Unlimited number of domains
- Virtual mail users without the need for shell accounts
- Domain (specific) user names
- Mailbox quotas
- Web access to email accounts
- IMAP and (very optional) POP3 support
- SMTP Authentication for secure relaying
- SSL for transport layer security
- Strong SPAM filtering
- Anti-Virus filtering
- Log Analysis
The real plus is that all of this is managed by a single database.
Getting Started[edit | edit source]
System Setup and Packages[edit | edit source]
This section outlines a system setup (a multi-server implementation) as well as the core packages that were used. This is a MUST READ before reading on any further (don't worry, it's short).
Basic Setup[edit | edit source]
Linux 'vmail' user[edit | edit source]
Mailboxes are stored on a normal filesystem and thus needs a user and group for security.
Admin Support Systems[edit | edit source]
www-apps/postfixadmin and www-servers/apache were key tools in getting through testing and getting this to hang together. While the details of an Apache/PHP setup are not here, there is good information in here all the same.
Linking Postfix to database backend[edit | edit source]
mail-mta/postfix will be coupled to a database backend allowing virtual users on multiple domains.
Linking Courier-imap to database backend[edit | edit source]
net-mail/courier-imap will be coupled to the same database.
Enhanced Setup[edit | edit source]
SMTP Authentication[edit | edit source]
Having a mailserver that relays local mail is good enough for most, being able to relay mail after authentication is extremely handy.
Web Access[edit | edit source]
Now that a basic mailserver has been setup, web access can be both useful and helpful during testing.
SSL Certificates[edit | edit source]
Securing the mail server with SSL certificates.
DKIM[edit | edit source]
Signing all outgoing messages with verification keys to prevent ending up in the junk box.
Refining the Setup[edit | edit source]
Using default Postfix configuration options, the server gets some performance tweaks and security settings.
Anti-Spam Measures[edit | edit source]
Amavisd, Spam-Assassin and ClamAV[edit | edit source]
Defending against spam using Amavis, Spam-assassin and ClamAV for virus protection.
Log Analyzer[edit | edit source]
Logging mail traffic with AWStats[edit | edit source]
Always important is monitoring. To do so AWStats is used to get a useful overview of passed messages.