Pesquisa de site

O Servidor Perfeito - Debian 12 (Bookworm) com Apache, BIND, Dovecot, PureFTPD e ISPConfig 3.2


Este tutorial mostra como preparar um servidor Debian 12 (com Apache2, BIND, Dovecot) para a instalação do ISPConfig 3.2 e como instalar o ISPConfig. O painel de controle de hospedagem web ISPConfig 3 permite configurar os seguintes serviços através de um navegador web: servidor web Apache ou nginx, servidor de correio Postfix, servidor Dovecot IMAP/POP3, MySQL, servidor de nomes BIND, PureFTPd, Rspamd ou Amavis, ClamAV e muitos outros. mais. Esta configuração cobre Apache (em vez de nginx), BIND e Dovecot com scanner de spam Rspamd.

Este tutorial mostra o procedimento de instalação manual do ISPConfig, que leva algum tempo, mas oferece controle total sobre todas as etapas de instalação. O método de instalação rápido e fácil (que é altamente recomendável!) É usar o instalador automático ISPConfig. Você pode encontrar o tutorial de instalação do ISPConfig para o instalador automático aqui: https://linux-console.net/ispconfig-autoinstall-debian-ubuntu/

1 Nota Preliminar

Neste tutorial, usarei o nome de host server1.example.com com o endereço IP 192.168.0.100 e o gateway 192.168.0.1. Essas configurações podem ser diferentes para você, portanto, será necessário substituí-las quando apropriado. Antes de prosseguir, você precisa ter uma instalação mínima do Debian 12. Esta 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 básico.

Todos os comandos abaixo são executados como usuário root. Faça login diretamente como usuário root ou faça login como usuário normal e use o comando

su -

para se tornar o 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á definida incorretamente por su.

Certifique-se de que seu /etc/apt/sources.list contenha o repositório bookworm-updates (isso garante que você sempre obtenha as atualizações mais recentes) e que os repositórios contrib, non-free e repositórios de firmware não-livre estão habilitados.

nano /etc/apt/sources.list
#deb cdrom:[Debian GNU/Linux 12.1.0 _Bookworm_ - Official amd64 NETINST with firmware 20230722-10:48]/ bookworm main non-free-firmware

deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware

deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

# bookworm-updates, to get updates before a point release is made;
# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware

# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.

Salve o arquivo.

2 Instale o servidor SSH (opcional)

Se você não instalou o servidor OpenSSH durante a instalação do sistema, você pode fazer isso agora:

apt install ssh openssh-server

A partir de agora, você pode usar um cliente SSH como o PuTTY e conectar-se da sua estação de trabalho ao servidor Debian e seguir as etapas restantes deste tutorial.

3 Instale um editor de texto shell (opcional)

Usaremos o editor de texto nano neste tutorial. Alguns usuários preferem o editor vi clássico, portanto, instalaremos os dois editores aqui. O programa vi padrão tem um comportamento estranho no Debian e no Ubuntu; para corrigir isso, instalamos o vim-nox:

apt install nano vim-nox

Se vi for seu editor favorito, substitua nano por vi nos comandos a seguir para editar arquivos.

4 Configure 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 parte de subdomínio como "example.com" como nome de host, pois isso causará problemas posteriormente com a configuração do seu 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 de host completo incl. domínio - espaço - parte do subdomínio". Para nosso nome de host server1.example.com, o arquivo ficará assim:

nano /etc/hosts
127.0.0.1       localhost.localdomain   localhost
192.168.0.100   server1.example.com     server1

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Em seguida, edite o arquivo /etc/hostname:

nano /etc/hostname

Deve conter apenas a parte do subdomínio, no nosso caso:

server1

Por fim, reinicie o servidor para aplicar a alteração:

systemctl reboot

Faça login novamente e verifique se o nome do host está correto agora com estes comandos:

hostname
hostname -f

A saída será assim:

root@server1:/tmp# hostname
server1
root@server1:/tmp# hostname -f
server1.example.com

