The Perfect Server - Ubuntu Hardy Heron (Ubuntu 8.04 LTS Server)

Version 1.0
Author: Falko Timme
Last edited 04/24/2008

This tutorial shows how to set up an Ubuntu Hardy Heron (Ubuntu 8.04 LTS) based server that offers all services needed by ISPs and hosters: Apache web server (SSL-capable), Postfix mail server with SMTP-AUTH and TLS, BIND DNS server, Proftpd FTP server, MySQL server, Courier POP3/IMAP, Quota, Firewall, etc. This tutorial is written for the 32-bit version of Ubuntu 8.04 LTS, but should apply to the 64-bit version with very little modifications as well.

I will use the following software:

  • Web Server: Apache 2.2 with PHP 5.2.4 and Ruby
  • Database Server: MySQL 5.0
  • Mail Server: Postfix
  • DNS Server: BIND9
  • FTP Server: proftpd
  • POP3/IMAP: I will use Maildir format and therefore install Courier-POP3/Courier-IMAP.
  • Webalizer for web site statistics

In the end you should have a system that works reliably, and if you like you can install the free webhosting control panel ISPConfig (i.e., ISPConfig runs on it out of the box).

I want to say first that this is not the only way of setting up such a system. There are many ways of achieving this goal but this is the way I take. I do not issue any guarantee that this will work for you!


1 Requirements

To install such a system you will need the following:


2 Preliminary Note

In this tutorial I use the hostname with the IP address and the gateway These settings might differ for you, so you have to replace them where appropriate.


3 The Base System

Insert your Ubuntu install CD into your system and boot from it. Select your language:

Then select Install Ubuntu Server:

Choose your language again (?):

Then select your location:

Choose a keyboard layout (you will be asked to press a few keys, and the installer will try to detect your keyboard layout based on the keys you pressed):

The installer checks the installation CD, your hardware, and configures the network with DHCP if there is a DHCP server in the network:

Share this page:

9 Comment(s)

Add comment


From: MasterG2000 at: 2009-04-24 08:22:01

Thank's for this great tutorial!!

On my minimal Ubuntu 8.04 installation I have to add some addional packages to run ISPconfig on the server:

  • cron
  • iptables
  • telnet (only for the test in your tutorial, not for ISPconfig)
Also I think it's helpfull to install 'wget' for external software.



From: andrew at: 2009-04-09 22:54:13
From: d0rk-E at: 2011-06-06 06:50:47

It has known security holes that are no longer going to be patched.

From: at: 2008-04-27 11:12:47

Falco & Till,

 You guys are the best. Thanx a lot for your hard work.

 Sami Mattila

From: at: 2008-07-02 10:06:28

I have set this up on a dev server and it works good.

I'm planning my install for the production system which has four processors and 3 mirror drives.  I'm trying to think ahead about system expansion.  I'd like to make it easy as possible for me to move existing servers onto new machines as I expand.

Is it possible to put the MySql and Postfix on seperate machines fairly easily using this tutorial with ISPConfig still functional?

If it is easy should I use VMWare and make multiple virtual machines or should I put it all on one box.



From: at: 2008-07-05 22:42:42

Highly recommended 

Thank You very much for this one

No way you can go wrong with this Howto.


Regards,  from Costa Rica 

From: at: 2009-03-28 10:21:01

Hi there, thanks I have resolved the issue.

From: Lee at: 2009-01-02 07:39:59

Hi, I am stuck as how do I really set my static address:

address  (What address is this?) 
network (What network address?)
broadcast (What broadcast address?)

I can only find my netmask and gateway address.

Thanks, please shed some light, anyone. :)






From: Anonymous at: 2009-02-25 17:52:12 is website where you can find your public ip address. you need to set up port forwarding if you have a router set it to forward port 80 to your internal ip address. you can find out your internal ip address by running this command: ifconfigafter that look at  the one that says etho or something like that. The one that says "inet add" that is your internal ip address