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 dePara obter uma lista de todos os layouts de teclado disponíveis, execute:
localectl list-keymapsQuero 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.servicepara 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 -LA saída deve ser parecida com isto:
[root@server1 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destinationChain FORWARD (policy ACCEPT)
target prot opt source destinationChain OUTPUT (policy ACCEPT)
target prot opt source destinationOu 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-tuiSe 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
ifconfigagora 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-ens33e 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.confSe os servidores de nomes estiverem faltando, execute
nmtuie 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/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.100 server1.example.com server1
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6Defina 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/hostnameE defina o nome do host no arquivo.
server1.example.comSalve 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=targetedDepois, devemos reiniciar o sistema:
reboot4 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-releaseyum -y install yum-prioritiesEdite /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 updateAgora 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 quotaAgora 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/grubprocure 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.cfge reinicie o servidor.
rebootAgora 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 0Então execute
mount -o remount /varquotacheck -avugm
quotaon -avugpara 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 phpmyadminPara 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.confE reinicie o httpd para aplicar a alteração de configuração.
service httpd restart Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.