Servidor Ubuntu · 7 min read · Sep 25, 2025

O Servidor Perfeito - Ubuntu 15.04 (nginx, BIND, Dovecot e ISPConfig 3)

Este tutorial mostra os passos para instalar um servidor Ubuntu 15.04 (Vivid Vervet) com Nginx, PHP, MariaDB, Postfix, pure-ftpd, BIND, Dovecot e ISPConfig 3. O ISPConfig 3 é um painel de controle de hospedagem na web que permite configurar os serviços instalados através de um navegador. Esta configuração fornece um servidor de hospedagem completo com serviços de web, email (incl. filtro de spam e antivírus), Banco de Dados, FTP e DNS.

1. Nota Preliminar

Neste tutorial, usarei o nome do host server1.example.com com o endereço IP 192.168.1.100 e o gateway 192.168.1.1 para a configuração da rede. 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 15.04, conforme explicado no tutorial.

Os passos neste tutorial devem ser executados como usuário root, então não vou colocar “sudo” na frente dos comandos. Faça login como usuário root no seu servidor antes de prosseguir ou execute:

sudo su

para se tornar root quando você estiver logado como um usuário diferente no shell.

Os comandos para editar arquivos usarão o editor “nano”, você pode substituí-lo por um editor de sua escolha. O Nano é um editor de arquivos fácil de usar para o shell. Se você gosta de usar o nano e ainda não o instalou, execute:

apt-get install nano

2. Atualize Sua Instalação do 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 15.04 _Vivid Vervet_ - Release amd64 (20150422)]/ vivid main restricted  
#deb cdrom:[Ubuntu-Server 15.04 _Vivid Vervet_ - Release amd64 (20150422)]/ vivid 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/ vivid main restricted  
deb-src http://de.archive.ubuntu.com/ubuntu/ vivid 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/ vivid-updates main restricted  
deb-src http://de.archive.ubuntu.com/ubuntu/ vivid-updates main restricted  
  
## N.B. software deste repositório é TOTALMENTE NÃO SUPORTADO pela equipe do Ubuntu.  
## Além disso, observe que o software no universe NÃO RECEBERÁ nenhuma  
## revisão ou atualizações da equipe de segurança do Ubuntu.  
deb http://de.archive.ubuntu.com/ubuntu/ vivid universe  
deb-src http://de.archive.ubuntu.com/ubuntu/ vivid universe  
deb http://de.archive.ubuntu.com/ubuntu/ vivid-updates universe  
deb-src http://de.archive.ubuntu.com/ubuntu/ vivid-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/ vivid multiverse  
deb-src http://de.archive.ubuntu.com/ubuntu/ vivid multiverse  
deb http://de.archive.ubuntu.com/ubuntu/ vivid-updates multiverse  
deb-src http://de.archive.ubuntu.com/ubuntu/ vivid-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/ vivid-backports main restricted universe multiverse  
deb-src http://de.archive.ubuntu.com/ubuntu/ vivid-backports main restricted universe multiverse  
  
deb http://security.ubuntu.com/ubuntu vivid-security main restricted  
deb-src http://security.ubuntu.com/ubuntu vivid-security main restricted  
deb http://security.ubuntu.com/ubuntu vivid-security universe  
deb-src http://security.ubuntu.com/ubuntu vivid-security universe  
deb http://security.ubuntu.com/ubuntu vivid-security 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 os  
## respectivos fornecedores como um serviço para os usuários do Ubuntu.  
# deb http://archive.canonical.com/ubuntu vivid partner  
# deb-src http://archive.canonical.com/ubuntu vivid partner                                                  

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. Mude o Shell Padrão

/bin/sh é um symlink 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. Desabilitar AppArmor

AppArmor é uma extensão de segurança (semelhante ao SELinux) que deve fornecer segurança estendida. Não é instalado por padrão a partir da versão 13.10. Vamos verificar se está instalado. 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 feito uma semana de resoluçã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 desabilito (isso é obrigatório se você quiser instalar o ISPConfig mais tarde).

Podemos desabilitá-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. Basta executar

apt-get install ntp ntpdate

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

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

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 sudo

MariaDB é um fork do servidor de banco de dados MySQL, desenvolvido pelo desenvolvedor original do MySQL, Monty Widenius. De acordo com testes encontrados na internet, MariaDB é mais rápido que o MySQL e seu desenvolvimento está avançando mais rapidamente, portanto, a maioria das distribuições Linux substituiu o MySQL pelo MariaDB como o servidor de banco de dados “semelhante ao MySQL” padrão. Caso você prefira o MySQL em vez do MariaDB, substitua “mariadb-client mariadb-server” no comando acima por “mysql-client mysql-server”.

Você será solicitado as seguintes perguntas:

Criar um certificado SSL autoassinado? <-- sim  
Nome do host: <-- server1.example.com  
Tipo geral de configuração de email: <-- Internet Site  
Nome do email do sistema: <-- server1.example.com

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  
[...]  

Reinicie o Postfix depois:

service postfix restart

Queremos que o MariaDB/MySQL escute em todas as interfaces, não apenas no localhost. Portanto, editamos /etc/mysql/mariadb.conf.d/mysqld.cnf (para MariaDB) ou /etc/mysql/my.cnf (para MySQL) e comentamos a linha bind-address = 127.0.0.1:

MariaDB

nano /etc/mysql/mariadb.conf.d/mysqld.cnf

Agora definimos uma senha root no MariaDB. Execute:

mysql_secure_installation

Você será solicitado a estas perguntas:

Digite a senha atual para root (pressione enter para nenhum): <-- pressione enter  
Definir senha root? [Y/n] <-- y  
Nova senha: <-- Digite a nova senha root do MariaDB aqui  
Repetir nova senha: <-- Repita a senha  
Remover usuários anônimos? [Y/n] <-- y  
Desabilitar login remoto do root? [Y/n] <-- y  
Recarregar tabelas de privilégios agora? [Y/n] <-- y

Em seguida, execute este comando para desabilitar o plugin de autenticação:

echo "update user set plugin='' where User='root';flush privileges;" | mysql --defaults-file=/etc/mysql/debian.cnf mysql

Para permitir autenticação baseada em senha a partir do PHPMyAdmin.

MySQL

nano /etc/mysql/my.cnf
[...]  
# Em vez de skip-networking o padrão agora é escutar apenas em  
# localhost, o que é mais compatível e não é menos seguro.  
#bind-address           = 127.0.0.1  
[...]  

Em seguida, reiniciamos o MariaDB / MySQL:

service mysql restart

O nome do serviço systemd para MariaDB e MySQL é “mysql”, então o comando de reinício é o mesmo para ambos.

Agora verifique se a rede está habilitada. Execute:

netstat -tap | grep mysql

A saída deve ser assim:

root@server1:~# netstat -tap | grep mysql  
tcp        0      0 *:mysql                 *:*                     LISTEN      23785/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

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

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

Para atualizar as assinaturas do antivírus ClamAV e iniciar o serviço Clamd. O processo de atualização pode levar algum tempo, não o interrompa.

freshclam  
service clamav-daemon start
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.