Servidor Multiserver · 8 min read · Jan 05, 2026

Instalando Uma Configuração Multiserver Com Servidores Dedicados de Web, Email, DNS E Banco de Dados MySQL No Debian 5.0 Com ISPConfig 3

Instalando Uma Configuração Multiserver Com Servidores Dedicados de Web, Email, DNS E Banco de Dados MySQL No Debian 5.0 Com ISPConfig 3

Versão 1.0
Autor: Till Brehm

Este tutorial descreve a instalação de uma configuração multiserver ISPConfig 3 com servidores dedicados de web, email, banco de dados e dois servidores DNS, todos gerenciados através de um único painel de controle ISPConfig 3. A configuração descrita abaixo usa cinco servidores e pode ser facilmente expandida para um número maior de servidores, apenas adicionando mais servidores. Por exemplo, se você quiser ter dois servidores de email, siga os passos de configuração do capítulo 2 em ambos esses servidores. Se você quiser configurar mais servidores web, então instale o ISPConfig em todos os outros servidores web em modo especialista, exceto o primeiro.

Para aprender a usar o ISPConfig 3, recomendo fortemente baixar o Manual do ISPConfig 3.

Em quase 300 páginas, ele cobre o conceito por trás do ISPConfig (administradores, revendedores, clientes), explica como instalar e atualizar o ISPConfig 3, inclui uma referência para todos os formulários e campos de formulário no ISPConfig junto com exemplos de entradas válidas, e fornece tutoriais para as tarefas mais comuns no ISPConfig 3. Também descreve como tornar seu servidor mais seguro e vem com uma seção de solução de problemas no final.

1 Instalando Os Cinco Sistemas Base Debian

Nesta configuração, haverá um servidor mestre (que executa o servidor web e a interface do painel de controle ISPConfig) e quatro servidores escravos para banco de dados, email e DNS.

Para instalar a configuração em cluster, precisamos de cinco servidores (ou servidores virtuais) com uma instalação mínima do Debian 5.0. A configuração base é descrita no seguinte tutorial nos passos 1 - 6:

https://www.howtoforge.com/perfect-server-debian-lenny-ispconfig3

Instale apenas os passos 1 - 6 do tutorial do servidor perfeito e não os outros passos, pois eles diferem para uma configuração em cluster!

No meu exemplo, uso os seguintes nomes de host e endereços IP para os cinco servidores:

Servidor Web

Hostname: web.example.tld
IP address: 192.168.0.105

Servidor de Email

Hostname: mail.example.tld
IP address: 192.168.0.106

Servidor DB

Hostname: db.example.tld
IP address: 192.168.0.107

Servidor DNS (primário)

Hostname: ns1.example.tld
IP address: 192.168.0.108

Servidor DNS (secundário)

Hostname: ns2.example.tld
IP address: 192.168.0.109

Onde quer que esses nomes de host ou endereços IP ocorram nos próximos passos de instalação, você terá que alterá-los para corresponder aos IPs e nomes de host dos seus servidores.

2 Instalando O Servidor Web

Edite o arquivo hosts e adicione os endereços IP e nomes de host para todos os servidores. Os nomes de host e endereços IP devem ser ajustados para corresponder à sua configuração.

vi /etc/hosts
127.0.0.1       localhost
192.168.0.105   web.example.tld
192.168.0.106   mail.example.tld
192.168.0.107   db.example.tld
192.168.0.108   ns1.example.tld
192.168.0.109   ns2.example.tld
 
# As linhas a seguir são desejáveis para hosts compatíveis com IPv6
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Defina o nome do servidor: echo web.example.tld > /etc/hostname
/etc/init.d/hostname.sh start

Edite o arquivo sources.list…

vi /etc/apt/sources.list 

… e certifique-se de que contém a seguinte linha para habilitar o repositório volátil.

deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

Execute…

 apt-get update

… para atualizar o banco de dados de pacotes apt; em seguida, execute…

apt-get upgrade

… para instalar as últimas atualizações (se houver).

É uma boa ideia sincronizar o relógio do sistema com um servidor NTP ( n etwork t ime p rotocol) pela Internet. Basta executar…

apt-get -y install ntp ntpdate

… e seu horário do sistema estará sempre sincronizado.

Instale o servidor MySQL. Uma instância do servidor MySQL é necessária em cada servidor, pois o ISPConfig o utiliza para sincronizar a configuração entre os servidores.

apt-get -y install mysql-client mysql-server

Digite a nova senha para o MySQL quando solicitado pelo instalador.

Queremos que o MySQL escute em todas as interfaces no servidor mestre, não apenas no localhost, portanto, editamos /etc/mysql/my.cnf e comentamos a linha bind-address = 127.0.0.1:

vi /etc/mysql/my.cnf
[...]  
# Em vez de skip-networking, o padrão agora é escutar apenas em  
# localhost, que é mais compatível e não é menos seguro.  
#bind-address           = 127.0.0.1  
[...] 

