HowtoForge

Virtual Users With Postfix, Dovecot, MySQL, RoundCube, iRedAdmin On Debian 6.0 (Squeeze)

Virtual Users With Postfix, Dovecot, MySQL, RoundCube, iRedAdmin On Debian 6.0 (Squeeze)

This document describes how to install a Postfix and Dovecot mail server that is based on virtual users and domains, i.e. users and domains that are in a MySQL database. If you prefer to install such a mail server step by step, you can refer to the ISPmail tutorials at workaround.org. Also the Big Picture would help you to easily understand the mail server structure. I believe you at least need one day to have a working mail server that way. If you use the iRedMail script, you only need one minute to get the mail server up and running, and you will have more features (compared to the ISPmail tutorials).

What is iRedMail?

Useful links:

 

1 Requirements

It is strongly recommended to use the Debian NetInstall version to install a minimal Debian system, and then deploy the mail service via the iRedMail solution. e.g.:

To install such a system you will need the following:

 

2 Preliminary Note

In this tutorial we use:

 

3 Setting The Hostname

In Debian, the hostname is set in these two files:

Map this hostname to '127.0.0.1' (warning: list the FQDN hostname as the first item!).

Edit /etc/hosts:

127.0.0.1       localhost
127.0.1.1      mail.example.com        mail

Edit /etc/hostname:

mail

Let the hostname modification take effect at once:

 # /etc/init.d/hostname.sh 

Verify the FQDN hostname:

# hostname
 mail
 #hostname -f

mail.example.com

 

4 Install Necessary Packages

We need to have bzip2 installed for extracting iRedMail.

 # apt-get install bzip2 

 

5 Start iRedMail Installation

Switch to the root user, we must execute further commands as the root user without sudo.

 $ sudo su - 
Download the new version of iredmail and start the installation:

# wget http://iredmail.googlecode.com/files/iRedMail-0.7.0.tar.bz2
# tar jxvf iRedMail-0.7.0.tar.bz2
# cd iRedMail-0.7.0
# bash iRedMail.sh

Note:

Welcome page:

Choose the directory that will be used to store users' mailboxes.

iRedMail supports both OpenLDAP and MySQL as backends to store virtual domains and users. We choose MySQL.

Set the MySQL root password:

Add your first virtual domain, e.g.:

Set a password for the virtual domain admin: postmaster@example.com, you can log into iRedadmin and Awstats with this account.

Set a password for the first normal user www@example.com for the first virtual domain:

Select optional components:

Select the default language for your webmail application:

The configuration is now finished, we can now start the installation:

Configuration completed.
*************************************************************************
***************************** WARNING ***********************************
*************************************************************************
*                                                                       *
* Please do remember to *MOVE* configuration file after installation    *
* completed successfully.                                               *
*                                                                       *
*   * /root/iRedMail-0.7.0-beta2/config
*                                                                       *
*************************************************************************
< INFO > Continue? [Y|n]

Finish the installation:

*************************************************************************
* iRedMail-0.7.0-beta3 installation and configuration complete.
*************************************************************************
< Question > Would you like to use firewall rules shipped within iRedMail now?
< Question > File: /etc/default/iptables, with SSHD port: 22. [Y|n]
< INFO > Copy firewall sample rules: /etc/default/iptables.
insserv: warning: script 'K01iredapd' missing LSB tags and overrides
insserv: warning: script 'iredapd' missing LSB tags and overrides
< Question > Restart firewall now (with SSHD port 22)? [y|N]
< Question > Would you like to start postfix now? [y|N]
*
*   # for i in rsyslog  apache2 postfix mysql postfix-policyd dovecot amavis clamav-daemon clamav-freshclam cron iptables; do /etc/init.d/${i} restart; done
*
********************************************************************

Restart all the related services manually without reboot:

# for i in rsyslog apache2 postfix mysql postfix-policyd dovecot amavis clamav-daemon clamav-freshclam cron iptables; do /etc/init.d/${i} restart; done

Virtual Users With Postfix, Dovecot, MySQL, RoundCube, iRedAdmin On Debian 6.0 (Squeeze)