5 Atualize sua instalação Debian

Primeiro, certifique-se de que seu /etc/apt/sources.list contenha o repositório bookworm/updates (isso garante que você sempre receba as atualizações de segurança mais recentes) e que o contrib, non-free e firmware não-livre estão habilitados, pois alguns pacotes necessários não estão no repositório principal.

nano /etc/apt/sources.list
#deb cdrom:[Debian GNU/Linux 12.1.0 _Bookworm_ - Official amd64 NETINST with firmware 20230722-10:48]/ bookworm main non-free-firmware

deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware

deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

# bookworm-updates, to get updates before a point release is made;
# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware

# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.

Correr :

apt update

Para atualizar o banco de dados do pacote apt

apt upgrade

e para instalar as atualizações mais recentes (se houver).

6 Sincronize o relógio do sistema

É uma boa ideia sincronizar o relógio do sistema com um servidor NTP (rotocolo de tempo de rede) pela Internet. Simplesmente execute

apt -y install ntp

e a hora do seu sistema estará sempre sincronizada.

7 Instale Postfix, Dovecot, MariaDB, rkhunter e Binutils

Podemos instalar Postfix, Dovecot, MariaDB como alternativa ao MySQL, rkhunter e Binutils com um único comando:

apt -y install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail6 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd sudo curl rsyslog wget gnupg2 lsb-release ufw

Serão feitas as seguintes perguntas:

Tipo geral de configuração de correio: <-- Site da Internet
Nome de correio do sistema: <-- server1.example.com

Para proteger a instalação do MariaDB e desabilitar o banco de dados de teste, execute este comando:

mysql_secure_installation

Responda às perguntas da seguinte forma:

Switch to unix_socket authentication [Y/n] <-- n
Change the root password? [Y/n] <-- y
New password: <-- Enter new password
Re-enter new password: <-- Repeat new password
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Remove test database and access to it? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y

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

nano /etc/postfix/master.cf

Remova o comentário das seções de envios e envios conforme a seguir e adicione linhas quando necessário para que esta seção do arquivo master.cf seja exatamente igual à mostrada abaixo. IMPORTANTE: Remova o # na frente das linhas que começam com envios e envio também e não apenas das linhas -o após essas linhas!

[...]
#127.0.0.1:submission inet n -   y       -       -       smtpd
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_tls_auth_only=yes
#  -o smtpd_reject_unlisted_recipient=no
#     Instead of specifying complex smtpd__restrictions here,
#     specify "smtpd__restrictions=$mua__restrictions"
#     here, and specify mua__restrictions in main.cf (where
#     "" is "client", "helo", "sender", "relay", or "recipient").
#  -o smtpd_client_restrictions=
#  -o smtpd_helo_restrictions=
#  -o smtpd_sender_restrictions=
#  -o smtpd_relay_restrictions=
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
# Choose one: enable submissions for loopback clients only, or for any client.
#127.0.0.1:submissions inet n  -       y       -       -       smtpd
submissions     inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/submissions
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
#  -o smtpd_reject_unlisted_recipient=no
#     Instead of specifying complex smtpd__restrictions here,
#     specify "smtpd__restrictions=$mua__restrictions"
#     here, and specify mua__restrictions in main.cf (where
#     "" is "client", "helo", "sender", "relay", or "recipient").
#  -o smtpd_client_restrictions=
#  -o smtpd_helo_restrictions=
#  -o smtpd_sender_restrictions=
#  -o smtpd_relay_restrictions=
#  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
#628       inet  n       -       y       -       -       qmqpd
[...]

Reinicie o Postfix depois:

systemctl restart postfix

Se você deseja que o MySQL escute em todas as interfaces, não apenas no localhost, para permitir acesso ao MySQL a partir de ferramentas de desktop, então edite /etc/mysql/mariadb.conf.d/50-server.cnf e comente a linha bind-address=127.0.0.1 adicionando um # na frente dele.

