ZDNet UK


Skip to Main Content

ZDNet.co.uk - Winner of Best Business Website 2007
  1. Home
  2. News
  3. Blogs
  4. Reviews
  5. Prices
  6. Resources
  7. Community
  8. My ZDNet

 

ZDNet UK RSS Feeds


IT Jobs

Office applications Toolkit

Keep it simple: Linux-based mail server

John Locke

Published: 08 Apr 2003 10:10 BST

  • Email
  • Trackback
  • Clip Link
  • Print friendly
  • Post Comment

Compile and install Postfix
Unpack the source tarball as follows:

$ tar --xzf postfix-2.0.6.tar.gz

Create a postfix user account, with the primary group named postfix, using your account creation tool of choice. This account should have no shell or home directory -- the resulting entry in /etc/passwd should look like this:

postfix:*:12345:12345:postfix:/no/where:/no/shell

Create a postdrop group with no users. The entry in /etc/group should look like this (perhaps with a different group id):

postdrop:*:54321

Add an entry in /etc/alias for the postfix user:

postfix: root

The following makecommand will patch the make files for MySQL support. Also, change the include and lib path to point to the directories containing mysql.h and libmysqlclient. So:

$ cd /usr/src/postfix-2.0.6
$ make --f Makefile.init makefiles
> 'CCARGS=-DNO_PCRE -DHAS_MYSQL --I/usr/local/mysql/include/mysql'\
> 'AUXLIBS=-L/usr/local/mysql/lib/mysql --lmysqlclient --lz --lm'

Remove the debugging symbols from the source code (optional) with this command:

$ strip bin/* libexec/*

Then compile using:

$ make

Finally, install (as root) using these commands:

$ su
# make install

The install script prompts you for many options. You might want to specify a location in your user home directory for the readme files -- otherwise, the defaults are generally fine. Barring any compilation errors, you should now have a working copy of Postfix on your system, with a directory of configuration files in /etc/postfix.

Configuring Postfix
Postfix has a ton of configuration options. After a fresh install, most of them are set to reasonable values. The readme files, sample configuration files, and man pages describe how to work with most of them. While Postfix should run with no changes, there are some settings you may need to change if you're getting error messages, along with a couple of considerations for reducing spam. Using Table A, you may want to change some values in /etc/postfix/main.cf (the main configuration file for options).

Table A

main.cf parameter Description Set this value
alias_maps Lists where to find local users alias_maps = hash:/etc/alias
mynetworks Determines what IP address range to accept mail from. Defaults to accepting mail from any computer on the same subnet. If this computer is not behind a firewall, set it to specific IP addresses to always accept mail from mynetworks = 127.0.0.0/8 12.228.122.48/32
relayhost Designates another SMTP server to relay all mail not delivered locally. By default, this is set to nothing, meaning this server attempts to connect directly to the receiving MTA. If you have a local DNS server running, this is fine -- otherwise you might want to point this to the mail server for your ISP.
smtpd_recipient_restrictions Determines what to check before relaying the mail. You can add black hole lists here, check for forged Hotmail/Yahoo mail, and many other things.

Here's a basic list that blocks unauthorized relaying and connections that do not speak proper SMTP:smtpd_recipient_restrictions = reject_unauth_pipelining,  reject_unknown_sender_domain,  reject_unknown_recipient_domain,  permit_mynetworks,  reject_unauth_destination

Here are the main.cf configuration file options.

Next, I need to set up aliases for default system accounts. For now, I'll route the important mail accounts to a local user account, which will need to be read directly by a mail client. To do this, edit the /etc/aliases file and add the following entries:

postfix:    root
postmaster: root
abuse:      root
root:       user

Replace user with your user account name. To generate the actual alias database, type the following as root:

# postalias

Next, check for errors in the Postfix installation, and if you get no error messages, start Postfix:

# postfix check
# postfix start

Postfix sends log messages to the mail facility of syslogd by default. Look for messages from Postfix that include /var/log/maillog, /var/log/mail/warnings, or their equivalents. The tail command can be helpful for this:$ tail --f /var/log/maillog

Automatic startup
Finally, set Postfix to run automatically at startup. The procedure to do this varies widely by system, and the package does not provide a script. If your distribution uses System V for starting and stopping services, the accompanying sidebar provides a sample script you can use. Save this script as /etc/rc.d/init.d/postfix.

Once this script is saved, you can use the chkconfig program to set the run levels for postfix, and make the script executable using:

# chkconfig -- add postfix
# chmod 744 /etc/rc.d/init.d/postfix

What's next?
Postfix should now be up and running, accepting mail for local users and aliases in the /etc/alias file, and relaying mail out. In the next article, I will set up an IMAP server so that other users can get to e-mail stored on the server and store virtual user accounts in a MySQL database.

For a weekly round-up of the enterprise IT news, sign up for the Enterprise newsletter.

Tell us what you think in the Enterprise Mailroom.

Next

Previous

1 2


  • Email
  • Trackback
  • Clip Link
  • Print friendly Print with Dell

Did you find this article useful?
89 out of 207 people found this useful


Full Talkback thread

0 comments


Company/Topic Alerts

Create a new alert from the list below:
















Related Jobs

Account Director

Experience with leading management or IT consultancies latterly in a client relationship role Banking or life and pensions sector focus Excellent ...

TEST CONSULTANT POSITIONS (Tester) TESCOM UK Central London

Other benefits are: - A formal and structured appraisal process, to ensure progression within the company - Diverse and varied projects with various ...

Linux / Cisco Network Specialist UNIX, Linux, Cisco -Oxfordshire, South

Cisco Routers, Cisco IOS, Linux (RHEL4), Firewalls such as PIX & Firewall 1, TCP/IP, DNS, POP, SMTP, SNMP, proxies, email servers, PHP, MySQL, ...

Featured Talkback

Why do so many (virtually all) software packages think that they are so important that they have to be started automatically every time the computer boots? What is the largest number of "speed access", "update check", "camera download" and whatever other background programs you have ever seen running? Of those, how many did you really need?

By: J.A. Watson

Read full story:
Annoying software: a rogues' gallery

Discussions

319762 319762

Eve of Distraction

Saturday 26 July 2008, 4:37 AM

1 comment

Vista Upgrade Blog

Microsoft's pre-modern message puts a...

Over at ZDNet.com, Ed Bott reports a first sighting of Microsoft's eagerly awaited $300 million ad campaign. Already the cause of much speculation, the consensus is that this will be... More

8 comments

A $40 CONSUMER-class router has create...

Believe it or not I don't work in IT, haven't for 7 years. Yes I work with Microsoft's Windows XP Embedded and as a result I have to know a lot about the OS, the kernal, Win API calls... More

Post a comment

Sick Puppy Redo

I generally follow a dispassionate investigative process when trying to discern what happened when a project goes bad. Although its a low priority item, it gets done simply because... More

Post a comment


Skip Sub Navigation Links to CNET Brand Links

Help

Become part of the ZDNet community.

Newsletters