Building an email server using ClearOS

I’ve had a server at home for years now, and I’ve also been a professional sysadmin for at least three years. I know my way around Linux pretty well and for some time I’ve run my own web server and also other services.

But one thing I’ve steered clear of until now is running my own email server.

I’ve always thought it would be fairly easy to set up, but much harder to make secure. I don’t want to receive tonnes of spam and I don’t want spammers using my SMTP server as an open relay. In the past I’ve read about building SMTP servers with sendmail, postfix and exim but there was all sorts of conflicting information when it came to integrating milters and so on. Different guides all seemed to give contradictory advice and require all sorts of strange configuration steps that I couldn’t understand.

But all that changed when I heard about ClearOS. In short, it’s a spin of CentOS which uses a custom web interface to configure various software “modules”, including things like web server, email server, firewall gateway, database server, and so on.

I installed it on a virtual machine and after only a few clicks I was running a mail server: an MX for receiving mail for my domains, an authenticated SMTP server for personal outgoing mail, and a secure IMAP server for storing and accessing my mail. The frontend sets up postfix and cyrus to do its dirty work.

For ultimate ease, users (just me, in this case) are authenticated using a local LDAP directory, rather than by using system accounts. All SSL certificates for IMAPS and HTTPS were added automatically. Email antivirus scanning is done by Amavis and spam filtering is done by Spamassassin.

I had a little bit of trouble setting up Horde to access webmail and a web interface for configuring sieve rules. By “trouble” I mean the default Apache virtual host declarations needed some changing around and some aliases adding. If you’re familiar with Apache this won’t be a problem.

There are some aspects of ClearOS I don’t like so much, and I would prefer to use CentOS. But now ClearOS has written out all my configs it should be trivial to move my new mail setup to a plain old CentOS installation, where I already run my websites from. I have definitely learnt a lot about how email works by simply reading and understanding the config files written by the frontend.

So if you want to build an email server but don’t know where to start – try ClearOS. It’s a great introduction to the “scary” parts of setting up an email server, like milters and certificates.

7 Comments

  1. Charles
    December 1, 2010
    Reply

    Hi Jonathan,

    Would you do a short tutorial on how you set your email server up? I haven’t seen a good one posted but it would definitely be interesting to see one developed.

    • Jonathan
      December 1, 2010
      Reply

      This is something I might get round to in time, although with ClearOS it is extremely easy. It’s just a few clicks.

      • Dindo
        July 18, 2012
        Reply

        Jonathan,

        Does it work for both version of ClearOS, community and Pro?

        • July 18, 2012
          Reply

          I only tested it with Community, but I bet it will work with Pro too.

  2. Brian Lance
    April 28, 2011
    Reply

    I have installed ClearOS 5.2 as email server. However am having problems receiving emails from other domains e.g gmail or yahoomail cannot appear in my inbox , however I am able to send to gmail and Yahoo mail. Any pointers guys.

  3. Jonathan
    April 29, 2011
    Reply

    I don’t know how you have set yours up, but you need to tell your ClearOS server to receive emails from other domains, and then you need to alter your MX with the other ISP. I doubt you can do that without either setting up forwarding from your Gmail account, or by using ClearOS’s feature to retrieve mail from other servers.

  4. vivien
    February 5, 2013
    Reply

    after setting up your sendmail server in clearos how does it work in sending mail?
    can you give an example output please

Leave a Reply