nano /etc/mysql/mariadb.conf.d/50-server.cnf
[...]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1
[...]

Edite o arquivo /etc/mysql/debian.cnf e defina a senha root do MYSQL/MariaDB duas vezes nas linhas que começam com a palavra senha.

nano /etc/mysql/debian.cnf

A senha root do MySQL que precisa ser adicionada é mostrada em vermelho. Neste exemplo, a senha é "howtoforge".

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = root
password = "howtoforge"
[mysql_upgrade]
host = localhost
user = root
password = "howtoforge"

Para evitar o erro 'Erro ao aceitar: Muitos arquivos abertos', definiremos limites mais altos de arquivos abertos para o MariaDB agora.

Abra o arquivo /etc/security/limits.conf com um editor:

nano /etc/security/limits.conf

e adicione essas linhas no final do arquivo.

mysql soft nofile 65535
mysql hard nofile 65535

Em 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.conf

cole as seguintes linhas nesse arquivo:

[Service]
LimitNOFILE=infinity

Salve o arquivo e feche o editor nano.

Então recarregamos o systemd e reiniciamos o MariaDB:

systemctl daemon-reload
systemctl restart mariadb

Agora verifique se a rede está habilitada. Correr

netstat -tap | grep mysql

A saída deve ficar assim:

root@server1:/home/administrator# netstat -tap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 16623/mysqld

8 Instale o filtro de e-mail e o software de assinatura Rspamd e ClamAV

Adicione o repositório Rspamd:

CODENAME=`lsb_release -c -s`
wget -qO- https://rspamd.com/apt-stable/gpg.key | tee /etc/apt/trusted.gpg.d/rspamd.asc > /dev/null
echo "deb [arch=amd64] http://rspamd.com/apt-stable/ $CODENAME main" > /etc/apt/sources.list.d/rspamd.list 
echo "deb-src [arch=amd64] http://rspamd.com/apt-stable/ $CODENAME main" >> /etc/apt/sources.list.d/rspamd.list

Para instalar o Rspamd e o ClamAV, executamos

apt install rspamd redis 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 postgrey -y

Ative o Redis na configuração do Rspamd.

echo 'servers = "127.0.0.1";' > /etc/rspamd/local.d/redis.conf

Aumente o histórico do Rspamd, habilite a compactação e mostre o assunto no histórico. Esta etapa é opcional.

echo "nrows = 2500;" > /etc/rspamd/local.d/history_redis.conf 
echo "compress = true;" >> /etc/rspamd/local.d/history_redis.conf
echo "subject_privacy = true;" >> /etc/rspamd/local.d/history_redis.conf

Em seguida, reinicie o Rspamd.

systemctl restart rspamd

9 Instale o servidor Web Apache e PHP

Apache2, PHP, FCGI, suExec, Pear e mcrypt podem ser instalados da seguinte forma:

apt -y install apache2 apache2-utils php8.2 php8.2-fpm php8.2-common php8.2-gd php8.2-mysql php8.2-imap php8.2-cli php8.2-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt imagemagick libruby libapache2-mod-python php8.2-curl php8.2-intl php8.2-pspell php8.2-sqlite3 php8.2-tidy php8.2-xmlrpc php8.2-xsl memcached php-memcache php-imagick php8.2-zip php8.2-mbstring memcached libapache2-mod-passenger php8.2-soap php8.2-opcache php-apcu libapache2-reload-perl php8.2-mcrypt

Agora habilite o php-fpm no Apache:

a2enmod proxy_fcgi setenvif
a2enconf php8.2-fpm

Em seguida, execute o seguinte comando para ativar os módulos adicionais do Apache suexec, rewrite, ssl, actions e include (mais dav, dav_fs e auth_digest se desejar usar WebDAV):

a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest cgi headers actions alias

Para garantir que o servidor não possa ser atacado por meio da vulnerabilidade HTTPOXY, desabilitaremos o cabeçalho HTTP_PROXY no Apache globalmente adicionando o arquivo de configuração /etc/apache2/conf-available/httpoxy.conf.

