Servidor Virtual · 12 min read · Dec 17, 2025
Ambiente Virtual Multiserver Com Servidores Dedicados de Web & MySQL, Email & DNS No Debian Squeeze Com ISPConfig 3 - Página 2
5 Criando Os Servidores Virtuais
Agora usaremos o Painel Web OVZ para criar nossos servidores virtuais. Faça login no painel e adicione seus IPs em Endereços IP. Em seguida, clique em localhost e Modelos de SO.
Agora precisamos baixar um modelo para nossos servidores virtuais. Fazemos isso clicando em Instalar Novo Modelo de SO -> Contribuído e selecionamos debian-6.0-amd64-minimal.
Agora volte para localhost e clique em Criar servidor virtual. Preencha os campos conforme abaixo:
- ID do Servidor (VEID): um número (eu escolheria a última parte do seu IP, então 2 para o primeiro)
- Modelo de SO: já selecionado o correto
- Modelo de Servidor: ilimitado
- Endereço IP: 192.168.1.2
- Nome do Host: web.example.tld
- Servidor DNS: 8.8.4.4 8.8.8.8 (que são os DNS do Google)
- deixe o resto como está e atribua Espaço em Disco, RAM e CPU como desejar…
Repita esta etapa para todos os seus servidores virtuais (finalmente 4 vezes: Web, Mail, 2x DNS).
5.1 Preparando Os Servidores Virtuais
Agora você deve fazer login em cada servidor virtual e executar estes comandos:
apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade
apt-get -y install nano wget ntp ntpdate
que irá atualizá-los para a versão mais recente e instalar alguns pacotes ausentes.
6 Instalando Os Servidores Dedicados
6.1 Instalando O Servidor Web/DB
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.
nano /etc/hosts
127.0.0.1 localhost
192.168.1.2 web.example.tld
192.168.1.3 mail.example.tld
192.168.1.4 ns1.example.tld
192.168.1.5 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-allhostsDefina o nome do host do servidor:
echo web.example.tld > /etc/hostname
/etc/init.d/hostname.sh start
Instale o servidor MySQL. Uma instância do servidor MySQL é necessária em cada servidor, pois o ISPConfig a 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 em localhost, portanto, editamos /etc/mysql/my.cnf e comentamos a linha bind-address = 127.0.0.1:
nano /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 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 zip wget
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, headers, expires e include:
a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digest headers expires
PureFTPd pode ser instalado com o seguinte comando:
apt-get -y install pure-ftpd-common pure-ftpd-mysql
Edite o arquivo /etc/default/pure-ftpd-common…
vi /etc/default/pure-ftpd-common
… e certifique-se de que virtualchroot está definido como VIRTUALCHROOT=true:
[...]
VIRTUALCHROOT=true
[...] Agora configuramos o PureFTPd para permitir sessões FTP e TLS. FTP é um protocolo muito inseguro porque todas as senhas e todos os dados são transferidos em texto claro. Ao usar TLS, toda a comunicação pode ser criptografada, tornando o FTP muito mais seguro.
Se você quiser permitir sessões FTP e TLS, execute
echo 1 > /etc/pure-ftpd/conf/TLS
Para usar TLS, devemos criar um certificado SSL. Eu o crio em /etc/ssl/private/, portanto, primeiro crio esse diretório:
mkdir -p /etc/ssl/private/
Depois, podemos gerar o certificado SSL da seguinte forma:
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Nome do País (código de 2 letras) [AU]: <– Digite o Nome do Seu País (por exemplo, “DE”).
Nome do Estado ou Província (nome completo) [Some-State]: <– Digite o Nome do Seu Estado ou Província.
Nome da Localidade (por exemplo, cidade) []: <– Digite Sua Cidade.
Nome da Organização (por exemplo, empresa) [Internet Widgits Pty Ltd]: <– Digite o Nome da Sua Organização (por exemplo, o nome da sua empresa).
Nome da Unidade Organizacional (por exemplo, seção) []: <– Digite o Nome da Sua Unidade Organizacional (por exemplo, “Departamento de TI”).
Nome Comum (por exemplo, SEU nome) []: <– Digite o Nome de Domínio Totalmente Qualificado do sistema (por exemplo, “web.example.tld”).
Endereço de Email []: <– Digite Seu Endereço de Email.
Altere as permissões do certificado SSL:
chmod 600 /etc/ssl/private/pure-ftpd.pem
Instale vlogger, webalizer e awstats:
apt-get -y install vlogger webalizer awstats
Abra /etc/cron.d/awstats depois…
vi /etc/cron.d/awstats
… e comente ambas as tarefas cron nesse arquivo:
#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh
# Gerar relatórios estáticos:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.shInstale Jailkit: Jailkit é necessário apenas se você quiser chroot usuários SSH. 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 debhelper
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./debian/rules binary
cd ..
dpkg -i jailkit2.14-1.deb
rm -rf jailkit-2.14
Instale fail2ban: Isso é opcional, mas recomendado, porque o monitor do ISPConfig tenta mostrar o log:
apt-get install fail2ban
Para fazer o fail2ban monitorar o PureFTPd, crie o arquivo /etc/fail2ban/jail.local:
vi /etc/fail2ban/jail.local
[pureftpd]
enabled = true
port = ftp
filter = pureftpd
logpath = /var/log/syslog
maxretry = 3Em seguida, crie o seguinte arquivo de filtro:
vi /etc/fail2ban/filter.d/pureftpd.conf
[Definition]
failregex = .*pure-ftpd: \(.*@\) \[WARNING\] Authentication failed for user.*
ignoreregex = Reinicie o fail2ban depois:
/etc/init.d/fail2ban restart
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.1.2/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.1.3’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.1.3’ 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.1.4’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.1.4’ 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.1.5’ IDENTIFIED BY ‘myrootpassword’;
GRANT ALL PRIVILEGES ON . TO ‘root’@’192.168.1.5’ 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’@’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.1.3 - 192.168.1.5) pelos endereços IP dos seus servidores e substitua mail.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 web.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 do host totalmente qualificado (FQDN) do servidor, por exemplo, server2.domain.tld [web.example.tld]: <– web.example.tld
Nome do host 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 existente do ISPConfig (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 de Firewall (y,n) [y]: <–n
Instalar Interface Web do ISPConfig (y,n) [y]: <–y
Porta do ISPConfig [8080]: <– 8080
Habilitar SSL para a interface web do ISPConfig (y,n) [y]: <– y
Nome do País (código de 2 letras) [AU]: <– ENTER
Nome do Estado ou Província (nome completo) [Some-State]: <– ENTER
Nome da Localidade (por exemplo, cidade) []: <– ENTER
Nome da Organização (por exemplo, empresa) [Internet Widgits Pty Ltd]: <– ENTER
Nome da Unidade Organizacional (por exemplo, seção) []: <– ENTER
Nome Comum (por exemplo, SEU nome) []: <– ENTER
Endereço de Email []: <– ENTER
Uma senha de desafio []: <– ENTER
Um nome de empresa opcional []: <– ENTER
Limpe os diretórios de instalação:
cd /tmp
rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz
6.2 Instalando O Servidor de Email
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.
nano /etc/hosts
127.0.0.1 localhost
192.168.1.2 web.example.tld
192.168.1.3 mail.example.tld
192.168.1.4 ns1.example.tld
192.168.1.5 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-allhostsDefina o nome do host do servidor:
echo mail.example.tld > /etc/hostname
echo mail.example.tld > /etc/mailname
/etc/init.d/hostname.sh start
Instale postfix, dovecot e MySQL com um único comando:
apt-get -y install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d
Digite a nova senha para mysql quando solicitado pelo instalador e responda às próximas perguntas conforme descrito abaixo:
Tipo geral de configuração? <– Site da Internet
Nome do email? <– mail.example.tld
Para instalar amavisd-new, SpamAssassin e ClamAV, executamos:
apt-get -y install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
Se você quiser usar listas de discussão em seu servidor, então instale mailman. Esta etapa é opcional. mailman requer um servidor web apache, então se você não quiser executar uma instância apache em seu servidor de email, então não instale mailman.
apt-get -y install mailman
O instalador apt para mailman irá perguntar então para você selecionar os idiomas para a lista de discussão. Ative todos os idiomas que você deseja usar para mailman. Em seguida, crie a lista de discussão “mailman”.
newlist mailman
e insira o endereço de email e a nova senha para o administrador da lista de discussão. Essa é a última etapa da instalação do mailman. O próximo comando para instalar php deve ser executado em cada servidor, independentemente se você instalou mailman ou não.
Em seguida, instale a versão de linha de comando do PHP para poder executar scripts shell baseados em PHP para o ISPConfig:
apt-get -y install php5-cli php5-mysql php5-mcrypt mcrypt
Instale fail2ban: Isso é opcional, mas recomendado, porque o monitor do ISPConfig tenta mostrar o log:
apt-get install fail2ban
Para fazer o fail2ban monitorar o PureFTPd e o Dovecot, crie o arquivo /etc/fail2ban/jail.local:
vi /etc/fail2ban/jail.local
[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5Em seguida, crie o seguinte arquivo de filtro:
vi /etc/fail2ban/filter.d/dovecot-pop3imap.conf
[Definition]
failregex = (?: pop3-login|imap-login): .*(?:Authentication failure|Aborted login \(auth failed|Aborted login \(tried to use disabled|Disconnected \(auth failed|Aborted login \(\d+ authentication attempts).*rip=(?P\S*),.*
ignoreregex = Reinicie o fail2ban depois:
/etc/init.d/fail2ban restart
Agora vou instalar o ISPConfig 3 neste servidor. 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/
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 do host totalmente qualificado (FQDN) do servidor, por exemplo, server1.domain.tld [mail.example.tld]: <– mail.example.tld
Nome do host 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 existente do ISPConfig (y,n) [n]: <– y
Nome do host do servidor mestre MySQL []: <– web.example.tld
Nome de usuário root do servidor mestre MySQL [root]: <– root
Senha root do servidor mestre MySQL []: <– Digite a senha root do servidor mestre aqui
Nome do banco de dados do servidor mestre MySQL [dbispconfig]: <– dbispconfig
Configurar Email (y,n) [y]: <– y
Nome do País (código de 2 letras) [AU]: <– DE (Digite o código do país ISO onde você mora aqui)
Nome do Estado ou Província (nome completo) [Some-State]: <– Niedersachsen (Digite o estado onde você mora aqui)
Nome da Localidade (por exemplo, cidade) []: <– Lueneburg (Digite a cidade aqui)
Nome da Organização (por exemplo, empresa) [Internet Widgits Pty Ltd]: <– ENTER
Nome da Unidade Organizacional (por exemplo, seção) []: <– ENTER
Nome Comum (por exemplo, SEU nome) []: <– ENTER
Endereço de Email []: <– ENTER
Configurar Jailkit (y,n) [y]: <– n
Configurar Servidor FTP (y,n) [y]: <– n
Configurar Servidor DNS (y,n) [y]: <– n
Configurar Servidor Apache (y,n) [y]: <– n
Configurar Servidor de Firewall (y,n) [y]: <–n
Instalar Interface Web do ISPConfig (y,n) [y]: <–n
Execute…
rm -f /var/www/ispconfig
… para remover o link da interface do ISPConfig no diretório /var/www.
Limpe os diretórios de instalação:
rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.