Virtual Multiserver Environment With Dedicated Web & MySQL, Email & DNS Servers On Debian Squeeze With ISPConfig 3

Version 1.0
Author: Michel Käser <info [at] rackster [dot] ch>

This tutorial describes how you can set up a single dedicated server as a virtual multiserver environment using OpenVZ with dedicated Web & MySQL, Email and DNS servers on Debian Squeeze. Also, you will learn how to maintain all these servers. As an addition, you will learn how to install some very useful packages on all of them, how to protect them and how to monitor them.

At the end you will have a fully functional virtual multiserver environment, ready for shared hosting.

I do not issue any guarantee that this will work for you!


1 Requirements

To follow this tutorial you will need the following:

  • a dedicated server
  • at least 5 IPs
  • a lot of time


2 Preliminary Note

In this tutorial I use this dedicated server: with the Flexi-Pack and an additional /28 subnet (14 IPs).

The goal is to have these servers:

  • Type: Node
  • Hardware: Dedicated
  • Hostname: root.example.tld
  • Type: Container
  • Hardware: Virtual
  • Hostname: web.example.tld
  • Type: Container
  • Hardware: Virtual
  • Hostname: mail.example.tld
  • Type: Container
  • Hardware: Virtual
  • Hostname: ns1.example.tld
  • Type: Container
  • Hardware: Virtual
  • Hostname: ns2.example.tld


3 The Base System

I assume you took the same dedicated server as I did. The Hetzner Web-Interface allows you to install a range of distributions. Take the minimal Debian 6.0 64-bit.

This will install the base system for you and you do not have to configurate it yourself. You will get the root password as well.


4 Installing OpenVZ + OVZ Web Panel

As soon as your server is ready, login using the received credentials. We first will do an update/upgrade:

apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade

which will upgrade our server to latest version.

We install some additional packages to:

apt-get -y install nano wget ntp ntpdate


4.1 Installing OpenVZ

We now want to install OpenVZ, the base for our virtual multiserver environment.

An OpenVZ kernel and the vzctl, vzquota, and vzdump packages are available in the Debian Squeeze repositories, so we can install them as follows:

apt-get install linux-image-openvz-amd64 vzctl vzquota vzdump

Create a symlink from /var/lib/vz to /vz to provide backward compatibility:

ln -s /var/lib/vz /vz

Open /etc/sysctl.conf and make sure that you have the following settings in it:

nano /etc/sysctl.conf

net.ipv4.conf.default.proxy_arp = 0
kernel.sysrq = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

If you needed to modify /etc/sysctl.conf, run

sysctl -p


The following step is important if the IP addresses of your virtual machines are from a different subnet than the host system's IP address. If you don't do this, networking will not work in the virtual machines!

Open /etc/vz/vz.conf and set NEIGHBOUR_DEVS to all:

nano /etc/vz/vz.conf

# Controls which interfaces to send ARP requests and modify APR tables on.

Finally, reboot the system:


If your system reboots without problems, then everything is fine!


uname -r

and your new OpenVZ kernel should show up:

[email protected]:~# uname -r

Since Hetzner mounts /home on a separate hard disk, we can use it as the OpenVZ backup location. To do so, run:

rm -rf /var/lib/vz/dump
ln -s /home/backup/vz /var/lib/vz/dump

As we will use fail2ban within our virtual containers, we have to enable some IPTables support for them. We do that by editing the /etc/vz/vz.conf file:

nano /etc/vz/vz.conf

Search the line starting with IPTABLES and comment it (#). Paste the following afterwards:

IPTABLES="ipt_REJECT ipt_tos ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_state"

Next, active the state module in the kernel:

modprobe xt_state


4.2 Installing OVZ Web Panel

The OpenVZ Web Panel is a GUI web-based frontend for controlling of the hardware and virtual servers with the OpenVZ virtualization technology.

The most simple way to install OpenVZ Web Panel is to run the following command:

wget -O - | sh

After installation Panel should be available by the following URL:


Default administrator's credentials are: admin/admin. Don't forget to change default password.

Share this page:

8 Comment(s)

Add comment

Please register in our forum first to comment.


By: Anonymous

thank you very much!

By: trambinux

Hi thanks for your howto, a little error here : /etc/vz/vz.conf :



must be




Oh, what an ugly typo. Fixed now - thanks :)


You will need to install these two gems to add another server  to the mix in OpenVZ Web Panel, Just an fyi 

gem install net-ssh
gem install net-sftp 


Do you have any reference confirming that (e.g. an OVZ issue ticket)? The installer should handle everything itself and I never had to install additional gems to get things up and running. 
Please let me know so I can recheck. Thanks!
 edit: found this// -> no need to install the gems...if you need to, therefor something really wrong.

By: Jorge Quiterio

On the

Alter from ruby to ruby1.8 for ap-get -y install on the line 88

  ************If you get ************ Setting up g++ (4:4.7.2-1) ...update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto modeSetting up build-essential (11.5) ...Setting up libstdc++6-4.7-dev (4.7.2-5) ...Checking presence of the command: ruby Fatal error: Panel requires Ruby 1.8 (Ruby 1.9 is not supported).************Check version ************ruby -vruby 1.9.3p194 (2012-04-20 revision 35410) [i486-linux] dpkg -l | grep "ruby1.8"ii  libruby1.8                           i386         Libraries necessary to run Ruby 1.8ii  ruby1.8                              i386         Interpreter of object-oriented scripting language Ruby 1.8ii  ruby1.8-dev                          i386         Header files for compiling extension modules for the Ruby 1.8************You Fixed it with  ************ update-alternatives --config rubyThere are 2 choices for the alternative ruby (providing /usr/bin/ruby).  Selection    Path                Priority   Status------------------------------------------------------------* 0            /usr/bin/ruby1.9.1   51        auto mode  1            /usr/bin/ruby1.8     50        manual mode  2            /usr/bin/ruby1.9.1   51        manual modePress enter to keep the current choice[*], or type selection number: 1update-alternatives: using /usr/bin/ruby1.8 to provide /usr/bin/ruby (ruby) in manual mode

By: Rev.mayeaux

After downloading the original ispconfig cpanel setup I got error due to the ububtu 17.10 and 17.04 upgrades which your main website said it could work... I have ag-2010 access gateway with pfsense firewall etc on it and 5 servers with a citrix load balancer and packeteer to shape the info running into a gigabit and a megabit switch for the 1st and 2nd NIC , after looking at this article with multiple servers I cannot decide on which one to us, I am looking to host my church website, email, blog, drupal website, running squid and lamp etc. I am at a loss as wether I need to make a server with bith NIC's a DNS server and another server a mail webserver etc... Does ispconfig have something to help... my servers are HP Proliant dl30 g4(2) as file servers, a DL 380G5 as my website and lamp server,a Dell2850 as a movie-video  server and a empty Dell 710 virtual server... so what and how can I set this up...thanks...