Observação: A vulnerabilidade é denominada httpoxy (sem 'r') e, portanto, o arquivo onde adicionamos a configuração para evitá-la é denominado httpoxy.conf e não httproxy.conf, portanto, não há 'r' faltando no nome do arquivo.

nano /etc/apache2/conf-available/httpoxy.conf

Cole o seguinte conteúdo no arquivo:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

E ative o módulo executando:

a2enconf httpoxy
systemctl restart apache2

10 Instale, vamos criptografar

ISPConfig está usando acme.sh agora como cliente Let's Encrypt. Instale acme.sh usando o seguinte comando:

curl https://get.acme.sh | sh -s

11 Instale PureFTPd e cota

PureFTPd e quota podem ser instalados com o seguinte comando:

apt install pure-ftpd-common pure-ftpd-mysql quota quotatool

Crie o arquivo dhparam para pure-ftpd:

openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048

Edite 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 autônomo 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 não criptografado. Ao usar o TLS, toda a comunicação pode ser criptografada, tornando o FTP muito mais seguro.

Se você deseja permitir sessões FTP e TLS, execute

echo 1 > /etc/pure-ftpd/conf/TLS

Para usar TLS, devemos criar um certificado SSL. Eu o crio em /etc/ssl/private/, portanto crio esse diretório primeiro:

mkdir -p /etc/ssl/private/

Posteriormente, 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.pem
Country Name (2 letter code) [AU]: <-- Enter your Country Name (e.g., "DE").
State or Province Name (full name) [Some-State]: <-- Enter your State or Province Name.
Locality Name (eg, city) []: <-- Enter your City.
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter your Organization Name (e.g., the name of your company).
Organizational Unit Name (eg, section) []: <-- Enter your Organizational Unit Name (e.g. "IT Department").
Common Name (eg, YOUR name) []: <-- Enter the Fully Qualified Domain Name of the system (e.g. "server1.example.com").
Email Address []: <-- Enter your Email Address.

Altere as permissões do certificado SSL:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Em seguida, reinicie o PureFTPd:

systemctl restart pure-ftpd-mysql

Edite /etc/fstab. O meu fica assim (adicionei ,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 à partição com o ponto de montagem /):

nano /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=45576b38-39e8-4994-b8c1-ea4870e2e614 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# swap was on /dev/sda5 during installation
UUID=8bea0d1e-ec37-4b20-9976-4b7daaa3eb69 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0

Para ativar a cota, execute estes comandos:

mount -o remount /
systemctl daemon-reload
quotacheck -avugm
quotaon -avug

Você receberá a mensagem "quotaon: Seu kernel provavelmente suporta o recurso de cota ext4, mas você está usando arquivos de cota externos. Mude seu sistema de arquivos para usar o recurso de cota ext4, pois os arquivos de cota externos no ext4 estão obsoletos." que está ok e pode ser ignorado.

12 Instale o servidor DNS BIND

O BIND pode ser instalado da seguinte forma:

apt install bind9 dnsutils

Se o seu servidor for uma máquina virtual, é altamente recomendável instalar o daemon hasged para obter uma entropia mais alta para assinatura DNSSEC. Você também pode instalar o haveged em servidores não virtuais, não deve doer.

apt install haveged

Uma explicação sobre esse tópico pode ser encontrada aqui.

13 Instale o substituto do Webalizer awffull, AWStats e GoAccess

Webalizer e AWStats podem ser instalados da seguinte forma:

apt install awffull awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl

Crie o diretório do webalizer e o link simbólico para que o awffull seja reconhecido como webalizer:

mkdir /etc/webalizer
chmod 0755 /etc/webalizer
ln -s /etc/awffull/awffull.conf /etc/webalizer/webalizer.conf
ln -s /usr/bin/awffull /usr/bin/webalizer

Abra /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

# Generate static reports:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

