Servidor Debian · 24 min read · Nov 03, 2025
O Servidor Perfeito - Debian 10 (Buster) com Apache, BIND, Dovecot, PureFTPD e ISPConfig 3.2

Este tutorial mostra como preparar um servidor Debian 10 (com Apache2, BIND, Dovecot) para a instalação do ISPConfig 3.2, e como instalar o ISPConfig. O painel de controle de hospedagem na web ISPConfig 3 permite que você configure os seguintes serviços através de um navegador web: servidor web Apache ou nginx, servidor de e-mail Postfix, servidor IMAP/POP3 Courier ou Dovecot, MySQL, servidor de nomes BIND ou MyDNS, PureFTPd, SpamAssassin, ClamAV, e muito mais. Esta configuração cobre Apache (em vez de nginx), BIND e Dovecot.
1 Nota Preliminar
Neste tutorial, usarei o nome do host server1.example.com com o endereço IP 192.168.0.100 e o gateway 192.168.0.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 do Debian 10. Isso pode ser uma imagem mínima do Debian do seu provedor de hospedagem ou você pode usar o tutorial do Servidor Debian Mínimo para configurar o sistema base.
Todos os comandos abaixo são executados como usuário root. Faça login como usuário root diretamente ou faça login como seu usuário normal e depois use o comando
su -para se tornar usuário root em seu servidor antes de prosseguir. IMPORTANTE: Você deve usar ‘su -‘ e não apenas ‘su’, caso contrário, sua variável PATH será configurada incorretamente pelo Debian.
2 Instalar o servidor SSH (Opcional)
Se você não instalou o servidor OpenSSH durante a instalação do sistema, você pode fazê-lo agora:
apt-get install ssh openssh-serverA partir de agora, você pode usar um cliente SSH como o PuTTY e conectar-se do seu workstation ao seu servidor Debian 9 e seguir os passos restantes deste tutorial.
3 Instalar um editor de texto de shell (Opcional)
Usaremos o editor de texto nano neste tutorial. Alguns usuários preferem o editor vi clássico, portanto, instalaremos ambos os editores aqui. O programa vi padrão tem um comportamento estranho no Debian e Ubuntu; para corrigir isso, instalamos vim-nox:
apt-get install nano vim-noxSe vi é seu editor favorito, então substitua nano por vi nos seguintes comandos para editar arquivos.
4 Configurar o Nome do Host
O nome do host do seu servidor deve ser um subdomínio como “server1.example.com”. Não use um nome de domínio sem a parte do subdomínio como “example.com” como nome do host, pois isso causará problemas mais tarde com sua configuração de e-mail. Primeiro, você deve verificar o nome do host em /etc/hosts e alterá-lo quando necessário. A linha deve ser: “Endereço IP - espaço - nome do host completo incluindo domínio - espaço - parte do subdomínio”. Para nosso nome do host server1.example.com, o arquivo deve parecer com isso:
nano /etc/hosts127.0.0.1 localhost.localdomain localhost
192.168.0.100 server1.example.com server1
# As linhas a seguir são desejáveis para hosts compatíveis com IPv6
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allroutersEm seguida, edite o arquivo /etc/hostname:
nano /etc/hostnameDeve conter apenas a parte do subdomínio, no nosso caso:
server1Finalmente, reinicie o servidor para aplicar a alteração:
systemctl rebootFaça login novamente e verifique se o nome do host está correto agora com estes comandos:
hostname
hostname -fA saída deve ser assim:
root@server1:/tmp# hostname
server1
root@server1:/tmp# hostname -f
server1.example.com5 Atualize sua Instalação do Debian
Primeiro, certifique-se de que seu /etc/apt/sources.list contém o repositório buster/updates (isso garante que você sempre receba as atualizações de segurança mais recentes), e que os repositórios contrib e non-free estão habilitados, pois alguns pacotes necessários não estão no repositório principal.
nano /etc/apt/sources.listdeb http://deb.debian.org/debian/ buster main contrib non-free
deb-src http://deb.debian.org/debian/ buster main contrib non-free
deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates main contrib non-freeExecute:
apt-get updatePara atualizar o banco de dados de pacotes apt
apt-get upgradee para instalar as atualizações mais recentes (se houver).
6. 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á.
7 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. Simplesmente execute
apt-get -y install ntpe seu horário do sistema estará sempre em sincronia.
8 Instalar Postfix, Dovecot, MariaDB, rkhunter e Binutils
Podemos instalar Postfix, Dovecot, MariaDB como alternativa ao MySQL, rkhunter e Binutils com um único comando:
apt-get -y 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 curlVocê será solicitado a responder às seguintes perguntas:
Tipo geral de configuração de e-mail: <– Internet Site
Nome do sistema de e-mail: <– server1.example.com
Para garantir a instalação do MariaDB e desativar o banco de dados de teste, execute este comando:
mysql_secure_installationResponda às perguntas da seguinte forma:
Alterar a senha root? [Y/n] <-- y
Nova senha: <-- Digite uma nova senha root do MariaDB
Repetir nova senha: <-- Repita a senha root do MariaDB
Remover usuários anônimos? [Y/n] <-- y
Desabilitar login remoto do root? [Y/n] <-- y
Remover banco de dados de teste e acesso a ele? [Y/n] <-- y
Recarregar tabelas de privilégios agora? [Y/n] <-- yEm 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 e adicione linhas onde necessário para que esta seção do arquivo master.cf fique exatamente como a abaixo. IMPORTANTE: Remova o # na frente das linhas que começam com smtps e envio também e não apenas das linhas -o após essas linhas!
[...]
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=
# -o smtpd_relay_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=
# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
[...]Reinicie o Postfix em seguida:
systemctl restart postfixQueremos 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 adicionando um # na frente dela.
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
[...]Defina o método de autenticação de senha no MariaDB como nativo para que possamos usar o PHPMyAdmin mais tarde para conectar como usuário root:
echo "update mysql.user set plugin = 'mysql_native_password' where user='root';" | mysql -u rootEdite o arquivo /etc/mysql/debian.cnf e defina a senha root do MYSQL / MariaDB lá duas vezes nas linhas que começam com a palavra senha.
nano /etc/mysql/debian.cnfA senha root do MySQL que precisa ser adicionada é mostrada em vermelho. Neste exemplo, a senha é “howtoforge”.
# Gerado automaticamente para scripts Debian. NÃO TOQUE!
[client]
host = localhost
user = root
password = howtoforge
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = root
password = howtoforge
socket = /var/run/mysqld/mysqld.sock
basedir = /usrPara evitar o erro ‘ Erro ao aceitar: Muitos arquivos abertos ‘, definiremos limites de arquivos abertos mais altos para o MariaDB agora.
Abra o arquivo /etc/security/limits.conf com um editor:
nano /etc/security/limits.confe adicione estas linhas no final do arquivo.
mysql soft nofile 65535
mysql hard nofile 65535Em seguida, crie um novo diretório /etc/systemd/system/mysql.service.d/ com o comando mkdir.
mkdir -p /etc/systemd/system/mysql.service.d/e adicione um novo arquivo dentro:
nano /etc/systemd/system/mysql.service.d/limits.confcole as seguintes linhas nesse arquivo:
[Service]
LimitNOFILE=infinitySalve o arquivo e feche o editor nano.
Em seguida, recarregamos o systemd e reiniciamos o MariaDB:
systemctl daemon-reload
systemctl restart mariadbAgora verifique se a rede está habilitada. Execute
netstat -tap | grep mysqlA saída deve ser assim:
root@server1:/home/administrator# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 16623/mysqld9 Instalar Amavisd-new, SpamAssassin e ClamAV
Para instalar amavisd-new, SpamAssassin e ClamAV, executamos
apt-get install amavisd-new spamassassin clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip 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 libdbd-mysql-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:
systemctl stop spamassassin
systemctl disable spamassassin10 Instalar o Servidor Web Apache e PHP
Apache2, PHP, FCGI, suExec, Pear e mcrypt podem ser instalados da seguinte forma:
apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7.3-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt imagemagick libruby libapache2-mod-python php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl memcached php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring memcached libapache2-mod-passenger php7.3-soap php7.3-fpm php7.3-opcache php-apcu libapache2-reload-perlEm seguida, execute o seguinte comando para habilitar os módulos do Apache suexec, rewrite, ssl, actions e include (mais dav, dav_fs e auth_digest se você quiser usar WebDAV):
a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest cgi headers actions proxy_fcgi aliasPara garantir que o servidor não possa ser atacado através da vulnerabilidade HTTPOXY, desabilitaremos o cabeçalho HTTP_PROXY no apache globalmente adicionando o arquivo de configuração /etc/apache2/conf-available/httpoxy.conf.
*Nota: A vulnerabilidade é chamada httpoxy (sem ‘r’) e, portanto, o arquivo onde adicionamos a configuração para preveni-la é chamado httpoxy.conf e não httproxy.conf, então não há ‘r’ faltando no nome do arquivo.*
nano /etc/apache2/conf-available/httpoxy.confCole o seguinte conteúdo no arquivo:
RequestHeader unset Proxy early
E habilite o módulo executando:
a2enconf httpoxy
systemctl restart apache211 Instalar Let’s Encrypt
O ISPConfig está usando acme.sh agora como cliente Let’s Encrypt. Instale acme.sh usando o seguinte comando:
curl https://get.acme.sh | sh -s12 Instalar Mailman
O ISPConfig permite que você gerencie (crie/modifique/exclua) listas de discussão do Mailman. Se você quiser usar esse recurso, instale o Mailman da seguinte forma:
apt-get install mailmanSelecione pelo menos um idioma, por exemplo:
Idiomas a serem suportados: <-- en (Inglês)
Lista de sites ausentes <-- OkAntes que possamos iniciar o Mailman, uma primeira lista de discussão chamada mailman deve ser criada:
newlist mailmanroot@server1:~# newlist mailman
Digite o e-mail da pessoa que está executando a lista: <-- endereço de e-mail do admin, por exemplo, [email protected]
Senha inicial do mailman: <-- senha do admin para a lista do mailman
Para terminar de criar sua lista de discussão, você deve editar seu /etc/aliases (ou
arquivo equivalente) adicionando as seguintes linhas, e possivelmente executando o
programa `newaliases`:
## lista de discussão mailman
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
Pressione enter para notificar o proprietário do mailman... <-- ENTER
root@server1:~#Abra /etc/aliases depois…
nano /etc/aliases… e adicione as seguintes linhas:
[...]
## lista de discussão mailman
mailman: "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join: "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request: "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"Execute:
newaliasese reinicie o Postfix:
systemctl restart postfixFinalmente, devemos habilitar a configuração do Apache do Mailman:
ln -s /etc/mailman/apache.conf /etc/apache2/conf-enabled/mailman.confIsso define o alias /cgi-bin/mailman/ para todos os vhosts do Apache, o que significa que você pode acessar a interface de administração do Mailman para uma lista em http://server1.example.com/cgi-bin/mailman/admin/, e a página da web para usuários de uma lista de discussão pode ser encontrada em http://server1.example.com/cgi-bin/mailman/listinfo/.
Em http://server1.example.com/pipermail você pode encontrar os arquivos da lista de discussão.
Reinicie o Apache depois:
systemctl restart apache2Então inicie o daemon do Mailman:
systemctl restart mailman13 Instalar PureFTPd e Quota
PureFTPd e quota podem ser instalados com o seguinte comando:
apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatoolCrie o arquivo dhparam para pure-ftpd:
openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048Edite o arquivo /etc/default/pure-ftpd-common…
nano /etc/default/pure-ftpd-common… e certifique-se de que o modo de início esteja definido como standalone e defina VIRTUALCHROOT=true:
[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]Agora configuramos o PureFTPd para permitir sessões FTP e TLS. FTP é um protocolo muito inseguro porque todas as senhas e todos os dados são transferidos em texto claro. Ao usar TLS, toda a comunicação pode ser criptografada, tornando o FTP muito mais seguro.
Se você quiser permitir sessões FTP e TLS, execute
echo 1 > /etc/pure-ftpd/conf/TLSPara usar TLS, devemos criar um certificado SSL. Eu o crio em /etc/ssl/private/, portanto, primeiro crio esse diretório:
mkdir -p /etc/ssl/private/Depois, podemos gerar o certificado SSL da seguinte forma:
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pemCountry Name (2 letter code) [AU]: <-- Digite o nome do seu país (por exemplo, "DE").
State or Province Name (full name) [Some-State]: <-- Digite o nome do seu estado ou província.
Locality Name (eg, city) []: <-- Digite sua cidade.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Digite o nome da sua organização (por exemplo, o nome da sua empresa).
Organizational Unit Name (eg, section) []: <-- Digite o nome da sua unidade organizacional (por exemplo, "Departamento de TI").
Common Name (eg, YOUR name) []: <-- Digite o Nome de Domínio Totalmente Qualificado do sistema (por exemplo, "server1.example.com").
Email Address []: <-- Digite seu endereço de e-mail.Altere as permissões do certificado SSL:
chmod 600 /etc/ssl/private/pure-ftpd.pemEntão reinicie o PureFTPd:
systemctl restart pure-ftpd-mysqlEdite /etc/fstab. O meu se parece com isso (adicionei,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 à partição com o ponto de montagem /):
nano /etc/fstab# /etc/fstab: informações estáticas do sistema de arquivos.
#
# Use 'blkid' para imprimir o identificador universalmente único para um
# dispositivo; isso pode ser usado com UUID= como uma maneira mais robusta de nomear dispositivos
# que funciona mesmo se discos forem adicionados e removidos. Veja fstab(5).
#
#
# / estava em /dev/sda1 durante a instalação
UUID=45576b38-39e8-4994-b8c1-ea4870e2e614 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# swap estava em /dev/sda5 durante a instalação
UUID=8bea0d1e-ec37-4b20-9976-4b7daaa3eb69 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0 Para habilitar quota, execute estes comandos:
mount -o remount /quotacheck -avugm
quotaon -avug14 Instalar o Servidor DNS BIND
O BIND pode ser instalado da seguinte forma:
apt-get install bind9 dnsutilsSe o seu servidor for uma máquina virtual, é altamente recomendável instalar o daemon haveged para obter uma maior entropia para a assinatura DNSSEC. Você pode instalar o haveged em servidores não virtuais também, não deve causar problemas.
apt-get install havegedUma explicação sobre esse tópico pode ser encontrada aqui.
15 Instalar Webalizer, AWStats e GoAccess
Webalizer e AWStats podem ser instalados da seguinte forma:
apt-get install webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perlAbra /etc/cron.d/awstats depois…
nano /etc/cron.d/awstats… e comente tudo nesse arquivo:
#MAILTO=root
#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh
# Gerar relatórios estáticos:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.shInstalando a versão mais recente do GoAccess diretamente do repositório GoAccess:
echo "deb https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key --keyring /etc/apt/trusted.gpg.d/goaccess.gpg add -
apt-get update
apt-get install goaccess16 Instalar Jailkit
O Jailkit é necessário apenas se você quiser chroot usuários SSH. Ele pode ser instalado da seguinte forma:
apt-get install build-essential autoconf automake libtool flex bison debhelper binutilscd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz
tar xvfz jailkit-2.20.tar.gz
cd jailkit-2.20
echo 5 > debian/compat
./debian/rules binaryAgora você pode instalar o pacote Jailkit.deb da seguinte forma:
cd ..
dpkg -i jailkit_2.20-1_*.deb
rm -rf jailkit-2.20*17 Instalar fail2ban e UFW Firewall
Isso é opcional, mas recomendado, porque o monitor do ISPConfig tenta mostrar o log:
apt-get install fail2banPara fazer o fail2ban monitorar o PureFTPd e o Dovecot, crie o arquivo /etc/fail2ban/jail.local:
nano /etc/fail2ban/jail.localE adicione a seguinte configuração a ele.
[pure-ftpd]
enabled = true
port = ftp
filter = pure-ftpd
logpath = /var/log/syslog
maxretry = 3
[dovecot]
enabled = true
filter = dovecot
logpath = /var/log/mail.log
maxretry = 5
[postfix-sasl]
enabled = true
port = smtp
filter = postfix[mode=auth]
logpath = /var/log/mail.log
maxretry = 3Reinicie o fail2ban em seguida:
systemctl restart fail2banPara instalar o firewall UFW, execute este comando apt:
apt-get install ufw18 Instalar a Ferramenta de Administração de Banco de Dados PHPMyAdmin
Desde o Debian 10, o PHPMyAdmin não está mais disponível como pacote .deb. Portanto, o instalaremos a partir da fonte.
Crie pastas para o PHPMyadmin:
mkdir /usr/share/phpmyadmin
mkdir /etc/phpmyadmin
mkdir -p /var/lib/phpmyadmin/tmp
chown -R www-data:www-data /var/lib/phpmyadmin
touch /etc/phpmyadmin/htpasswd.setupVá para o diretório /tmp e baixe as fontes do PHPMyAdmin:
cd /tmp
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.0.1/phpMyAdmin-4.9.0.1-all-languages.tar.gzDescompacte o arquivo de archive baixado e mova os arquivos para a pasta /usr/share/phpmyadmin e limpe o diretório /tmp.
tar xfz phpMyAdmin-4.9.0.1-all-languages.tar.gz
mv phpMyAdmin-4.9.0.1-all-languages/* /usr/share/phpmyadmin/
rm phpMyAdmin-4.9.0.1-all-languages.tar.gz
rm -rf phpMyAdmin-4.9.0.1-all-languagesCrie um novo arquivo de configuração para o PHPMyaAdmin com base no arquivo de amostra fornecido:
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.phpAbra o arquivo de configuração com o editor nano:
nano /usr/share/phpmyadmin/config.inc.phpDefina uma senha segura (segredo blowfish) que deve ter 32 caracteres de comprimento:
$cfg['blowfish_secret'] = 'bD3e6wva9fnd93jVsb7SDgeiBCd452Dh'; /* VOCÊ DEVE PREENCHER ISSO PARA AUTENTICAÇÃO DE COOKIE! */Não use meu exemplo de segredo blowfish, defina o seu próprio!
Em seguida, adicione uma linha para definir o diretório que o PHPMyAdmin deve usar para armazenar arquivos temporários:
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';Em seguida, criamos o arquivo de configuração do Apache para o PHPMyAdmin abrindo um novo arquivo no editor nano:
nano /etc/apache2/conf-available/phpmyadmin.confCole a seguinte configuração no arquivo e salve-o.
# configuração padrão do Apache para o phpMyAdmin
Alias /phpmyadmin /usr/share/phpmyadmin
Options FollowSymLinks
DirectoryIndex index.php
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_value include_path .
# Autorizar para configuração
AuthType Basic
AuthName "Configuração do phpMyAdmin"
AuthUserFile /etc/phpmyadmin/htpasswd.setup
Require valid-user
# Proibir acesso web a diretórios que não precisam
Order Deny,Allow
Deny from All
Order Deny,Allow
Deny from All
Ative a configuração e reinicie o Apache.
a2enconf phpmyadmin
systemctl restart apache2No próximo passo, configuraremos o armazenamento de configuração do phpMyadmin (banco de dados).
Faça login no MariaDB como usuário root:
mysql -u root -pNo shell do MariaDB, crie um novo banco de dados para o PHPMyAdmin:
MariaDB [(none)]> CREATE DATABASE phpmyadmin;Em seguida, crie um novo usuário:
MariaDB [(none)]> CREATE USER 'pma'@'localhost' IDENTIFIED BY 'mypassword';Substitua a palavra mypassword por uma senha segura de sua escolha nos comandos acima e abaixo, use a mesma senha duas vezes. Em seguida, conceda ao usuário acesso a este banco de dados e recarregue as permissões do banco de dados.
MariaDB [(none)]> GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;Finalmente, carregue as tabelas SQL no banco de dados:
mysql -u root -p phpmyadmin < /usr/share/phpmyadmin/sql/create_tables.sqlDigite a senha root do MariaDB quando solicitado.
Tudo o que precisamos fazer agora é definir os detalhes do usuário phpmyadmin no arquivo de configuração. Abra o arquivo no editor nano novamente:
nano /usr/share/phpmyadmin/config.inc.phpRole para baixo até ver as linhas abaixo e edite-as:
/* Usuário usado para manipular o armazenamento */
$cfg['Servers'][$i]['controlhost'] = 'localhost';
$cfg['Servers'][$i]['controlport'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'mypassword';
/* Banco de dados e tabelas de armazenamento */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';Marquei as linhas em vermelho que editei. Substitua mypassword pela senha que você escolheu para o usuário phpmyadmin. Note que os // na frente das linhas foram removidos também!
19 Instalar RoundCube Webmail (opcional)
Neste capítulo, instalaremos o cliente webmail RoundCube. Primeiro, precisamos criar o banco de dados para o Roundcube manualmente, pois atualmente há um problema no instalador do RoundCube Debian que faz com que ele falhe ao criar o banco de dados automaticamente. Execute este comando para criar o banco de dados:
echo "CREATE DATABASE roundcube;" | mysql --defaults-file=/etc/mysql/debian.cnfEm seguida, instale o RoundCube com este comando:
apt-get install roundcube roundcube-core roundcube-mysql roundcube-pluginsO instalador fará as seguintes perguntas:
Configurar banco de dados para roundcube com dbconfig.common? <-- sim
Senha da aplicação MySQL para roundcube: <-- pressione enterEm seguida, edite o arquivo /etc/roundcube/config.inc.php e ajuste algumas configurações:
nano /etc/roundcube/config.inc.phpDefina o default_host como localhost e o smtp_server.
$config['default_host'] = 'localhost';
$config['smtp_server'] = 'localhost';
$config['smtp_port'] = 25;Em seguida, edite o arquivo de configuração do Apache RoundCube /etc/apache2/conf-enabled/roundcube.conf:
nano /etc/apache2/conf-enabled/roundcube.confE adicione uma linha de alias para o apache /webmail e uma para /roundcube, você pode adicionar a linha logo no início do arquivo. NOTA: Não use /mail como alias ou o módulo de e-mail do ispconfig deixará de funcionar!
Alias /roundcube /var/lib/roundcube
Alias /webmail /var/lib/roundcubeEm seguida, recarregue o Apache:
systemctl reload apache2Agora você pode acessar o RoundCube da seguinte forma:
http://192.168.0.100/webmail
http://www.example.com/webmail
http://server1.example.com:8080/webmail (depois que você instalou o ISPConfig, veja o próximo capítulo)

Existem alguns plugins para integrar o RoundCube Webmail com o ISPConfig, dê uma olhada aqui para as instruções de instalação do plugin RoundCube do ISPConfig.
20 Baixar ISPConfig 3
20 Baixar a versão estável do ISPConfig (recomendado)
Para instalar o ISPConfig 3 a partir da versão mais recente lançada, faça isso:
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/21 Instalar ISPConfig
O próximo passo é executar o instalador do ISPConfig.
php -q install.phpIsso iniciará o instalador do ISPConfig 3. O instalador configurará todos os serviços como Postfix, Dovecot, etc. para você. Uma configuração manual, como era necessária para o ISPConfig 2 (guias de configuração perfeitas), não é necessária.
# php -q install.php
--------------------------------------------------------------------------------
_____ ___________ _____ __ _ ____
|_ _/ ___| ___ \ / __ \ / _(_) /__ \
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |
_| |_\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
\___/\____/\_| \____/\___/|_| |_|_| |_\__, | \____/
__/ |
|___/
--------------------------------------------------------------------------------
>> Configuração inicialSistema Operacional: Debian 10.0 (Buster) ou compatívelA seguir, algumas perguntas para configuração primária, então tenha cuidado.
Os valores padrão estão entre [colchetes] e podem ser aceitos com .
Digite "quit" (sem as aspas) para parar o instalador.
Selecione o idioma (en,de) [en]: <-- Pressione EnterModo de instalação (padrão, especialista) [padrão]: <-- Pressione EnterNome do host totalmente qualificado (FQDN) do servidor, por exemplo, server1.domain.tld [server1.example.com]: <-- Pressione EnterNome do host do servidor MySQL [localhost]: <-- Pressione EnterPorta do servidor MySQL [3306]: <-- Pressione EnterNome de usuário root do MySQL [root]: <-- Pressione EnterSenha root do MySQL []: <-- Digite sua senha root do MySQLBanco de dados MySQL a ser criado [dbispconfig]: <-- Pressione EnterCharset MySQL [utf8]: <-- Pressione EnterConfigurando Postgrey
Configurando Postfix
Gerando uma chave privada RSA de 4096 bits
.......................................................................++
........................................................................................................................................++
es é 65537 (0x10001)
Você está prestes a ser solicitado a inserir informações que serão incorporadas
no seu pedido de certificado.
O que você está prestes a inserir é o que é chamado de Nome Distinto ou DN.
Existem muitos campos, mas você pode deixar alguns em branco
Para alguns campos, haverá um valor padrão,
Se você digitar '.', o campo ficará em branco.
-----
Código do Nome do País (2 letras) [AU]: <-- Digite o código do seu país de 2 letras
Nome do Estado ou Província (nome completo) [Some-State]: <-- Digite o nome do estado
Nome da Localidade (por exemplo, cidade) []: <-- Digite sua cidade
Nome da Organização (por exemplo, empresa) [Internet Widgits Pty Ltd]: <-- Digite o nome da sua empresa ou pressione enter
Nome da Unidade Organizacional (por exemplo, seção) []: <-- Pressione Enter
Nome Comum (por exemplo, FQDN do servidor ou SEU nome) []: <-- Digite o nome do host do servidor, no meu caso: server1.example.com
Endereço de E-mail []: <-- Pressione Enter
Configurando Mailman
Configurando Dovecot
Configurando Spamassassin
Configurando Amavisd
Configurando Getmail
Configurando BIND
Configurando Jailkit
Configurando Pureftpd
Configurando Apache
Configurando vlogger
[INFO] serviço Metronome XMPP Server não detectado
Configurando Firewall do Ubuntu
Configurando Fail2ban
[INFO] serviço OpenVZ não detectado
Configurando vhost de Apps
Instalando ISPConfig
Porta do ISPConfig [8080]:Senha do admin [admin]:Você deseja uma conexão segura (SSL) à interface web do ISPConfig (y,n) [y]: <-- Pressione EnterGerando chave privada RSA, 4096 bits de comprimento
.......................++
................................................................................................................................++
es é 65537 (0x10001)
Você está prestes a ser solicitado a inserir informações que serão incorporadas
no seu pedido de certificado.
O que você está prestes a inserir é o que é chamado de Nome Distinto ou DN.
Existem muitos campos, mas você pode deixar alguns em branco
Para alguns campos, haverá um valor padrão,
Se você digitar '.', o campo ficará em branco.
-----
Código do Nome do País (2 letras) [AU]: <-- Digite o código do seu país de 2 letras
Nome do Estado ou Província (nome completo) [Some-State]: <-- Digite o nome do estado
Nome da Localidade (por exemplo, cidade) []: <-- Digite sua cidade
Nome da Organização (por exemplo, empresa) [Internet Widgits Pty Ltd]: <-- Digite o nome da sua empresa ou pressione enter
Nome da Unidade Organizacional (por exemplo, seção) []: <-- Pressione Enter
Nome Comum (por exemplo, FQDN do servidor ou SEU nome) []: <-- Digite o nome do host do servidor, no meu caso: server1.example.com
Endereço de E-mail []: <-- Pressione EnterPor favor, insira os seguintes atributos 'extras'
que serão enviados com seu pedido de certificado
Uma senha de desafio []: <-- Pressione Enter
Um nome de empresa opcional []: <-- Pressione Enter
gravando chave RSA
Configurando DBServer
Instalando crontab do ISPConfig
não há crontab para root
não há crontab para getmail
Detectando endereços IP
Reiniciando serviços ...
Instalação concluída.O instalador configura automaticamente todos os serviços subjacentes, portanto, nenhuma configuração manual é necessária.
Depois, você pode acessar o ISPConfig 3 em http(s)://server1.example.com:8080/ ou http(s)://192.168.0.100:8080/ (http ou https depende do que você escolheu durante a instalação). Faça login com o nome de usuário admin e a senha admin (você deve alterar a senha padrão após seu primeiro login):


O sistema agora está pronto para ser usado.
21.1 Manual do ISPConfig 3
Para aprender a usar o ISPConfig 3, recomendo fortemente baixar o Manual do ISPConfig 3.
Em mais de 300 páginas, ele cobre o conceito por trás do ISPConfig (admin, revendedores, clientes), explica como instalar e atualizar o ISPConfig 3, inclui uma referência para todos os formulários e campos de formulário no ISPConfig juntamente com exemplos de entradas válidas, e fornece tutoriais para as tarefas mais comuns no ISPConfig 3. Também descreve como tornar seu servidor mais seguro e vem com uma seção de solução de problemas no final.
22 Download da Imagem da Máquina Virtual deste Tutorial
Este tutorial está disponível como uma imagem de máquina virtual pronta para uso no formato ovf/ova que é compatível com VMWare e Virtualbox. A imagem da máquina virtual usa os seguintes detalhes de login:
Login SSH / Shell
Nome de usuário: administrador
Senha: howtoforge
Nome de usuário: root
Senha: howtoforge
Login do ISPConfig
Nome de usuário: admin
Senha: admin
Login do MySQL
Nome de usuário: root
Senha: howtoforge
O IP da VM é 192.168.0.100, pode ser alterado no arquivo /etc/network/interfaces. Por favor, altere todas as senhas acima para proteger a máquina virtual.
23 Links
- Debian: http://www.debian.org/
- ISPConfig: http://www.ispconfig.org/
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.