Servidor CentOS · 8 min read · Sep 23, 2025

O Servidor Perfeito CentOS 7.3 com Apache, Postfix, Dovecot, Pure-FTPD, BIND e ISPConfig 3.1

Este tutorial mostra a instalação do ISPConfig 3.1 em um servidor CentOS 7.3 (64Bit). O ISPConfig é 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.

1 Requisitos

Para instalar um sistema como este, você precisará do seguinte:

  • Um sistema servidor CentOS 7.3 minimal. Isso pode ser um servidor instalado do zero, conforme descrito em nosso tutorial de servidor minimal CentOS 7.3, ou um servidor virtual ou servidor raiz de uma empresa de hospedagem que tenha uma configuração minimal do CentOS 7.3 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.1. Essas configurações podem diferir para você, então você deve substituí-las onde apropriado.

Por favor, note que HHVM e XMPP ainda não são suportados no ISPConfig para a plataforma CentOS. Se você deseja gerenciar um servidor de chat XMPP a partir do ISPConfig ou usar HHVM (Hip Hop Virtual Machine) em um site do ISPConfig, então use Debian 8 ou Ubuntu 16.04 como sistema operacional do servidor em vez do CentOS 7.3.

3 Preparar o servidor

Definir o layout do teclado

Caso o layout do teclado do servidor não corresponda ao seu teclado, você pode alternar 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 layouts de teclado disponíveis, execute:

localectl list-keymaps

Quero instalar o ISPConfig ao final deste tutorial, o ISPConfig vem com o script de firewall Bastille que usarei como firewall, portanto, desativo o firewall padrão do CentOS agora. Claro, você é livre para deixar o firewall do CentOS ativo e configurá-lo de acordo com suas necessidades (mas então você não deve usar nenhum outro firewall mais tarde, pois provavelmente interferirá com o firewall do CentOS).

Execute…

yum -y install net-tools  
systemctl stop firewalld.service  
systemctl disable firewalld.service

para parar e desativar o firewall do CentOS. É normal se você receber erros aqui, isso apenas indica que o firewall não estava instalado.

Então você deve verificar se o firewall foi realmente desativado. Para isso, execute o comando:

iptables -L

A saída deve ser parecida com isto:

[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 ~]#

Agora vou instalar o editor de configuração de rede e o editor baseado em shell “nano” que usarei nos próximos passos para editar os arquivos de configuração:

yum -y install nano wget 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 pressione 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 estão faltando novamente.

Agora, para a configuração…

Ajustando /etc/hosts e /etc/hostname

Em seguida, vamos editar /etc/hosts. Deixe-o 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

Defina o nome do host no arquivo /etc/hostname. O arquivo deve conter o nome de domínio totalmente qualificado (por exemplo, server1.example.com no meu caso) e não apenas o nome curto como “server1”. Abra o arquivo com o editor nano:

nano /etc/hostname

E defina o nome do host no arquivo.

server1.example.com

Salve o arquivo e saia do nano.

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 dele para configurar um sistema seguro, e geralmente causa mais problemas do que vantagens (pense nisso depois de ter passado uma semana resolvendo 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

4 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*

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

yum -y install epel-release
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
[...]

Então atualizamos nossos pacotes existentes no sistema:

yum -y update

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

yum -y groupinstall 'Development Tools'

5 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 /var separada, 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 / (root)

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="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap 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 de 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

Então execute

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

para habilitar a quota. Quando você receber um erro de que não há partição com quota habilitada, então reinicie o servidor antes de prosseguir.

6 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

Para garantir que o servidor não possa ser atacado através da vulnerabilidade HTTPOXY, desabilitaremos o cabeçalho HTTP_PROXY no apache globalmente.

Adicione a regra de cabeçalho do apache ao final do arquivo httpd.conf:

echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf

E reinicie o httpd para aplicar a alteração de configuração.

service httpd restart  
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.