Instalando a versão mais recente do GoAccess diretamente do repositório GoAccess:

echo "deb https://deb.goaccess.io/ $(lsb_release -cs) main" | tee -a /etc/apt/sources.list.d/goaccess.list
wget -O - https://deb.goaccess.io/gnugpg.key | tee /etc/apt/trusted.gpg.d/goaccess.asc >/dev/null
apt update
apt install goaccess

14 Instale o Jailkit

O Jailkit é necessário apenas se você quiser fazer chroot em usuários SSH. Pode ser instalado da seguinte forma:

apt install jailkit

15 Instale fail2ban e Firewall UFW

Isto é opcional, mas recomendado, porque o monitor ISPConfig tenta mostrar o log:

apt install fail2ban

Para fazer o fail2ban monitorar PureFTPd e Dovecot, crie o arquivo /etc/fail2ban/jail.local:

nano /etc/fail2ban/jail.local

E 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 = 3

Reinicie o fail2ban depois:

systemctl restart fail2ban

Para instalar o firewall UFW, execute este comando apt:

apt install ufw

16 Instale a ferramenta de administração de banco de dados PHPMyAdmin

Instale o phpMyAdmin com o apt:

apt install phpmyadmin

Escolha ativar o phpMyAdmin no Apache:

Configure o PHPMyAdmin usando dbconfig comum.

Deixe o campo de senha do aplicativo vazio e pressione Enter. O Apt criará uma senha aleatória segura automaticamente e você não precisará saber essa senha para acessar o PHPMyAdmin posteriormente.

17 Instale o RoundCube Webmail (opcional)

Neste capítulo, instalaremos o cliente de webmail RoundCube.

Em seguida, instale o RoundCube com este comando:

apt install roundcube roundcube-core roundcube-mysql roundcube-plugins

O instalador fará as seguintes perguntas:

Configure database for roundcube with dbconfig.common? <-- yes
MySQL application password for roundcube: <-- press enter

Em seguida, edite o arquivo de configuração do Apache RoundCube /etc/apache2/conf-enabled/roundcube.conf:

nano /etc/apache2/conf-enabled/roundcube.conf

E adicione uma linha de alias para o alias do apache /webmail e outra 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 ispconfig irá parar de funcionar!

Alias /roundcube /var/lib/roundcube/public_html
Alias /webmail /var/lib/roundcube/public_html

Em seguida, recarregue o Apache:

systemctl reload apache2

Agora edite o arquivo de configuração do RoundCube:

nano /etc/roundcube/config.inc.php

E mude a linha:

$config['smtp_host'] = 'localhost:587';

para :

$config['smtp_host'] = 'localhost:25';

Agora você pode acessar o RoundCube da seguinte forma:

https://192.168.0.100:8081/webmail
https://www.example.com:8081/webmail

Depois de instalar o ISPConfig, consulte o próximo capítulo.

Existem alguns plugins para integrar o RoundCube Webmail com o ISPConfig, dê uma olhada aqui para obter as instruções de instalação do plugin ISPConfig RoundCube.

18 Baixe ISPConfig 3.2

Para instalar o ISPConfig 3 da versão mais recente lançada, faça o seguinte:

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

19 Instale o ISPConfig

A próxima etapa é executar o instalador ISPConfig.

php -q install.php

Isso iniciará o instalador do ISPConfig 3. O instalador irá configurar todos os serviços, como Postfix, Dovecot, etc., para você.

php -q install.php
--------------------------------------------------------------------------------
 _____ ___________   _____              __ _         ____