Em seguida, reinicie o MySQL:

/etc/init.d/mysql restart

Agora instale o Apache2, PHP5, phpMyAdmin, FCGI, suExec, Pear e mcrypt da seguinte forma:

apt-get -y install apache2 apache2.2-common apache2-doc   apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5   php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli   php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth   php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby sudo 

Você verá a seguinte pergunta:

Servidor web para reconfigurar automaticamente: <– apache2

Em seguida, execute o seguinte comando para habilitar os módulos do Apache suexec, rewrite, ssl, actions e include:

a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digest

PureFTPd e quota podem ser instalados com o seguinte comando:

apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool

Edite /etc/fstab. O meu se parece com isso (adicionei,usrquota,grpquota à partição com o ponto de montagem /):

vi /etc/fstab

| # /etc/fstab: informações estáticas do sistema de arquivos. # # proc /proc proc defaults 0 0 /dev/sda1 / ext3 errors=remount-ro,usrquota,grpquota 0 1 /dev/sda5 none swap sw 0 0 /dev/hda /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 |

Para habilitar quota, execute estes comandos:

touch /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /

quotacheck -avugm
quotaon -avug

Instale vlogger, webalizer e awstats:

apt-get -y install vlogger webalizer awstats 

Instale Jailkit: Jailkit é necessário apenas se você quiser chroot usuários SSH. Ele pode ser instalado da seguinte forma (importante: Jailkit deve ser instalado antes do ISPConfig - não pode ser instalado depois!):

apt-get -y install build-essential autoconf automake1.9 libtool flex bison

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.11.tar.gz
tar xvfz jailkit-2.11.tar.gz
cd jailkit-2.11
./configure
make
make install
cd ..
rm -rf jailkit-2.11*

Instale fail2ban: Isso é opcional, mas recomendado, porque o monitor do ISPConfig tenta mostrar o log:

apt-get install fail2ban

Em seguida, instalaremos o ISPConfig 3. Para obter a URL de download da versão estável mais recente do ISPConfig 3, visite o site do ISPConfig: http://www.ispconfig.org/ispconfig-3/download/

Este servidor é o servidor mestre em nossa configuração que executa a interface do painel de controle ISPConfig. Para permitir que as outras instâncias do MySQL se conectem ao banco de dados MySQL neste nó durante a instalação, precisamos adicionar registros de usuário root do MySQL no banco de dados mestre para cada nome de host e endereço IP do servidor escravo. A maneira mais fácil de fazer isso é usar a ferramenta de administração baseada na web phpmyadmin que já instalamos. Abra a URL http://192.168.0.105/phpmyadmin em um navegador da web, faça login como usuário root do MySQL e execute estas consultas MySQL:

CREATE USER ‘root’@’192.168.0.106’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.106’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’192.168.0.107’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.107’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’192.168.0.108’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.108’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’192.168.0.109’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.0.109’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’mail.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’mail.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’db.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’db.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’ns1.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’ns1.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE USER ‘root’@’ns2.example.tld’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’ns2.example.tld’ IDENTIFIED BY ‘myrootpassword’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

Nos comandos sql acima, substitua os endereços IP ( 192.168.0.106 - 192.168.0.109) pelos endereços IP dos seus servidores e substitua mail.example.tld, db.example.tld, ns1.example.tld e ns2.example.tld pelos nomes de host dos seus servidores e myrootpassword pela senha root desejada.

Clique no botão de recarregar permissões ou reinicie o MySQL. Em seguida, feche o phpmyadmin.

Volte para o shell de server1.example.tld e baixe a versão estável mais recente do ISPConfig 3:

cd /tmp
wget
http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

Em seguida, inicie o script de instalação:

php -q install.php

Selecione o idioma (en,de) [en]: <– en
Modo de instalação (padrão, especialista) [padrão]: <– especialista
Nome de host totalmente qualificado (FQDN) do servidor, ex: server2.domain.tld [web.example.tld]: <– web.example.tld
Nome do servidor MySQL [localhost]: <– localhost
Nome de usuário root do MySQL [root]: <– root
Senha root do MySQL []: <– Digite sua senha root do MySQL aqui
Banco de dados MySQL a ser criado [dbispconfig]: <– dbispconfig
Charset MySQL [utf8]: <– utf8
Este servidor deve se juntar a uma configuração multiserver ISPConfig existente (y,n) [n]: <– n
Configurar Email (y,n) [y]: <– n
Configurar Jailkit (y,n) [y]: <– y
Configurar Servidor FTP (y,n) [y]: <– y
Configurar Servidor DNS (y,n) [y]: <– n
Configurar Servidor Apache (y,n) [y]: <– y
Configurar Servidor Firewall (y,n) [y]: <–y
Instalar Interface Web do ISPConfig (y,n) [y]: <–y
Porta ISPConfig [8080]: <– 8080

Limpe os diretórios de instalação:

rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.