Servidor Ubuntu · 8 min read · Sep 11, 2025

O Servidor Perfeito - Ubuntu 16.04 (Xenial Xerus) com Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot e ISPConfig 3.1

Este tutorial mostra a instalação de um servidor de hospedagem web Ubuntu 16.04 (Xenial Xerus) com Apache2, Postfix, Dovecot, Bind e PureFTPD para prepará-lo para a instalação do ISPConfig 3.1. O sistema resultante fornecerá um servidor Web, Mail, Mailinglist, DNS e FTP.

ISPConfig 3 é um painel de controle de hospedagem web que permite configurar os seguintes serviços através de um navegador web: servidor web Apache ou nginx, servidor de email Postfix, servidor IMAP/POP3 Courier ou Dovecot, MySQL, servidor de nomes BIND ou MyDNS, PureFTPd, SpamAssassin, ClamAV e muitos mais. Esta configuração cobre a instalação do Apache (em vez do Nginx), BIND (em vez do MyDNS) e Dovecot (em vez do Courier).

Nota: A versão do ISPConfig 3.1 que é usada neste tutorial está atualmente em estado beta. A versão antiga estável 3.0.5p9 do ISPConfig não pode ser usada no Ubuntu 16.04, pois não é compatível com o PHP 7.

1. Nota Preliminar

Neste tutorial, eu 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. Antes de prosseguir, você precisa ter uma instalação mínima básica do Ubuntu 16.04, conforme explicado no tutorial.

2. Edite /etc/apt/sources.list E Atualize Sua Instalação Linux

Edite /etc/apt/sources.list. Comente ou remova o CD de instalação do arquivo e certifique-se de que os repositórios universe e multiverse estão habilitados. Deve ficar assim:

nano /etc/apt/sources.list
#  
# deb cdrom:[Ubuntu-Server 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420)]/ xenial main restricted  
#deb cdrom:[Ubuntu-Server 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420)]/ xenial main restricted  

# Veja http://help.ubuntu.com/community/UpgradeNotes para como atualizar para  
# versões mais novas da distribuição.  
deb http://de.archive.ubuntu.com/ubuntu/ xenial main restricted  
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial main restricted  

## Atualizações de correção de bugs importantes produzidas após o lançamento final da  
## distribuição.  
deb http://de.archive.ubuntu.com/ubuntu/ xenial-updates main restricted  
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-updates main restricted  

## N.B. software deste repositório é TOTALMENTE NÃO SUPORTADO pela equipe do Ubuntu,  
## e pode não estar sob uma licença livre. Por favor, certifique-se de  
## seus direitos de usar o software. Além disso, observe que o software em  
## universe NÃO receberá nenhuma revisão ou atualizações da equipe de segurança do Ubuntu.  
deb http://de.archive.ubuntu.com/ubuntu/ xenial universe  
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial universe  
deb http://de.archive.ubuntu.com/ubuntu/ xenial-updates universe  
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-updates universe  

## N.B. software deste repositório é TOTALMENTE NÃO SUPORTADO pela equipe do Ubuntu,  
## e pode não estar sob uma licença livre. Por favor, certifique-se de  
## seus direitos de usar o software. Além disso, observe que o software em  
## multiverse NÃO receberá nenhuma revisão ou atualizações da equipe de segurança do Ubuntu.  
deb http://de.archive.ubuntu.com/ubuntu/ xenial multiverse  
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial multiverse  
deb http://de.archive.ubuntu.com/ubuntu/ xenial-updates multiverse  
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-updates multiverse  

## N.B. software deste repositório pode não ter sido testado tão  
## extensivamente quanto aquele contido no lançamento principal, embora inclua  
## versões mais novas de algumas aplicações que podem fornecer recursos úteis.  
## Além disso, observe que o software em backports NÃO receberá nenhuma revisão  
## ou atualizações da equipe de segurança do Ubuntu.  
deb http://de.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse  
# deb-src http://de.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse  
## Descomente as duas linhas a seguir para adicionar software do repositório  
## 'partner' da Canonical.  
## Este software não faz parte do Ubuntu, mas é oferecido pela Canonical e pelos  
## respectivos fornecedores como um serviço para os usuários do Ubuntu.  
# deb http://archive.canonical.com/ubuntu xenial partner  
# deb-src http://archive.canonical.com/ubuntu xenial partner  
  
deb http://security.ubuntu.com/ubuntu xenial-security main restricted  
# deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted  
deb http://security.ubuntu.com/ubuntu xenial-security universe  
# deb-src http://security.ubuntu.com/ubuntu xenial-security universe  
deb http://security.ubuntu.com/ubuntu xenial-security multiverse  
# deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse

Em seguida, execute

apt-get update

para atualizar o banco de dados de pacotes apt e

apt-get upgrade

para instalar as atualizações mais recentes (se houver). Se você ver que um novo kernel é instalado como parte das atualizações, você deve reiniciar o sistema depois:

reboot

3. Mudar o Shell Padrão

/bin/sh é um link simbólico para /bin/dash, no entanto, precisamos de /bin/bash, não /bin/dash. Portanto, fazemos isso:

dpkg-reconfigure dash

Usar dash como o shell padrão do sistema (/bin/sh)? <– Não

Se você não fizer isso, a instalação do ISPConfig falhará.

4. Desativar AppArmor

AppArmor é uma extensão de segurança (semelhante ao SELinux) 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 AppArmor estava causando o problema). Portanto, eu o desativo (isso é obrigatório se você quiser instalar o ISPConfig mais tarde).

Podemos desativá-lo assim:

service apparmor stop  
update-rc.d -f apparmor remove   
apt-get remove apparmor apparmor-utils

5. Sincronizar o Relógio do Sistema

É uma boa ideia sincronizar o relógio do sistema com um servidor NTP ( n etwork t ime p rotocol) pela Internet quando você executa um servidor físico. Caso você execute um servidor virtual, então você deve pular esta etapa. Basta executar

apt-get -y install ntp ntpdate

e seu horário do sistema estará sempre sincronizado.

6. Instalar Postfix, Dovecot, MariaDB, rkhunter e binutils

Para instalar o postfix, precisamos garantir que o sendmail não esteja instalado e em execução. Para parar e remover o sendmail, execute este comando:

service sendmail stop; update-rc.d -f sendmail remove

A mensagem de erro:

Failed to stop sendmail.service: Unit sendmail.service not loaded.

Está ok, isso apenas significa que o sendmail não estava instalado, então não havia nada para ser removido.

Agora podemos instalar Postfix, Dovecot, MariaDB (como substituto do MySQL), rkhunter e binutils com um único comando:

apt-get install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd sudo

Você será solicitado a responder as seguintes perguntas:

General type of mail configuration: <-- Internet Site  
System mail name: <-- server1.example.com  

É importante que você use um subdomínio como “nome do email do sistema” como server1.example.com ou server1.seudominio.com e não um domínio que você deseja usar como domínio de email (por exemplo, seudominio.tld) mais tarde.

Em seguida, abra as portas TLS/SSL e de envio no Postfix:

nano /etc/postfix/master.cf

Descomente as seções de envio e smtps da seguinte forma - adicione a linha -o smtpd_client_restrictions=permit_sasl_authenticated,reject a ambas as seções e deixe tudo o mais comentado:

[...]  
submission inet n       -       -       -       -       smtpd  
  -o syslog_name=postfix/submission  
  -o smtpd_tls_security_level=encrypt  
  -o smtpd_sasl_auth_enable=yes  
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject  
#  -o smtpd_reject_unlisted_recipient=no  
#  -o smtpd_client_restrictions=$mua_client_restrictions  
#  -o smtpd_helo_restrictions=$mua_helo_restrictions  
#  -o smtpd_sender_restrictions=$mua_sender_restrictions  
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject  
#  -o milter_macro_daemon_name=ORIGINATING  
smtps     inet  n       -       -       -       -       smtpd  
  -o syslog_name=postfix/smtps  
  -o smtpd_tls_wrappermode=yes  
  -o smtpd_sasl_auth_enable=yes  
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject  
#  -o smtpd_reject_unlisted_recipient=no  
#  -o smtpd_client_restrictions=$mua_client_restrictions  
#  -o smtpd_helo_restrictions=$mua_helo_restrictions  
#  -o smtpd_sender_restrictions=$mua_sender_restrictions  
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject  
#  -o milter_macro_daemon_name=ORIGINATING  
[...]  

NOTA: Os espaços em branco na frente das linhas “-o …. “ são importantes!

Reinicie o Postfix depois:

service postfix restart

Queremos que o MySQL escute em todas as interfaces, não apenas no localhost. Portanto, editamos /etc/mysql/mariadb.conf.d/50-server.cnf e comentamos a linha bind-address = 127.0.0.1:

nano /etc/mysql/mariadb.conf.d/50-server.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  
[...]  

Agora definimos uma senha root no MariaDB. Execute:

mysql_secure_installation

Você será solicitado a responder a estas perguntas:

Enter current password for root (enter for none): <-- pressione enter  
Set root password? [Y/n] <-- y  
New password: <-- Digite a nova senha root do MariaDB aqui  
Re-enter new password: <-- Repita a senha  
Remove anonymous users? [Y/n] <-- y  
Disallow root login remotely? [Y/n] <-- y  
Reload privilege tables now? [Y/n] <-- y

Em seguida, reiniciamos o MariaDB:

service mysql restart

Agora verifique se a rede está habilitada. Execute

netstat -tap | grep mysql

A saída deve ser assim:

root@server1:~# netstat -tap | grep mysql  
tcp6 0 0 [::]:mysql [::]:* LISTEN 5230/mysqld  
root@server1:~#  

7. Instalar Amavisd-new, SpamAssassin e Clamav

Para instalar amavisd-new, SpamAssassin e ClamAV, executamos

apt-get 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 postgrey

A configuração do ISPConfig 3 usa amavisd que carrega a biblioteca de filtro SpamAssassin internamente, então podemos parar o SpamAssassin para liberar um pouco de RAM:

service spamassassin stop   
update-rc.d -f spamassassin remove

Edite o arquivo de configuração do clamd:

nano /etc/clamav/clamd.conf

e mude a linha:

AllowSupplementaryGroups false

para:

AllowSupplementaryGroups true  

E salve o arquivo. Para iniciar o ClamAV, use:

freshclam  
service clamav-daemon start

O seguinte aviso pode ser ignorado na primeira execução do freshclam, pois iniciamos o daemon ClamAV após atualizarmos o banco de dados.

WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd.ctl: No such file or directory  

7.1 Instalar Servidor XMPP Metronome (opcional)

O Servidor XMPP Metronome fornece um servidor de chat XMPP. Esta etapa é opcional, se você não precisar de um servidor de chat, então você pode pular esta etapa. Nenhuma outra função do ISPConfig depende deste software.

Instale os seguintes pacotes com apt.

apt-get install git lua5.1 liblua5.1-0-dev lua-filesystem libidn11-dev libssl-dev lua-zlib lua-expat lua-event lua-bitop lua-socket lua-sec luarocks luarocks
luarocks install lpc

Adicione um usuário shell para o Metronome.

adduser --no-create-home --disabled-login --gecos 'Metronome' metronome

Baixe o Metronome para o diretório /opt e compile-o.

cd /opt; git clone https://github.com/maranda/metronome.git metronome  
cd ./metronome; ./configure --ostype=debian --prefix=/usr  
make  
make install

O Metronome agora foi instalado em /opt/metronome.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.