2014-12-03 07:01:21 -06:00
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" / >
< title > Install iRedMail on FreeBSD inside Jail (with ezjail)< / title >
< link href = "./css/markdown.css" rel = "stylesheet" > < / head >
< / head >
< body >
< div id = "navigation" >
< a href = "http://www.iredmail.org" target = "_blank" > iRedMail web site< / a >
// < a href = "./index.html" > Document Index< / a >
< / div > < h1 id = "install-iredmail-on-freebsd-inside-jail-with-ezjail" > Install iRedMail on FreeBSD inside Jail (with ezjail)< / h1 >
< div class = "toc" >
< ul >
< li > < a href = "#install-iredmail-on-freebsd-inside-jail-with-ezjail" > Install iRedMail on FreeBSD inside Jail (with ezjail)< / a > < ul >
< li > < a href = "#summary" > Summary< / a > < / li >
< li > < a href = "#system-requirements" > System Requirements< / a > < / li >
< li > < a href = "#preparations" > Preparations< / a > < ul >
< li > < a href = "#set-a-proper-hostname-and-ip-address-for-jail-server" > Set a proper hostname and IP address for Jail server< / a > < / li >
< li > < a href = "#install-sysutilsezjail-and-add-required-settings" > Install sysutils/ezjail and add required settings< / a > < / li >
< li > < a href = "#create-jail" > Create Jail< / a > < / li >
< / ul >
< / li >
< li > < a href = "#install-iredmail" > Install iRedMail< / a > < / li >
< li > < a href = "#start-iredmail-installer" > Start iRedMail installer< / a > < / li >
< li > < a href = "#screenshots-of-installation" > Screenshots of installation:< / a > < / li >
< li > < a href = "#important-things-you-must-know-after-installation" > Important things you MUST know after installation< / a > < / li >
< li > < a href = "#access-webmail-and-other-web-applications" > Access webmail and other web applications< / a > < / li >
< li > < a href = "#get-technical-support" > Get technical support< / a > < / li >
< li > < a href = "#notes-about-binary-packages-provided-by-iredmail-project" > Notes about binary packages provided by iRedMail project< / a > < / li >
< / ul >
< / li >
< / ul >
< / div >
< h2 id = "summary" > Summary< / h2 >
< ul >
< li > This tutorial describes how to create a FreeBSD Jail with ezjail, then
install the latest iRedMail in Jail.< / li >
< li > We use hostname < code > mx.example.com< / code > and IP address < code > 172.16.122.244< / code > for our Jail server.< / li >
< / ul >
< p > Notes:< / p >
< ul >
< li > This tutorial was tested with FreeBSD 9 and the latest ports tree, but it
should work on FreeBSD 8 and 10 too.< / li >
< li > All backends available in iRedMail (OpenLDAP, MySQL/MariaDB, PostgreSQL) were
tested, work like a charm. :)< / li >
< / ul >
< h2 id = "system-requirements" > System Requirements< / h2 >
< p > < strong > IMPORTANT WARNING< / strong > : iRedMail is designed to be deployed on a FRESH server system,
which means your server does < strong > NOT< / strong > 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 be not working as expected.< / p >
< ul >
< li > The latest stable release of iRedMail. You can download it here: http://www.iredmail.org/download.html< / li >
< li > Port < code > sysutils/ezjail< / code > for FreeBSD.< / li >
< / ul >
< h2 id = "preparations" > Preparations< / h2 >
< h3 id = "set-a-proper-hostname-and-ip-address-for-jail-server" > Set a proper hostname and IP address for Jail server< / h3 >
< p > We use hostname < code > mx.example.com< / code > and internal IP address < code > 172.16.122.244< / code > for
example. We created an alias IP address on network interface < code > em0< / code > , so we have
below setting in < code > /etc/rc.conf< / code > for this IP address like below:< / p >
< pre > < code > # 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'
< / code > < / pre >
< h3 id = "install-sysutilsezjail-and-add-required-settings" > Install sysutils/ezjail and add required settings< / h3 >
< ul >
< li > Install ezjail with ports tree:< / li >
< / ul >
< pre > < code > # cd /usr/ports/sysutils/ezjail/
# make install clean
< / code > < / pre >
< ul >
< li > Enable Jail by adding below setting in < code > /etc/rc.conf< / code > :< / li >
< / ul >
< pre > < code > # Part of file: /etc/rc.conf
# Start ezjail while system start up
ezjail_enable=" YES"
< / code > < / pre >
< ul >
< li > [OPTIONAL] Allow to use < code > ping< / code > command inside Jail by adding below line in
< code > /etc/sysctl.conf< / code > :< / li >
< / ul >
< pre > < code > # Part of file: /etc/sysctl.conf
security.jail.allow_raw_sockets=1
< / code > < / pre >
< ul >
< li > Rebooting system is required after changing < code > /etc/rc.conf< / code > .< / li >
< / ul >
< pre > < code > # reboot
< / code > < / pre >
< h3 id = "create-jail" > Create Jail< / h3 >
< ul >
< li > After server reboot, create the base jail that all jails we created later will use:< / li >
< / ul >
< pre > < code > # ezjail-admin install -p
< / code > < / pre >
< ul >
< li > Create Jail for domain name < code > mx.example.com< / code > , bound to internal IP address
< code > 172.16.122.244< / code > . All files are placed under < code > /jails/mx.example.com< / code > :< / li >
< / ul >
< pre > < code > # ezjail-admin create -r /jails/mx.example.com mx.example.com 172.16.122.244
< / code > < / pre >
< ul >
< li > Set hostname of Jail in < code > /jails/mx.example.com/etc/rc.conf< / code > :< / li >
< / ul >
< pre > < code > # File: /jails/mx.example.com/etc/rc.conf
hostname=" mx.example.com"
< / code > < / pre >
< ul >
< li >
< p > [OPTIONAL] Share /usr/ports/distfiles/ with Jail by adding below line in
< code > /etc/fstab.mx_example_com< / code > :< / p >
< ul >
< li > NOTE: Jail will set ports tree directory to < code > /var/ports< / code > instead of
< code > /usr/ports< / code > in < code > /jails/mx.example.com/etc/make.conf< / code > , you can either
use this default setting or change it to < code > /usr/ports< / code > .< / li >
< / ul >
< / li >
< / ul >
< pre > < code > # Part of file: /etc/fstab.mx_example.com
/usr/ports/distfiles /jails/mx.example.com/basejail/usr/ports/distfiles nullfs rw 0 0
< / code > < / pre >
< ul >
< li > Start Jail.< / li >
< / ul >
< pre > < code > # /usr/local/etc/rc.d/ezjail restart
< / code > < / pre >
< ul >
< li > List all Jails:< / li >
< / ul >
< pre > < code > # ezjail-admin list
STA JID IP Hostname Root Directory
--- ---- ---------------- --------------------------------- ------------------------
DS 1 172.16.122.244 mx.example.com /jails/mx.example.com
< / code > < / pre >
< h2 id = "install-iredmail" > Install iRedMail< / h2 >
< p > We can now enter this Jail with below command:< / p >
< pre > < code > # ezjail-admin console mx.example.com
< / code > < / pre >
< ul >
< li > In Jail, update < code > /etc/resolv.conf< / code > with valid DNS server address(es). For example:< / li >
< / ul >
< pre > < code > # File: /etc/resolv.conf
nameserver 172.16.122.2
< / code > < / pre >
< ul >
< li > In Jail, install binary package < code > bash-static< / code > , it's required by iRedMail.< / li >
< / ul >
< pre > < code > # pkg_add -r bash-static
< / code > < / pre >
< h2 id = "start-iredmail-installer" > Start iRedMail installer< / h2 >
< blockquote >
< p > For Chinese users: Our domain name "iredmail.org" is blocked in China mainland since Jun 04, 2011, please replace all 'iredmail.org' by its IP address "106.187.51.47" (without quotes) in /root/iRedMail-x.y.z/pkgs/get_all.sh BEFORE executing "iRedMail.sh". This is a Linode VPS hosted in Tokyo, Japan.< / p >
< / blockquote >
< p > It's now ready to start iRedMail installer inside Jail, it will ask you several simple
questions, that's all steps to setup a full-featured mail server.< / p >
< pre > < code > # bash # < - start bash shell, REQUIRED
# cd /root/iRedMail/
# LOCAL_ADDRESS='172.16.122.244' bash iRedMail.sh
< / code > < / pre >
< h2 id = "screenshots-of-installation" > Screenshots of installation:< / h2 >
< ul >
< li > Welcome and thanks for your use< / li >
< / ul >
< p > < img alt = "" src = "../images/installation/iredmail/welcome.png" / > < / p >
< ul >
< li > Specify location to store all mailboxes. Default is < code > /var/vmail/< / code > .< / li >
< / ul >
< p > < img alt = "" src = "../images/installation/iredmail/location_to_store_mailboxes.png" / > < / p >
< ul >
< li > Choose backend used to store mail accounts. You can manage mail accounts
with iRedAdmin, our web-based iRedMail admin panel.< / li >
< / ul >
< p > < strong > IMPORTANT NOTE< / strong > : 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.< / p >
< p > < img alt = "" src = "../images/installation/iredmail/backend.png" / > < / p >
< ul >
< li > If you choose to store mail accounts in OpenLDAP, iRedMail installer will
ask you two questions about OpenLDAP.< / li >
< / ul >
< p > LDAP suffix.< / p >
< p > < img alt = "" src = "../images/installation/iredmail/ldap_suffix.png" / > < / p >
< p > Password of LDAP root dn.< / p >
< p > < img alt = "" src = "../images/installation/iredmail/pw_of_ldap_root_dn.png" / > < / p >
< ul >
< li > Set password of MySQL or PostgreSQL admin user.< / li >
< / ul >
< p > < strong > NOTE< / strong > : MySQL is used to store data of other applications (e.g. Roundcube
webmail, Cluebringer, Amavisd-new) if you choose OpenLDAP or MySQL as backend.< / p >
< p > < img alt = "" src = "../images/installation/iredmail/pw_of_mysql_root_user.png" / > < / p >
< ul >
< li > Add your first mail domain name< / li >
< / ul >
< p > < img alt = "" src = "../images/installation/iredmail/first_mail_domain.png" / > < / p >
< ul >
< li > Set password of admin account of your first mail domain.< / li >
< / ul >
< p > < strong > Note< / strong > : 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.< / p >
< p > < img alt = "" src = "../images/installation/iredmail/pw_of_domain_admin.png" / > < / p >
< ul >
< li > Choose optional components< / li >
< / ul >
< p > < img alt = "" src = "../images/installation/iredmail/optional_components.png" / > < / p >
< p > After answered above questions, iRedMail installer will ask your confirm to
start installation. It will install and configure required packages
automatically. Type < code > y< / code > or < code > Y< / code > and press < code > Enter< / code > to start.< / p >
< pre > < code > 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
< / code > < / pre >
< h2 id = "important-things-you-must-know-after-installation" > Important things you < strong > MUST< / strong > know after installation< / h2 >
< ul >
< li >
< p > Read file < code > /root/iRedMail-x.y.z/iRedMail.tips< / code > first, it contains:< / p >
< ul >
< li > URLs, usernames and passwords of web-based applications< / li >
< li > Location of mail serve related software configuration files< / li >
< li > Some other important and sensitive information< / li >
< / ul >
< / li >
< li >
< p > < a href = "./setup.dns.html" > Setup DNS records for your mail server< / a > < / p >
< / li >
2014-12-26 00:30:33 -06:00
< li > < a href = "./index.html#configure-mail-client-applications" > How to configure your mail clients< / a > < / li >
< li > It's highly recommended to purchase a SSL cert to avoid annonying warning
message in web browser or mail clients when accessing mailbox via
HTTPS/IMAPS/POP3/SMTPS. Or, you can use
< a href = "http://www.startssl.com/?app=1" > free SSL cert offerred by StartSSL.com< / a > .< / li >
2014-12-03 07:01:21 -06:00
< / ul >
< h2 id = "access-webmail-and-other-web-applications" > Access webmail and other web applications< / h2 >
< p > After installation successfully completed, you can access web-based programs
if you choose to install them. Replace < code > your_server< / code > below by your real server
hostname or IP address.< / p >
< ul >
< li > < strong > Roundcube webmail< / strong > : < a href = "https://your_server/mail/" > https://your_server/mail/< / a > < / li >
< li > < strong > Web admin panel (iRedAdmin)< / strong > : < a href = "httpS://your_server/iredadmin/" > httpS://your_server/iredadmin/< / a > < / li >
< li > < strong > phpLDAPadmin< / strong > (available if you choose LDAP backend): < a href = "httpS://your_server/phpldapadmin/" > httpS://your_server/phpldapadmin/< / a > < / li >
< li > < strong > Awstats< / strong > : < a href = "httpS://your_server/awstats/awstats.pl?config=web" > httpS://your_server/awstats/awstats.pl?config=web< / a > (or ?config=smtp)< / li >
< / ul >
< h2 id = "get-technical-support" > Get technical support< / h2 >
< p > Please post all issues, feedbacks, feature requests, suggestions in our < a href = "http://www.iredmail.org/forum/" > online
support forum< / a > , it's more responsible than you
expected.< / p >
< h2 id = "notes-about-binary-packages-provided-by-iredmail-project" > Notes about binary packages provided by iRedMail project< / h2 >
< p > Most binary packages in iRedMail yum repository comes from below repositories,
packages with < code > -ired< / code > flag were packed by iRedMail project.< / p >
< ul >
< li > < a href = "http://packages.sw.be/" > Dag Wieers< / a > < / li >
< li > < a href = "http://download.fedora.redhat.com/pub/epel/" > EPEL< / a > < / li >
< li > < a href = "http://atrpms.net/" > ATrpms< / a > < / li >
2015-02-05 07:02:53 -06:00
< / ul > < p style = "text-align: center; color: grey;" > Document published under a < a href = "http://creativecommons.org/licenses/by-nd/3.0/us/" target = "_blank" > CC BY-ND 3.0< / a > license. If you found something wrong, please do < a href = "http://www.iredmail.org/contact.html" > contact us< / a > to fix it.< script >
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-3293801-21', 'auto');
ga('send', 'pageview');
2014-12-03 07:01:21 -06:00
< / script >
< / body > < / html >