The Perfect Server - Ubuntu 11.10 [ISPConfig 3] - Page 5

4 Get root Privileges

After the reboot you can login with your previously created username (e.g. administrator). Because we must run all the steps from this tutorial with root privileges, we can either prepend all commands in this tutorial with the string sudo, or we become root right now by typing

sudo su

(You can as well enable the root login by running

sudo passwd root

and giving root a password. You can then directly log in as root, but this is frowned upon by the Ubuntu developers and community for various reasons. See


5 Install The SSH Server (Optional)

If you did not install the OpenSSH server during the system installation, you can do it now:

apt-get install ssh openssh-server

From now on you can use an SSH client such as PuTTY and connect from your workstation to your Ubuntu 11.10 server and follow the remaining steps from this tutorial.


6 Install vim-nox (Optional)

I'll use vi as my text editor in this tutorial. The default vi program has some strange behaviour on Ubuntu and Debian; to fix this, we install vim-nox:

apt-get install vim-nox

(You don't have to do this if you use a different text editor such as joe or nano.)


7 Configure The Network

Because the Ubuntu installer has configured our system to get its network settings via DHCP, we have to change that now because a server should have a static IP address. Edit /etc/network/interfaces and adjust it to your needs (in this example setup I will use the IP address

vi /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static

Then restart your network:

/etc/init.d/networking restart

Then edit /etc/hosts. Make it look like this:

vi /etc/hosts       localhost.localdomain   localhost     server1

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Now run

echo > /etc/hostname
/etc/init.d/hostname restart

Afterwards, run

hostname -f

Both should show now.


8 Edit /etc/apt/sources.list And Update Your Linux Installation

Edit /etc/apt/sources.list. Comment out or remove the installation CD from the file and make sure that the universe and multiverse repositories are enabled. It should look like this:

vi /etc/apt/sources.list


# deb cdrom:[Ubuntu-Server 11.10 _Oneiric Ocelot_ - Release amd64 (20111011)]/ dists/oneiric/main/binary-i386/
# deb cdrom:[Ubuntu-Server 11.10 _Oneiric Ocelot_ - Release amd64 (20111011)]/ dists/oneiric/restricted/binary-i386/
# deb cdrom:[Ubuntu-Server 11.10 _Oneiric Ocelot_ - Release amd64 (20111011)]/ oneiric main restricted

#deb cdrom:[Ubuntu-Server 11.10 _Oneiric Ocelot_ - Release amd64 (20111011)]/ dists/oneiric/main/binary-i386/
#deb cdrom:[Ubuntu-Server 11.10 _Oneiric Ocelot_ - Release amd64 (20111011)]/ dists/oneiric/restricted/binary-i386/
#deb cdrom:[Ubuntu-Server 11.10 _Oneiric Ocelot_ - Release amd64 (20111011)]/ oneiric main restricted

# See for how to upgrade to
# newer versions of the distribution.
deb oneiric main restricted
deb-src oneiric main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb oneiric-updates main restricted
deb-src oneiric-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb oneiric universe
deb-src oneiric universe
deb oneiric-updates universe
deb-src oneiric-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb oneiric multiverse
deb-src oneiric multiverse
deb oneiric-updates multiverse
deb-src oneiric-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb oneiric-backports main restricted universe multiverse
deb-src oneiric-backports main restricted universe multiverse

deb oneiric-security main restricted
deb-src oneiric-security main restricted
deb oneiric-security universe
deb-src oneiric-security universe
deb oneiric-security multiverse
deb-src oneiric-security multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb oneiric partner
# deb-src oneiric partner

## Uncomment the following two lines to add software from Ubuntu's
## 'extras' repository.
## This software is not part of Ubuntu, but is offered by third-party
## developers who want to ship their latest software.
# deb oneiric main
# deb-src oneiric main

Then run

apt-get update

to update the apt package database and

apt-get upgrade

to install the latest updates (if there are any). If you see that a new kernel gets installed as part of the updates, you should reboot the system afterwards:



9 Change The Default Shell

/bin/sh is a symlink to /bin/dash, however we need /bin/bash, not /bin/dash. Therefore we do this:

dpkg-reconfigure dash

Use dash as the default system shell (/bin/sh)? <-- No

If you don't do this, the ISPConfig installation will fail.


10 Disable AppArmor

AppArmor is a security extension (similar to SELinux) that should provide extended security. In my opinion you don't need it to configure a secure system, and it usually causes more problems than advantages (think of it after you have done a week of trouble-shooting because some service wasn't working as expected, and then you find out that everything was ok, only AppArmor was causing the problem). Therefore I disable it (this is a must if you want to install ISPConfig later on).

We can disable it like this:

/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils


11 Synchronize the System Clock

It is a good idea to synchronize the system clock with an NTP (network time protocol) server over the Internet. Simply run

apt-get install ntp ntpdate

and your system time will always be in sync.

Share this page:

21 Comment(s)

Add comment


From: Anonymous at: 2011-10-20 15:55:12

From "man hostname":

 /etc/hostname This file should only contain the hostname and not the full FQDN.

 /etc/hostname This file should only contain the hostname and not the full FQDN.


 you mislead people when you say to use:
 echo > /etc/hostname

From: Anonymous at: 2011-11-02 11:12:55

When accusing someone of 'misleading' people, explain why the hostname must not contain the full FQDN.

From: Anonymous at: 2011-11-18 12:07:11

It's not prohibited, just "not recommended".

Usually, you should not question such a "recommendation", some background services might rely on this.

 Just my 2 cts

From: norby at: 2012-07-08 20:19:53

After a long winding road, finally something that actually works!!!!

So many HowTo's and none, except this one, worked for me.

Thanks folks!!!!!

I tried to install this one on a Ubuntu 12.04LTS 64 Bit, wich absolutely didn't work for me.

A big THANK YOU to all that are involved


From: Eiside at: 2012-02-21 19:59:36

How can I configure ipsconfig and the server if I want the websites directory on a diferent harddrive.please help me . I just think about it as a security masure

From: at: 2011-10-16 13:08:40

Going through this I get a comment like the following when I run a script in /etc/init.d

 Rather than invoking init scripts through /etc/init.d, use the service(8)

utility, e.g. service mysql restart

Since the script you are attempting to invoke has been converted to an

Upstart job, you may also use the stop(8) and then start(8) utilities,

e.g. stop mysql ; start mysql. The restart(8) utility is also available.

mysql stop/waiting

From: at: 2011-10-27 21:09:02

At step 18 to avoid errors compiling jailkit install binutils-gold.

apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper binutils-gold


From: at: 2011-10-31 15:20:57

solution for jailkit and for sasl auth

 1. jailkit

make distclean

 change all -lpthread to  -pthread in configure, src/



make clean

./debian/rules binary


2. sasl auth - problem with "fatal: no SASL authentication mechanisms"

remove or comment two lines in

# smtpd_sasl_type = dovecot
# smtpd_sasl_path = private/auth

Please, check if it works. For me works.

From: Abhijit at: 2012-02-03 14:01:28

The user quota setup  as described here does not work. When I try the following command

quotaon -avug

it fail complaining that the quota file not found. I tried creating the quota.user and aquota.user in the root dir to satisfy the command without much success.


From: Anonymous at: 2012-02-07 20:54:37

I had the same problem, the errors were referencing inability to find /dev/root. After searching around, I found this page which describes adding a symlink as follows:

 ln -s /dev/xvda /dev/root

Once I did that, the instructions here for quotas worked as expected. However, as noted on that page, the symlink goes away on reboot, so I just added that command to /etc/rc.local and it runs whenever the system reboots and everything works fine.

From: Fleck at: 2012-02-08 13:31:28

if you get SASL LOGIN authentication failed: no mechanism available - DO NOT DOWNGRADE PACKAGES, you just need to update config files:

 in /etc/default/saslauthd check those params:
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

notice that -r at the end, must have that, or login will not work using email as username!

 in /etc/postfix/sasl/smtpd.conf you need to change few lines and add one:
pwcheck_method: saslauthd
mech_list: plain login pam
allow_plaintext: true
auxprop_plugin: sql
sql_engine: mysql
sql_user: ispconfig
sql_passwd: <removed>
sql_database: dbispconfig
sql_select: select password from mail_user where login = '%u' or login = '%u@%r'  this will allow to use smtp using custom login names (ISPConfig -> System -> Interface Config -> Mail -> checked "Allow custom login name"(using this mode you can't leave blank custom login name blank - looks like ISPConfig bug, but then simply, if you don't whant to use custom login name - enter email address one more time!))

if you don't want to use custom login names - you can use this line:
sql_select: select password from mail_user where login = '%u@%r'

From: Anonymous at: 2013-04-22 08:54:11

this link is not working anymore


From: cg at: 2014-03-21 00:05:09

Thxal for that help man!

 I remembered the change of "auxprop_plugin: mysql" to sql only, with the extra parameter "sql_engine"...

The final crack was to to change:

 sql_select: select password from mail_user where login = '%u@'

as it was in my old config files from squeeze to

sql_select: select password from mail_user where login = '%u@%r'.

I updated ISPConfig and Squeeze several times and it worked until the upgrade to wheezy. Whyever it did not happen before. But I can send mails again, so everything is fine - for now.

Again: Thx!

From: boneg at: 2011-10-28 19:42:40

Great tutorial! Today I reconfigured my server with this manual, add some cache modules and now I have great machine with good perfomance.

From: Adaz at: 2012-03-06 00:38:12

Thank you for this great tutorial!! Everything worked as you said! So many steps, but it worths it.Thank you for the minutiae, you wasn't lazy!

From: Anonymous at: 2012-04-05 04:35:30

Thanks for a great tutorial. Clear and exact. I followed all the steps in this complex setup and have to say it all worked out to my surprise.

From: Anonymous at: 2012-04-06 21:04:06

Danke ! Funktioniert perfekt. Die Beschreibung ist hervorragend !

From: ranggadablues at: 2012-04-09 09:08:08

this is great tutorial, but only one problem I've got

I can't login to squirrelmail, as default user and password

please help me

thank you

From: Travis at: 2012-04-29 18:57:49

I'm a PHP & Java developer, and wanted to get a webserver up to serve as my online resume. I tried and tried on my own to get a server up w/ working email and no problems, and just had no luck. UNIX and email client configurations are not my strong point I fear. Using your guide, I was able to get a working server up in just a few hours ON MY FIRST TRY! Also, I used this guide for 12.4, and confirmed it works.

Thank you kind sir for your excellent guide!

From: Anonymous at: 2012-05-25 23:22:59

I have the exact same problem.  Before I install ISPconfig3, squirrelmail worked fine.  However it stopped working and give me the error unknow user name and password.  Did you ever get yours sorted out?

From: Anonymous at: 2012-06-21 05:26:18

thanks a lot. but email interface is not running at ispconfig. then i can't add email domain, emailbox etc...

I tried "The Perfect Server - Ubuntu 12.04 LTS (Apache2, BIND, Dovecot, ISPConfig 3) ".

But result is same.  What is wrong? What should i do? Please help.


Thank you.