Linux Online Advertisement
[ Register ]

[ Applications ]
[ Documentation ]
[ Distributions ]
[ Download Info ]
[ General Info ]
[ Book Store ]

Advertisement

[ Courses ]
[ News ]
[ People ]
[ Hardware ]
[ Vendors ]
[ Projects ]
[ Events ]
[ User Groups ]
[ User Area ]

Automating Unix and Linux Administration

[ About Us ]
[ Home Page ]
[ Advertise ]

Advanced Linux Course

Our Custom-Made System

Some Preliminary Considerations

Before you start to set up a virtual email system, you need to think a bit about the type of services you need to offer the users of the system. The more services you need to offer, the more complicated it's going to be to set up. Let's say that you have a small to medium sized business. You have 100 employees that you need to give email addresses to. It's not practical to give them all an account on a machine. Also, your business has several workers that travel on behalf of the company. In order for your operation to look professional, they need email accounts that feature the domain name of your company. They also need to be able to use your company's mail server when they're on the road. Many times, they'll be checking into hotels that provide internet access. Thanks to spam, the days when you could keep your mail server open for relaying are long gone. So you need some kind of authentication system that keeps your mail server locked to everyone except those who work for your company. In addition, you might want to add the possibility for your employees to check their mail at any conceivable location, taking into account that they may not have their laptop handy (that cybercafe just 50 meters away from that beautiful Caribbean beach, perhaps). That's the mail system we'll set up in this lesson.

Putting the Pieces Together

Note

The author set this system up on a machine running Fedora Core. All of the packages we need were downloaded and installed from source, except for MySQL, which was installed from an RPM. This means that this lesson can be used, theoretically, to set up this system on any Linux distribution. The only thing you'll have to change is the path to the mysql client *lib.so* files (which Fedora puts in /usr/lib/mysql) and adjust your configuration commands accordingly.

Here is a list of the pieces we'll be using to set up our bespoke virtual mail system:

  • Postfix mail transfer agent

  • MySQL

  • Courier IMAP and POP3 servers

  • Cyrus SASL

  • Squirrelmail web-based email client

Warning

Setting up a system of this type is not trivial. To do this successfully, you need to make sure that all the commands you need to issue and the configuration files you need to create are exactly what they must be. One typo or one extra space somewhere (that's what always gets me) can stop the system from working. The system logs will come in handy when you run it the first time. I suggest using 'tail -f' to monitor your postfix 'maillog' file, your mysql.log file and your messages file. All can be found in /var/log/.

You can get the needed packages at the following places (at the time of this writing).

  • Cyrus SASL: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/

  • Postfix: http://www.postfix.org/download.html

  • Courier IMAP: http://www.courier-mta.org/

  • Squirrelmail: http://squirrelmail.org/

As I mentioned, I used the MySQL packages installed by default with Fedora Core. The other packages need to be installed from source because, with the exception of some Debian packages, I have not found packaged binaries for the others with MySQL support compiled in. At any rate, compiling from source is not difficult and we'll take it step by step and deal with the special options we need to give when we're configuring the source code.

First, you should create a directory somewhere to untar the packages and keep the source code. It's important that the untarring and the configuration of the source code be done as a normal user. Do not do this as 'root'. In fact, Courier-IMAP will complain and tell you to go back and untar the package in a new directory. In the end, the final install will be done as 'root', but everything leading up to that must be done while logged in as a normal user.

Warning

I know I've said this before, but it bears repeating. You shouldn't be doing these first steps as 'root', OK? Now, I won't say it again!



Comments: feedback (at) linux.org
Advertising: banners (at) linux.org
Copyright Linux Online Inc.
Compilation ©1994-2008 Linux Online, Inc.
All rights reserved.