Configuração de Servidor · 6 min read · Sep 08, 2025

Configuração Perfeita de Multiserver ISPConfig no Ubuntu 24.04 e Debian 12

Este tutorial irá guiá-lo na instalação da sua própria configuração multiserver ISPConfig 3 com servidores dedicados para o painel, web, DNS, e-mail e webmail. O servidor DNS terá um servidor espelho para redundância. Você pode facilmente adicionar mais servidores de um determinado tipo depois.

O autoinstalador oficial do ISPConfig será usado para configurar os servidores. O Debian 12 será usado como sistema operacional. O guia também foi testado com o Ubuntu 24.04.

O autoinstalador possui várias opções de linha de comando para ajustar a configuração.

Você pode visualizar todos os argumentos com:

wget -O - https://get.ispconfig.org | sh -s -- --help

Você pode ler mais sobre o autoinstalador aqui.

1. Nota Preliminar

Estes serão os hosts que estamos instalando:

host         FQDN                     IP  
panel        panel.example.com       10.0.64.12  
web01       web01.example.com       10.0.64.13  
mx1         mx1.example.com         10.0.64.14  
ns1         ns1.example.com         10.0.64.15  
ns2         ns2.example.com         10.0.64.16  
webmail     webmail.example.com     10.0.64.17

Usaremos nomes de host, endereços IP e intervalos de IP de exemplo. Certifique-se de alterá-los conforme necessário em seus comandos/configuração.

Todos os servidores estão na mesma rede privada, mas têm seu próprio IP público. Se seus servidores não tiverem uma rede local compartilhada, use seus endereços IPv4 públicos.

Antes de iniciar a instalação de um servidor, configure um registro A e eventual registro AAAA que aponte para o IP público do seu servidor. Por exemplo, se o nome do host for panel.example.com e o IP público for 11.22.33.44, você deve configurar um registro A para panel.example.com apontando para 11.22.33.44. Cada servidor deve ter seu próprio IP público e nome de host. **

2. Instalando o servidor mestre

Faça login como root ou execute

su -

para se tornar o usuário root em seu servidor antes de prosseguir. IMPORTANTE: Você deve usar ‘su -‘ e não apenas ‘su’, caso contrário, sua variável PATH será configurada incorretamente pelo Debian.

2.1 Configurar o nome do host e hosts

O nome do host do seu servidor deve ser um subdomínio como “panel.example.com”. Não use um nome de domínio sem uma parte de subdomínio como “example.com” como nome de host, pois isso causará problemas mais tarde com sua configuração de e-mail. Primeiro, você deve verificar o nome do host em /etc/hosts e alterá-lo quando necessário. A linha deve ser: “Endereço IP - espaço - nome completo do host incluindo domínio - espaço - parte do subdomínio”. Para nosso nome de host panel.example.com, o arquivo deve parecer com isso (algumas linhas podem ser diferentes, pode variar por provedor de hospedagem):

nano /etc/hosts
127.0.0.1 localhost.localdomain   localhost  
# Esta linha deve ser alterada em cada nó para o nome do servidor correto:  
127.0.1.1 panel.example.com panel  
# Estas linhas são as mesmas em cada nó:
10.0.64.12 panel.example.com panel  
10.0.64.13 web01.example.com web01  
10.0.64.14 mx1.example.com mx1  
10.0.64.15 ns1.example.com ns1  
10.0.64.16 ns2.example.com ns2  
10.0.64.17 webmail.example.com webmail

# As seguintes linhas são desejáveis para hosts compatíveis com IPv6
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Como você pode ver, adicionamos os nomes dos nossos outros servidores também, para que eles possam se comunicar pela rede interna mais tarde.

Em seguida, edite o arquivo /etc/hostname:

nano /etc/hostname

Ele deve conter apenas a parte do subdomínio, no nosso caso:

panel

Finalmente, reinicie o servidor para aplicar a alteração:

systemctl reboot

Faça login novamente e verifique se o nome do host está correto agora com estes comandos:

hostname  
hostname -f

A saída deve ser assim:

root@panel:~$ hostname  
panel  
root@panel:~$ hostname -f  
panel.example.com

Agora podemos executar o autoinstalador para instalar todos os pacotes necessários e o ISPConfig:

wget -O - https://get.ispconfig.org | sh -s -- --no-mail --no-dns --use-php=system

Após algum tempo, você verá:

WARNING! This script will reconfigure your complete server!  
It should be run on a freshly installed server and all current configuration that you have done will most likely be lost!  
Type 'yes' if you really want to continue:

Responda “sim” e pressione enter. O instalador agora começará.

Quando o instalador terminar, ele mostrará a senha do administrador do ISPConfig e a senha root do MySQL assim:

[INFO] Your ISPConfig admin password is: 5GvfSSSYsdfdYC  
[INFO] Your MySQL root password is: kkAkft82d!kafMwqxdtYs

Certifique-se de anotar essas informações, juntamente com o servidor para o qual são, pois você precisará delas mais tarde.

2.2 Configurando os usuários MySQL remotos para nossos servidores escravos

Faremos login no MySQL para permitir que os outros servidores se conectem ao banco de dados ISPConfig neste nó durante a instalação, adicionando registros de usuário root do MySQL no banco de dados mestre para cada nome de host e endereço IP do servidor escravo.

No terminal, execute

mysql -u root -p

Digite sua senha do MySQL e, em seguida, execute os seguintes comandos:

CREATE USER 'root'@'10.0.64.13' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.13' 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'@'10.0.64.14' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.14' 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'@'10.0.64.15' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.15' 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'@'10.0.64.15' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.15' 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'@'10.0.64.16' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'10.0.64.16' 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'@'web01.example.com' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'web01.example.com' 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'@'mx1.example.com' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'mx1.example.com' 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.com' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'ns1.example.com' 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.com' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'ns2.example.com' 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'@'webmail.example.com' IDENTIFIED BY 'myrootpassword';  
GRANT ALL PRIVILEGES ON * . * TO 'root'@'webmail.example.com' 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 (10.0.64.12 - 10.0.64.16) pelos endereços IP dos seus servidores, web01.example.com, mx1.example.com, ns1.example.com, ns2.example.com e webmail.example.com pelos nomes de host dos seus servidores e myrootpassword pela senha root desejada (é uma boa prática usar uma senha diferente para cada host. Anote-as, pois você precisará delas mais tarde ao instalar ou atualizar seus servidores escravos).

Quando isso estiver feito, você pode sair do MySQL com:

EXIT;

Agora você pode fazer login no ISPConfig em https://panel.example.com:8080 com o nome de usuário admin e a senha que o instalador mostrou para você.

2.3 Configurando o firewall

A última coisa a fazer é configurar nosso firewall.

Faça login na interface do ISPConfig e vá para Sistema -> Firewall. Em seguida, clique em “Adicionar novo registro de firewall”.

Para o servidor do painel, precisamos abrir as seguintes portas:

TCP:

22,80,443,8080,8081

Nenhuma porta UDP precisa ser aberta pela interface.

Também vamos abrir a porta 3306, que é usada para MySQL, mas apenas da nossa rede local por razões de segurança. Para fazer isso, execute o seguinte comando a partir da CLI, após a alteração do painel do ISPConfig ser propagada (quando o ponto vermelho desaparecer):

ufw allow from 10.0.64.0/24 to any port 3306 proto tcp

Seu painel agora está configurado e pronto para uso.

No próximo passo, instalaremos o servidor web.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.