Servidor CentOS · 8 min read · Sep 22, 2025

O Servidor Perfeito – CentOS 7 (Apache2, Dovecot, ISPConfig 3)

Este tutorial mostra como preparar um servidor CentOS 7 x86_64 para a instalação do ISPConfig 3 e como instalar o ISPConfig 3. O ISPConfig 3 é um painel de controle de hospedagem na web que permite configurar os seguintes serviços através de um navegador: servidor web Apache, servidor de e-mail Postfix, MySQL, servidor de nomes BIND, PureFTPd, SpamAssassin, ClamAV, Mailman e muitos mais. Desde a versão 3.0.4, o ISPConfig vem com suporte total para o servidor web nginx além do Apache; este tutorial cobre a configuração de um servidor que usa Apache, não nginx.

Manual do ISPConfig 3

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

Em mais de 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 juntamente com exemplos de entradas válidas, e fornece tutoriais para as tarefas mais comuns no ISPConfig 3. Ele também descreve como tornar seu servidor mais seguro e vem com uma seção de solução de problemas no final.

1 Requisitos

Para instalar tal sistema, você precisará do seguinte:

  • Um sistema de servidor CentOS 7 minimal. Isso pode ser um servidor instalado do zero, conforme descrito em nosso tutorial de servidor minimal CentOS 7, ou um servidor virtual ou servidor raiz de uma empresa de hospedagem que tenha uma configuração minimal do CentOS 7 instalada.
  • Uma conexão de Internet rápida.

2 Nota Preliminar

Neste tutorial, uso o nome do host server1.example.com com o endereço IP 192.168.1.100 e o gateway 192.168.1.254. Essas configurações podem diferir para você, então você deve substituí-las onde apropriado.

3 Definir o layout do teclado

O instalador atual do CentOS 7 tem um bug, então você pode acabar com um layout de teclado diferente no shell do que o selecionado durante a instalação. Se você encontrar esse bug, pode mudar para o teclado correto (no meu caso “de” para um layout de teclado alemão) com o comando localectl:

localectl set-keymap de

Para obter uma lista de todos os keymaps disponíveis, execute:

localectl list-keymaps

Quero instalar o ISPConfig no final deste tutorial, que vem com seu próprio firewall. Por isso, desativo o firewall padrão do CentOS agora. Claro, você pode deixá-lo ativado e configurá-lo conforme suas necessidades (mas então você não deve usar nenhum outro firewall mais tarde, pois provavelmente interferirá com o firewall do CentOS).

Execute…

systemctl stop firewalld.service  
systemctl disable firewalld.service

Agora vou instalar algumas ferramentas de rede básicas e um editor baseado em shell que precisamos nos próximos passos:

yum -y install nano wget net-tools NetworkManager-tui

Se você não configurou sua placa de rede durante a instalação, pode fazer isso agora. Execute…

nmtui

… e vá para Editar uma conexão:

Selecione sua interface de rede:

Em seguida, preencha os detalhes da sua rede - desative o DHCP e preencha um endereço IP estático, uma máscara de rede, seu gateway e um ou dois servidores de nomes, depois clique em Ok:

Em seguida, selecione OK para confirmar as alterações que você fez nas configurações de rede

e Sair para fechar a ferramenta de configuração de rede nmtui.

Você deve executar

ifconfig

agora para verificar se o instalador obteve seu endereço IP corretamente:

[root@server1 ~]# ifconfig
ens33: flags=4163  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fecd:cc52  prefixlen 64  scopeid 0x20

        ether 00:0c:29:cd:cc:52  txqueuelen 1000  (Ethernet)
        RX packets 55621  bytes 79601094 (75.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28115  bytes 2608239 (2.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Se sua placa de rede não aparecer lá, então ela não está habilitada na inicialização. Nesse caso, abra o arquivo /etc/sysconfig/network-scripts/ifcfg-eth0

nano /etc/sysconfig/network-scripts/ifcfg-ens33

e defina ONBOOT como yes:

[...]  
ONBOOT=yes  
[...]  

e reinicie o servidor.

Verifique seu /etc/resolv.conf se ele lista todos os servidores de nomes que você configurou anteriormente:

cat /etc/resolv.conf

Se os servidores de nomes estiverem faltando, execute

nmtui

e adicione os servidores de nomes que faltam novamente.

Agora, para a configuração…

4 Ajustar /etc/hosts

Em seguida, editamos /etc/hosts. Deixe assim:

nano /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4  
192.168.1.100   server1.example.com     server1  
  
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

5 Configurar o Firewall

(Você pode pular este capítulo se já tiver desativado o firewall no final da instalação do sistema básico.)

Quero instalar o ISPConfig no final deste tutorial, que vem com seu próprio firewall. Por isso, desativo o firewall padrão do CentOS agora. Claro, você pode deixá-lo ativado e configurá-lo conforme suas necessidades (mas então você não deve usar nenhum outro firewall mais tarde, pois provavelmente interferirá com o firewall do CentOS).

Execute

systemctl stop firewalld.service  
systemctl disable firewalld.service

e desative o firewall.

Para verificar se o firewall foi realmente desativado, você pode executar

iptables -L

depois. A saída deve ser assim:

[root@server1 ~]# iptables -L  
Chain INPUT (policy ACCEPT)  
target prot opt source destination
Chain FORWARD (policy ACCEPT)  
target prot opt source destination
Chain OUTPUT (policy ACCEPT)  
target prot opt source destination

Ou use o comando firewall-cmd:

firewall-cmd --state
[root@server1 ~]# firewall-cmd --state  
not running  
[root@server1 ~]#

6 Desativar SELinux

SELinux é uma extensão de segurança do CentOS que deve fornecer segurança estendida. Na minha opinião, você não precisa disso para configurar um sistema seguro, e geralmente causa mais problemas do que vantagens (pense nisso depois de ter feito uma semana de solução de problemas porque algum serviço não estava funcionando como esperado, e então você descobre que tudo estava ok, apenas o SELinux estava causando o problema). Portanto, eu o desativo (isso é obrigatório se você quiser instalar o ISPConfig mais tarde).

Edite /etc/selinux/config e defina SELINUX=disabled:

nano /etc/selinux/config
# Este arquivo controla o estado do SELinux no sistema.
# SELINUX= pode assumir um destes três valores:
#     enforcing - A política de segurança do SELinux é aplicada.
#     permissive - O SELinux imprime avisos em vez de aplicar.
#     disabled - Nenhuma política do SELinux é carregada.
SELINUX=disabled
# SELINUXTYPE= pode assumir um destes dois valores:
#     targeted - Processos direcionados são protegidos,
#     mls - Proteção de Segurança de Múltiplos Níveis.
SELINUXTYPE=targeted

Depois, devemos reiniciar o sistema:

reboot

7 Habilitar Repositórios Adicionais e Instalar Alguns Softwares

Primeiro, importamos as chaves GPG para pacotes de software:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Em seguida, habilitamos o repositório EPEL em nosso sistema CentOS, pois muitos dos pacotes que vamos instalar no decorrer deste tutorial não estão disponíveis no repositório oficial do CentOS 7:

rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm
yum -y install yum-priorities

Edite /etc/yum.repos.d/epel.repo…

nano /etc/yum.repos.d/epel.repo

… e adicione a linha priority=10 à seção [epel]:

[epel]
name=Pacotes Extras para Linux Empresarial 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
priority=10
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[...]

Em seguida, atualizamos nossos pacotes existentes no sistema:

yum update

Agora instalamos alguns pacotes de software que são necessários mais tarde:

yum -y groupinstall 'Development Tools'

8 Quota

(Se você escolheu um esquema de particionamento diferente do que eu, deve ajustar este capítulo para que a quota se aplique às partições onde você precisa dela.)

Para instalar quota, executamos este comando:

yum -y install quota

Agora verificamos se a quota já está habilitada para o sistema de arquivos onde os dados do site (/var/www) e do maildir (var/vmail) estão armazenados. Neste exemplo, tenho uma grande partição raiz, então procuro por ‘ / ‘:

mount | grep ' / '
[root@server1 ~]# mount | grep ' / '  
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)  
[root@server1 ~]#

Se você tiver uma partição separada /var, então use:

mount | grep ' /var '

em vez disso. Se a linha contiver a palavra “ noquota “, então prossiga com os seguintes passos para habilitar a quota.

Habilitando quota na partição / (raiz)

Normalmente você habilitaria a quota no arquivo /etc/fstab, mas se o sistema de arquivos for o sistema de arquivos raiz “/“, então a quota deve ser habilitada por um parâmetro de inicialização do Kernel Linux.

Edite o arquivo de configuração do grub:

nano /etc/default/grub

procure pela linha que começa com GRUB_CMDLINE_LINUX e adicione rootflags=uquota,gquota aos parâmetros da linha de comando para que a linha resultante fique assim:

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto  vconsole.keymap=us rhgb quiet rootflags=uquota,gquota"

e aplique as alterações executando o seguinte comando.

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak  
grub2-mkconfig -o /boot/grub2/grub.cfg

e reinicie o servidor.

reboot

Agora verifique se a quota está habilitada:

mount | grep ' / '
[root@server1 ~]# mount | grep ' / '  
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)  
[root@server1 ~]#

Quando a quota está ativa, podemos ver “ usrquota,grpquota “ na lista de opções de montagem.

Habilitando quota em uma partição /var separada

Se você tiver uma partição /var separada, então edite /etc/fstab e adicione ,uquota,gquota à partição / ( /dev/mapper/centos-var):

nano /etc/fstab
  
#  
# /etc/fstab  
# Criado pelo anaconda em Dom Set 21 16:33:45 2014  
#  
# Sistemas de arquivos acessíveis, por referência, são mantidos sob '/dev/disk'  
# Veja as páginas do manual fstab(5), findfs(8), mount(8) e/ou blkid(8) para mais informações  
#  
/dev/mapper/centos-root /                       xfs     defaults        1 1  
/dev/mapper/centos-var /var                     xfs     defaults,uquota,gquota        1 2  
UUID=9ac06939-7e43-4efd-957a-486775edd7b4 /boot                   xfs     defaults        1 3  
/dev/mapper/centos-swap swap                    swap    defaults        0 0

Em seguida, execute

mount -o remount /var
quotacheck -avugm  
quotaon -avug

para habilitar a quota.

9 Instalar Apache, MySQL, phpMyAdmin

Podemos instalar os pacotes necessários com um único comando:

yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadmin
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.