Install iRedMail on FreeBSD inside Jail (with ezjail)

Summary

Notes:

System Requirements

IMPORTANT WARNING: iRedMail is designed to be deployed on a FRESH server system, which means your server does NOT have mail related components installed, e.g. MySQL, OpenLDAP, Postfix, Dovecot, Amavisd, etc. iRedMail will install and configure them for you automatically. Otherwise it may override your existing files/configurations althought it will backup files before modifing, and it may not be working as expected.

Preparations

Set a proper hostname and IP address for Jail server

We use hostname mx.example.com and internal IP address 172.16.122.244 for example. We created an alias IP address on network interface em0, so we have below setting in /etc/rc.conf for this IP address like below:

# Part of file: /etc/rc.conf

ifconfig_em0_alias0="inet 172.16.122.244 netmask 255.255.255.0"

# Settings for our Jail: mx.example.com.
jail_mx_example_com_hostname="mx.example.com"
jail_mx_example_com_ip="172.16.122.244"

# Required by PostgreSQL, otherwise initializing database will fail.
jail_mx_example_com_parameters='allow.sysvipc=1'

Install sysutils/ezjail and add required settings

# cd /usr/ports/sysutils/ezjail/
# make install clean
# Part of file: /etc/rc.conf

# Start ezjail while system start up
ezjail_enable="YES"
# Part of file: /etc/sysctl.conf
security.jail.allow_raw_sockets=1
# reboot

Create Jail

# ezjail-admin install -p
# ezjail-admin create -r /jails/mx.example.com mx.example.com 172.16.122.244
# File: /jails/mx.example.com/etc/rc.conf
hostname="mx.example.com"
# Part of file: /etc/fstab.mx_example.com
/usr/ports/distfiles /jails/mx.example.com/basejail/usr/ports/distfiles nullfs rw 0 0
# /usr/local/etc/rc.d/ezjail restart
# ezjail-admin list
STA JID  IP               Hostname                          Root Directory
--- ---- ---------------- --------------------------------- ------------------------
DS  1    172.16.122.244   mx.example.com                    /jails/mx.example.com

Install iRedMail

We can now enter this Jail with below command:

# ezjail-admin console mx.example.com
# File: /etc/resolv.conf
nameserver 172.16.122.2
# pkg_add -r bash-static

Start iRedMail installer

It's now ready to start iRedMail installer inside Jail, it will ask you several simple questions, that's all required to setup a full-featured mail server.

For Chinese users: Our domain name iredmail.org is blocked in mainland China since Jun 04, 2011, please run below command with a nearest mirror site. For example: IREDMAIL_MIRROR='http://42.159.241.31' bash iRedMail.sh.

# bash          # <- start bash shell, REQUIRED
# cd /root/iRedMail/
# LOCAL_ADDRESS='172.16.122.244' bash iRedMail.sh

Screenshots of installation:

IMPORTANT NOTE: There's no big difference between available backends, so it's strongly recommended to choose the one you're familiar with for easier management and maintenance after installation.

LDAP suffix.

Password of LDAP root dn.

Note: This account is an admin account and a mail user. That means you can login to webmail and admin panel (iRedAdmin) with this account, login username is full email address.

After answered above questions, iRedMail installer will ask your confirm to start installation. It will install and configure required packages automatically. Type y or Y and press Enter to start.

Configuration completed.

*************************************************************************
**************************** WARNING ***********************************
*************************************************************************
*                                                                       *
* Please do remember to *REMOVE* configuration file after installation  *
* completed successfully.                                               *
*                                                                       *
*   * /root/iRedMail-x.y.z/config
*                                                                       *
*************************************************************************
<<< iRedMail >>> Continue? [Y|n]        # <- Type 'Y' or 'y' here, and press 'Enter' to continue

Important things you MUST know after installation

The weakest part of a mail server is user's weak password. Spammers don't want to hack your server, they just want to send spam from your server. Please ALWAYS ALWAYS ALWAYS force users to use a strong password.

Access webmail and other web applications

After installation successfully completed, you can access web-based programs if you choose to install them. Replace your_server below by your real server hostname or IP address.

Get technical support

Please post all issues, feedbacks, feature requests, suggestions in our online support forum, it's more responsible than you expected.

All documents are available in BitBucket repository, and published under Creative Commons license. If you found something wrong, please do contact us to fix it.