|_   _/  ___| ___ \ /  __ \            / _(_)       /__  \
  | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /
  | |  `--. \  __/  | |    / _ \| '_ \|  _| |/ _` |  |_ |
 _| |_/\__/ / |     | \__/\ (_) | | | | | | | (_| | ___\ \
 \___/\____/\_|      \____/\___/|_| |_|_| |_|\__, | \____/
                                              __/ |
                                             |___/
--------------------------------------------------------------------------------
>> Initial configuration
Operating System: Debian 12.0 (Bookworm) or compatible
    Following will be a few questions for primary configuration so be careful.
    Default values are in [brackets] and can be accepted with <ENTER>.
    Tap in "quit" (without the quotes) to stop the installer.
Select language (en,de) [en]: <-- press enter
Installation mode (standard,expert) [standard]: <-- press enter
Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: <-- press enter
MySQL server hostname [localhost]: <-- press enter
MySQL server port [3306]: <-- press enter
MySQL root username [root]: <-- press enter
MySQL root password []: <-- enter the MySQL root password
MySQL database to create [dbispconfig]: <-- press enter
MySQL charset [utf8]:
Checking MariaDB version 10.11.3 .. OK
Configuring Postgrey
Configuring Postfix
[....]
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: <-- Enter country code
State or Province Name (full name) [Some-State]: <-- Enter state
Locality Name (eg, city) []: <-- Enter City
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter company name
Organizational Unit Name (eg, section) []: <-- press enter
Common Name (e.g. server FQDN or YOUR name) []: <-- Enter server hostname
Email Address []: <-- Enter email address
[INFO] service Mailman not detected
Configuring Dovecot
Creating new DHParams file, this takes several minutes. Do not interrupt the script.
Generating DH parameters, 2048 bit long safe prime
[.....]
[INFO] service Spamassassin not detected
[INFO] service Amavisd not detected
Configuring Rspamd
Configuring Getmail
Configuring Jailkit
Configuring Pureftpd
Configuring BIND
Configuring Apache
Configuring vlogger
[INFO] service OpenVZ not detected
Configuring AppArmor
Configuring Ubuntu Firewall
[INFO] service Metronome XMPP Server not detected
Configuring Fail2ban
Installing ISPConfig
ISPConfig Port [8080]: <-- press enter
Admin password [8563a921]: <-- Enter your ISPConfig admin password, or press enter to accept the one that is shown
Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: <-- press enter
Checking / creating certificate for server1.example.com
Using certificate path /etc/letsencrypt/live/server1.example.com
Server's public ip(s) (91.38.138.191, 2003:e1:bf42:2500:20c:29ff:fe32:617f) not found in A/AAAA records for server1.example.com:
Ignore DNS check and continue to request certificate? (y,n) [n]: <-- press enter
Could not issue letsencrypt certificate, falling back to self-signed.
[....]
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: <-- Enter country code
State or Province Name (full name) [Some-State]: <-- Enter state
Locality Name (eg, city) []: <-- Enter City
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Enter company name
Organizational Unit Name (eg, section) []: <-- press enter
Common Name (e.g. server FQDN or YOUR name) []: <-- Enter server hostname
Email Address []: <-- Enter email address
Symlink ISPConfig SSL certs to Postfix? (y,n) [y]: <-- press Enter
Symlink ISPConfig SSL certs to Pure-FTPd? Creating dhparam file may take some time. (y,n) [y]: <-- press Enter
Configuring Apps vhost
Configuring DBServer
Installing ISPConfig crontab
no crontab for getmail
Detect IP addresses
Restarting services ...
Installation completed.

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.

20 Manual ISPConfig3

Para aprender como 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 (administrador, 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. Ele também descreve como tornar seu servidor mais seguro e possui uma seção de solução de problemas.

21 Download da imagem da máquina virtual deste tutorial

Este tutorial está disponível como imagem de máquina virtual pronta para uso no formato ovf/ova 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 ISPConfig

Nome de usuário: admin
Senha: howtoforge

Login MySQL

Nome de usuário: root
Senha: I7DFg3!cpHfw3bxZj6Fg

O IP da VM é 192.168.0.100. Ele pode ser alterado no arquivo /etc/network/interfaces. Altere todas as senhas acima para proteger a máquina virtual.

23 links

  • Debian: http://www.debian.org/
  • ISPConfig: http://www.ispconfig.org/

Artigos relacionados: