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 multiverseEm seguida, execute
apt-get updatepara atualizar o banco de dados de pacotes apt e
apt-get upgradepara 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:
reboot3. 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 dashUsar 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-utils5. 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 ntpdatee 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 removeA 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 sudoVocê 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.cfDescomente 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 restartQueremos 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_installationVocê 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] <-- yEm seguida, reiniciamos o MariaDB:
service mysql restartAgora verifique se a rede está habilitada. Execute
netstat -tap | grep mysqlA 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 postgreyA 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 removeEdite o arquivo de configuração do clamd:
nano /etc/clamav/clamd.confe mude a linha:
AllowSupplementaryGroups falsepara:
AllowSupplementaryGroups true E salve o arquivo. Para iniciar o ClamAV, use:
freshclam
service clamav-daemon startO 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 luarocksluarocks install lpcAdicione um usuário shell para o Metronome.
adduser --no-create-home --disabled-login --gecos 'Metronome' metronomeBaixe 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 installO Metronome agora foi instalado em /opt/metronome.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.