Servidor Web · 33 min read · Sep 08, 2025

O Servidor Perfeito CentOS 8 com Apache, PHP, Postfix, Dovecot, Pure-FTPD, BIND e ISPConfig 3.2

Este tutorial mostra a instalação do ISPConfig 3.2 em um servidor CentOS 8 (64Bit). O ISPConfig é um painel de controle de hospedagem na web que permite configurar os seguintes serviços através de um navegador: servidor web Apache, PHP, servidor de e-mail Postfix, MySQL, servidor de nomes BIND, PureFTPd, SpamAssassin, ClamAV, Mailman e muitos mais.

1 Requisitos

Para instalar um sistema como este, você precisará do seguinte:

  • Um sistema de servidor CentOS 8 minimal. Isso pode ser um servidor instalado do zero, conforme descrito em nosso tutorial de servidor CentOS 8 minimal, ou um servidor virtual ou servidor raiz de uma empresa de hospedagem que tenha uma configuração mínima do CentOS 8 instalada.
  • Uma conexão de Internet rápida.

2 Nota Preliminar

Neste tutorial, uso 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.

3 Preparar o servidor

Definir o layout do teclado

Caso o layout do teclado do servidor não corresponda ao seu teclado, você pode mudar para o teclado correto (no meu caso “de” para um layout de teclado alemão) com o comando localectl:

localectl set-keymap de

Para obter uma lista de todos os keymaps disponíveis, execute:

localectl list-keymaps

Quero instalar o ISPConfig ao final deste tutorial, o ISPConfig vem com o script de firewall Bastille que usarei como firewall, portanto, desativo o firewall padrão do CentOS agora. Claro, você é livre para deixar o firewall do CentOS ativado e configurá-lo de acordo com suas necessidades (mas então você não deve usar nenhum outro firewall mais tarde, pois provavelmente interferirá com o firewall do CentOS).

Execute…

dnf -y install net-tools wget rsyslog curl  
systemctl stop firewalld.service  
systemctl disable firewalld.service

para parar e desativar o firewall do CentOS. É normal se você receber erros aqui, isso apenas indica que o firewall não estava instalado.

Então você deve verificar se o firewall realmente foi desativado. Para isso, execute o comando:

iptables -L

A saída deve ser assim:

[root@server1 ~]# iptables -L  
Chain INPUT (policy ACCEPT)  
target prot opt source destination
Chain FORWARD (policy ACCEPT)  
target prot opt source destination
Chain OUTPUT (policy ACCEPT)  
target prot opt source destination

Ou use o comando firewall-cmd:

firewall-cmd --state
[root@server1 ~]# firewall-cmd --state  
not running  
[root@server1 ~]#

Agora vou instalar o editor de configuração de rede e o editor baseado em shell “nano” que usarei nos próximos passos para editar os arquivos de configuração:

dnf -y install nano wget NetworkManager-tui yum-utils

Se você não configurou sua placa de rede durante a instalação, pode fazer isso agora. Execute…

nmtui

… e vá para Editar uma conexão:

Editar conexão de rede

Selecione sua interface de rede:

Selecionar interface de rede

Em seguida, preencha os detalhes da sua rede - desative o DHCP e preencha um endereço IP estático, uma máscara de rede, seu gateway e um ou dois servidores de nomes, depois clique em Ok:

Definir máscara de rede

Em seguida, selecione OK para confirmar as alterações que você fez nas configurações de rede

e Sair para fechar a ferramenta de configuração de rede nmtui.

Sair do nmtui

Você deve executar

ifconfig

agora para verificar se o instalador obteve seu endereço IP corretamente:

[root@server1 ~]# ifconfig  
ens33: flags=4163  mtu 1500  
        inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255  
        inet6 fe80::20c:29ff:feee:b665  prefixlen 64  scopeid 0x20  
        inet6 2003:e1:bf22:1b00:20c:29ff:feee:b665  prefixlen 64  scopeid 0x0  
        ether 00:0c:29:ee:b6:65  txqueuelen 1000  (Ethernet)  
        RX packets 2874  bytes 1369892 (1.3 MiB)  
        RX errors 0  dropped 546  overruns 0  frame 0  
        TX packets 968  bytes 160901 (157.1 KiB)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73  mtu 65536  
        inet 127.0.0.1  netmask 255.0.0.0  
        inet6 ::1  prefixlen 128  scopeid 0x10  
        loop  txqueuelen 1000  (Local Loopback)  
        RX packets 0  bytes 0 (0.0 B)  
        RX errors 0  dropped 0  overruns 0  frame 0  
        TX packets 0  bytes 0 (0.0 B)  
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Se sua placa de rede não aparecer lá, então ela não estará habilitada na inicialização. Nesse caso, abra o arquivo /etc/sysconfig/network-scripts/ifcfg-eth0

nano /etc/sysconfig/network-scripts/ifcfg-ens33

e defina ONBOOT como yes:

[...]  
ONBOOT=yes  
[...]  

e reinicie o servidor.

Verifique seu /etc/resolv.conf se ele lista todos os servidores de nomes que você configurou anteriormente:

cat /etc/resolv.conf

Se os servidores de nomes estiverem faltando, execute

nmtui

e adicione os servidores de nomes que estão faltando novamente.

Agora, para a configuração…

Ajustando /etc/hosts e /etc/hostname

Em seguida, editaremos /etc/hosts. Deixe-o assim:

nano /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4  
192.168.0.100   server1.example.com     server1  
  
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

Defina o nome do host no arquivo /etc/hostname. O arquivo deve conter o nome de domínio totalmente qualificado (por exemplo, server1.example.com no meu caso) e não apenas o nome curto como “server1”. Abra o arquivo com o editor nano:

nano /etc/hostname

E defina o nome do host no arquivo.

server1.example.com

Salve o arquivo e saia do nano.

Definir SELinux como permissivo

SELinux é uma extensão de segurança do CentOS que deve fornecer segurança estendida. O ISPConfig não vem com um conjunto de regras SELinux, portanto, eu o defino como permissivo (isso é obrigatório se você quiser instalar o ISPConfig mais tarde).

Edite /etc/selinux/config e defina SELINUX=permissive:

nano /etc/selinux/config
# Este arquivo controla o estado do SELinux no sistema.  
# SELINUX= pode ter um destes três valores:  
#     enforcing - A política de segurança do SELinux é aplicada.  
#     permissive - O SELinux imprime avisos em vez de aplicar.  
#     disabled - Nenhuma política SELinux é carregada.  
SELINUX=permissive  
# SELINUXTYPE= pode ter um destes dois valores:  
#     targeted - Processos direcionados são protegidos,  
#     mls - Proteção de Segurança de Múltiplos Níveis.  
SELINUXTYPE=targeted

Depois disso, devemos reiniciar o sistema:

reboot

4 Habilitar Repositórios Adicionais e Instalar Alguns Softwares

Primeiro, importamos as chaves GPG para pacotes de software:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Em seguida, habilitamos o repositório EPEL em nosso sistema CentOS, pois muitos dos pacotes que vamos instalar ao longo deste tutorial não estão disponíveis no repositório oficial do CentOS 8:

dnf -y install epel-release

Ative Power Tools:

dnf config-manager --set-enabled powertools

Em seguida, atualizamos nossos pacotes existentes no sistema:

dnf -y update

Agora instalamos alguns pacotes de software que são necessários mais tarde:

dnf -y groupinstall 'Development Tools'

5 Quota

(Se você escolheu um esquema de particionamento diferente do que eu, deve ajustar este capítulo para que a quota se aplique às partições onde você precisa dela.)

Para instalar quota, executamos este comando:

dnf -y install quota

Agora verificamos se a quota já está habilitada para o sistema de arquivos onde o site (/var/www) e os dados do Maildir (var/vmail) estão armazenados. Neste exemplo, tenho uma grande partição raiz, então procuro por ‘ / ‘:

mount | grep ' / '
[root@server1 ~]# mount | grep ' / '  
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)  
[root@server1 ~]#

Se você tiver uma partição /var separada, use:

mount | grep ' /var '

em vez disso. Se a linha contiver a palavra “ noquota “, então prossiga com os seguintes passos para habilitar a quota.

Habilitando quota na partição / (raiz)

Normalmente, você habilitaria a quota no arquivo /etc/fstab, mas se o sistema de arquivos for o sistema de arquivos raiz “/“, então a quota deve ser habilitada por um parâmetro de inicialização do Kernel Linux.

Edite o arquivo de configuração do grub:

nano /etc/default/grub

Procure pela linha que começa com GRUB_CMDLINE_LINUX e adicione rootflags=uquota,gquota aos parâmetros da linha de comando para que a linha resultante fique assim:

GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rootflags=uquota,gquota"

e aplique as alterações executando o seguinte comando.

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak  
grub2-mkconfig -o /boot/grub2/grub.cfg

e reinicie o servidor.

reboot

Agora verifique se a quota está habilitada:

mount | grep ' / '
[root@server1 ~]# mount | grep ' / '  
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)  
[root@server1 ~]#

Quando a quota está ativa, podemos ver “ usrquota,grpquota “ na lista de opções de montagem.

Habilitando quota em uma partição /var separada

Se você tiver uma partição /var separada, então edite /etc/fstab e adicione,uquota,gquota à partição / ( /dev/mapper/centos-var):

nano /etc/fstab
  
#  
# /etc/fstab  
# Criado pelo anaconda em Dom Set 21 16:33:45 2014  
#  
# Sistemas de arquivos acessíveis, por referência, são mantidos sob '/dev/disk'  
# Veja as páginas de manual fstab(5), findfs(8), mount(8) e/ou blkid(8) para mais informações  
#  
/dev/mapper/centos-root /                       xfs     defaults        1 1  
/dev/mapper/centos-var /var                     xfs     defaults,uquota,gquota        1 2  
UUID=9ac06939-7e43-4efd-957a-486775edd7b4 /boot                   xfs     defaults        1 3  
/dev/mapper/centos-swap swap                    swap    defaults        0 0

Em seguida, execute

mount -o remount /var
quotacheck -avugm  
quotaon -avug

para habilitar a quota. Quando você receber um erro de que não há partição com quota habilitada, reinicie o servidor antes de prosseguir.

6 Instalar Apache, PHP, MySQL e phpMyAdmin

Habilite o repositório Remi para obter versões mais recentes do PHP (atualmente PHP 7.4):

dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm  
dnf -y install yum-utils  
dnf -y module reset php  
dnf -y module install php:remi-7.4  
dnf update

Podemos instalar os pacotes necessários com um único comando:

dnf -y install httpd mod_ssl mariadb-server php php-mysqlnd php-mbstring

Para garantir que o servidor não possa ser atacado através da vulnerabilidade HTTPOXY, desabilitaremos o cabeçalho HTTP_PROXY no Apache globalmente.

Adicione a regra de cabeçalho do Apache ao final do arquivo httpd.conf:

echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf

E reinicie o httpd para aplicar a alteração de configuração.

service httpd restart

Instale o phpMyAdmin:

cd /tmp  
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.tar.gz  
tar xzvf phpMyAdmin-5.0.2-all-languages.tar.gz  
mkdir /usr/share/phpmyadmin  
mv phpMyAdmin-5.0.2-all-languages/* /usr/share/phpmyadmin/  
mkdir /usr/share/phpmyadmin/tmp  
chown -R apache:apache /usr/share/phpmyadmin  
chmod 777 /usr/share/phpmyadmin/tmp

Opcional: Mudar o Módulo MPM do Apache

O CentOS 8 usa o módulo MPM Event do Apache por padrão, isso é bom de um lado, pois permite que você use o protocolo HTTP/2. Por outro lado, não permite que você use o módulo mod_php do Apache. Em geral, deve-se usar o PHP-FPM como padrão hoje e o ISPConfig suporta isso. Caso você precise do antigo modo mod_php por razões de compatibilidade, então você pode mudar o MPM do Apache assim:

nano /etc/httpd/conf.modules.d/00-mpm.conf

Adicione um # na frente da linha do MPM event para que fique assim:

# LoadModule mpm_event_module modules/mod_mpm_event.so

Em seguida, remova o # na frente da linha do MPM Prefork, para que fique assim:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Então reinicie o httpd para aplicar a alteração de configuração.

service httpd restart

7 Instalar Dovecot

Dovecot pode ser instalado da seguinte forma:

dnf -y install dovecot dovecot-mysql dovecot-pigeonhole

Crie um arquivo dovecot-sql.conf vazio e crie links simbólicos:

touch /etc/dovecot/dovecot-sql.conf  
ln -s /etc/dovecot/dovecot-sql.conf /etc/dovecot-sql.conf  
ln -s /etc/dovecot/dovecot.conf /etc/dovecot.conf

Agora crie os links de inicialização do sistema e inicie o Dovecot:

systemctl enable dovecot  
systemctl start dovecot

8 Instalar Postfix

Postfix pode ser instalado da seguinte forma:

dnf -y install postfix postfix-mysql

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

Em seguida, desative o Sendmail e inicie o Postfix e o MariaDB (MySQL):

systemctl enable mariadb.service  
systemctl start mariadb.service
systemctl enable postfix.service  
systemctl restart postfix.service

Desativamos o sendmail para garantir que ele não seja iniciado caso esteja instalado em seu servidor. Portanto, a mensagem de erro “Falha ao emitir chamada de método: Unidade sendmail.service não carregada.” pode ser ignorada.

Para habilitar suporte a dispositivos antigos/desatualizados, execute este comando (opcional, use apenas quando quiser que dispositivos de e-mail antigos se conectem, pois isso enfraquece a configuração SSL/TLS ao permitir cifras menos seguras):

update-crypto-policies --set LEGACY

9 Instalar Getmail

Getmail pode ser instalado da seguinte forma:

dnf install python2  
cd /tmp  
wget http://pyropus.ca/software/getmail/old-versions/getmail-5.14.tar.gz  
tar xvfz getmail-5.14.tar.gz  
cd getmail-5.14  
python2 setup.py build  
python2 setup.py install

10 Definir Senhas do MySQL e Configurar o phpMyAdmin

Defina senhas para a conta root do MySQL:

mysql_secure_installation
[root@server1 tmp]# mysql_secure_installation  
  
NOTE: EXECUTAR TODAS AS PARTES DESTE SCRIPT É RECOMENDADO PARA TODOS OS SERVIDORES MariaDB EM USO DE PRODUÇÃO! POR FAVOR, LEIA CADA ETAPA COM CUIDADO!
Para fazer login no MariaDB e garantir sua segurança, precisaremos da senha atual para o usuário root. Se você acabou de instalar o MariaDB e não definiu a senha root ainda, a senha estará em branco, então você deve apenas pressionar enter aqui.
Digite a senha atual para root (pressione enter para nenhuma):  
OK, senha usada com sucesso, prosseguindo...
Definir a senha root garante que ninguém possa fazer login no usuário root do MariaDB sem a devida autorização.  

Definir senha root? [Y/n] <-- ENTER  
Nova senha: <-- sua senha root do sql  
Re-enter nova senha: <-- sua senha root do sql  
Senha atualizada com sucesso!  
Recarregando tabelas de privilégios..  
 ... Sucesso!  
  
Por padrão, uma instalação do MariaDB tem um usuário anônimo, permitindo que qualquer um faça login no MariaDB sem ter uma conta de usuário criada para eles. Isso é destinado apenas para testes e para facilitar a instalação. Você deve removê-los antes de entrar em um ambiente de produção.  
  
Remover usuários anônimos? [Y/n] <-- ENTER  
 ... Sucesso!  
  
Normalmente, o root deve ser permitido apenas conectar a partir de 'localhost'. Isso garante que alguém não possa adivinhar a senha root pela rede.  
  
Desabilitar login remoto do root? [Y/n] <-- ENTER  
 ... Sucesso!  
  
Por padrão, o MariaDB vem com um banco de dados chamado 'teste' que qualquer um pode acessar. Isso também é destinado apenas para testes e deve ser removido antes de entrar em um ambiente de produção.  
  
Remover banco de dados de teste e acesso a ele? [Y/n] <-- ENTER  
 - Removendo banco de dados de teste...  
 ... Sucesso!  
 - Removendo privilégios no banco de dados de teste...  
 ... Sucesso!  
  
Recarregar as tabelas de privilégios garantirá que todas as alterações feitas até agora tenham efeito imediatamente.  
  
Recarregar tabelas de privilégios agora? [Y/n] <-- ENTER  
 ... Sucesso!  
  
Limpando...  
  
Tudo pronto! Se você completou todas as etapas acima, sua instalação do MariaDB deve agora estar segura.  
  
Obrigado por usar o MariaDB!  
  
[root@server1 tmp]#

Agora configuramos o phpMyAdmin. Crie este arquivo de configuração do phpMyAdmin:

nano /etc/httpd/conf.d/phpmyadmin.conf

Adicione este conteúdo ao arquivo:

# phpMyAdmin - Navegador MySQL baseado na web escrito em php  
# Permite apenas localhost por padrão  
# Mas permitir phpMyAdmin a qualquer um além de localhost deve ser considerado  
# perigoso, a menos que devidamente protegido por SSL

Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /phpmyadmin /usr/share/phpmyadmin


   
     # Apache 2.4
  #  
     #  Require ip 127.0.0.1
     #  Require ip ::1
  #  
   
   
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   

            

Em seguida, mudamos a autenticação no phpMyAdmin de cookie para http:

cp -pf /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php  
nano /usr/share/phpmyadmin/config.inc.php
[...]  
/* Tipo de autenticação */  
$cfg['Servers'][$i]['auth_type'] = 'http';  
[...]  

Então criamos os links de inicialização do sistema para o Apache e o iniciamos:

systemctl enable httpd  
systemctl restart httpd

Agora você pode direcionar seu navegador para http://server1.example.com/phpmyadmin/ ou http://192.168.0.100/phpmyadmin/ e fazer login com o nome de usuário root e sua nova senha root do MySQL.

11 Instalar Amavisd-new, SpamAssassin, ClamAV e Postgrey

Para instalar amavisd-new, SpamAssassin e ClamAV, execute o seguinte comando:

dnf -y install amavisd-new spamassassin clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd unzip bzip2 perl-DBD-mysql postgrey re2c

Em seguida, iniciamos freshclam, amavisd e clamd.amavisd:

sa-update  
freshclam  
systemctl enable amavisd.service  
systemctl start amavisd.service  
systemctl start [email protected]  
systemctl enable postgrey.service  
systemctl start postgrey.service

Na próxima etapa, configuramos o postgrey. Abra o arquivo /etc/sysconfig/postgrey em um editor:

nano /etc/sysconfig/postgrey

e altere a linha:

POSTGREY_TYPE="--unix=/var/spool/postfix/postgrey/socket"

para

POSTGREY_TYPE="--inet=10023"

Salve o arquivo e reinicie o postgrey:

service postgrey restart

Para configurar amavisd, edite o arquivo /etc/clamd.d/amavisd.conf:

nano /etc/clamd.d/amavisd.conf

e altere a linha:

LocalSocket /run/clamd.amavisd/clamd.sock

para

LocalSocket /var/spool/amavisd/clamd.sock

Salve o arquivo de configuração alterado e reinicie o ClamAV:

systemctl restart [email protected]

Agora precisamos criar uma unidade de sistema para o serviço freshclam. Crie um novo arquivo /usr/lib/systemd/system/freshclam.service:

nano /usr/lib/systemd/system/freshclam.service

e insira o seguinte conteúdo nesse arquivo:

[Unit]
Description = ClamAV Scanner
After = network.target

[Service]
Type = forking
# se você quiser escanear mais de uma vez em um dia, mude o número 1 pelo seu número desejado na linha abaixo.
ExecStart = /usr/bin/freshclam -d -c 1
Restart = on-failure
PrivateTmp =true

[Install]
WantedBy=multi-user.target

Salve o arquivo e, em seguida, habilite e inicie o serviço.

systemctl enable freshclam.service  
systemctl start freshclam.service  
systemctl status freshclam.service

12 Instalando Apache com mod_php, mod_fcgi/PHP, PHP-FPM

O ISPConfig 3 permite que você use mod_php, mod_fcgi/PHP, cgi/PHP e PHP-FPM em uma base por site.

Podemos instalar o Apache2 com mod_php, mod_fcgid e PHP da seguinte forma:

dnf -y install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-mbstring php-mcrypt php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel php-fpm php-intl php-imagick php-pspell wget

Em seguida, abrimos /etc/php.ini…

nano /etc/php.ini

… e mudamos o relatório de erros (para que os avisos não sejam mais exibidos), definimos o fuso horário e descomentamos cgi.fix_pathinfo=1:

[...]  
;error_reporting = E_ALL & ~E_DEPRECATED
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT
[...]  
; cgi.fix_pathinfo fornece suporte *real* para PATH_INFO/PATH_TRANSLATED para CGI.  O comportamento anterior do PHP era definir PATH_TRANSLATED como SCRIPT_FILENAME, e não entender  
; o que é PATH_INFO.  Para mais informações sobre PATH_INFO, veja as especificações cgi.  Definir  
; isso como 1 fará com que o PHP CGI corrija seus caminhos para se conformar à especificação.  Um valor  
; de zero faz com que o PHP se comporte como antes.  O padrão é 1.  Você deve corrigir seus scripts  
; para usar SCRIPT_FILENAME em vez de PATH_TRANSLATED.
; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo
cgi.fix_pathinfo=1  
[...]  
date.timezone = 'Europe/Berlin'
[...]  

Habilite o httpd e o PHP-FPM para iniciar na inicialização e inicie o serviço PHP-FPM.

systemctl start php-fpm.service  
systemctl enable php-fpm.service  
systemctl enable httpd.service

Finalmente, reiniciamos o Apache:

systemctl restart httpd

Agora adicionaremos suporte para Let’s encrypt. O ISPConfig está usando acme.sh agora como cliente Let’s Encrypt. Instale o acme.sh usando o seguinte comando:

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

13 Instalação do mod_python

O módulo do Apache mod_python não está disponível como pacote RPM, portanto, o compilaremos a partir do código-fonte. O primeiro passo é instalar os arquivos de desenvolvimento do python e baixar a versão atual do mod_python como arquivo .tar.gz

dnf -y install python3-devel
cd /usr/local/src/  
wget https://fossies.org/linux/www/apache_httpd_modules/mod_python-3.5.0.tgz  
tar xfz mod_python-3.5.0.tgz  
cd mod_python-3.5.0

e então configurar e compilar o módulo.

./configure --with-python=/usr/bin/python3  
make

Há um erro no módulo compilado que fará com que a instalação falhe com o erro “ version = “fatal: Not a git repository (or any of the parent directories): .git “. Para corrigir isso, execute este comando sed (o comando é uma linha!).

sed -e 's/(git describe --always)/(git describe --always 2>\/dev\/null)/g' -e 's/`git describe --always`/`git describe --always 2>\/dev\/null`/g' -i $( find . -type f -name Makefile\* -o -name version.sh )

Em seguida, instale o módulo com este comando.

make install

e habilite o módulo no Apache:

echo 'LoadModule python_module modules/mod_python.so' > /etc/httpd/conf.modules.d/10-python.conf  
systemctl restart httpd.service

14 Instalar PureFTPd

PureFTPd pode ser instalado com o seguinte comando:

dnf -y install pure-ftpd

Em seguida, crie os links de inicialização do sistema e inicie o PureFTPd:

systemctl enable pure-ftpd.service  
systemctl start pure-ftpd.service

Agora configuramos o PureFTPd para permitir sessões FTP e TLS. O 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.

OpenSSL é necessário pelo TLS; para instalar o OpenSSL, simplesmente execute:

dnf install openssl

Abra /etc/pure-ftpd/pure-ftpd.conf…

nano /etc/pure-ftpd/pure-ftpd.conf

Se você quiser permitir sessões FTP e TLS, defina TLS como 1 removendo o # na frente da linha TLS. É altamente recomendável habilitar TLS.

[...]  
# Esta opção pode aceitar três valores :  
# 0 : desabilitar a camada de criptografia SSL/TLS (padrão).  
# 1 : aceitar tanto sessões tradicionais quanto criptografadas.  
# 2 : recusar conexões que não utilizem mecanismos de segurança SSL/TLS,  
#     incluindo sessões anônimas.  
# Não descomente isso cegamente. Certifique-se de que :  
# 1) Seu servidor foi compilado com suporte a SSL/TLS (--with-tls),  
# 2) Um certificado válido está em vigor,  
# 3) Apenas clientes compatíveis poderão fazer login.

TLS                      1
[...]  

Para 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.pem

Nome do País (código de 2 letras) [XX]: <– Digite o Nome do seu País (por exemplo, “DE”).
Nome do Estado ou Província (nome completo) []: <– Digite o Nome do seu Estado ou Província.
Nome da Localidade (por exemplo, cidade) [Cidade Padrão]: <– Digite sua Cidade.
Nome da Organização (por exemplo, empresa) [Empresa Padrão Ltda]: <– Digite o Nome da sua Organização (por exemplo, o nome da sua empresa).
Nome da Unidade Organizacional (por exemplo, seção) []: <– Digite o Nome da sua Unidade Organizacional (por exemplo, “Departamento de TI”).
Nome Comum (por exemplo, seu nome ou o nome do host do seu servidor) []: <– Digite o Nome de Domínio Totalmente Qualificado do sistema (por exemplo, “server1.example.com”).
Endereço de E-mail []: <– Digite seu Endereço de E-mail.

Altere as permissões do certificado SSL:

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

Crie um arquivo DHParam:

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

Finalmente, reinicie o PureFTPd:

systemctl restart pure-ftpd.service

É isso. Agora você pode tentar se conectar usando seu cliente FTP; no entanto, deve configurar seu cliente FTP para usar TLS.

15 Instalar BIND

Podemos instalar o BIND da seguinte forma:

dnf -y install bind bind-utils haveged

Faça um backup do arquivo existente /etc/named.conf e crie um novo da seguinte forma:

cp /etc/named.conf /etc/named.conf_bak  
cat /dev/null > /etc/named.conf  
nano /etc/named.conf
// named.conf
// Fornecido pelo pacote bind da Red Hat para configurar o servidor DNS ISC BIND named(8)  
// como um servidor de nomes apenas em cache (como um resolvedor DNS localhost apenas).  
// Veja /usr/share/doc/bind*/sample/ para exemplos de arquivos de configuração named.  
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { any; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
                allow-recursion {"none";};
        recursion no;
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
        type hint;
        file "named.ca";
};
include "/etc/named.conf.local";

Crie o arquivo /etc/named.conf.local que é incluído no final de /etc/named.conf ( /etc/named.conf.local será posteriormente preenchido pelo ISPConfig se você criar zonas DNS no ISPConfig):

touch /etc/named.conf.local

Em seguida, criamos os links de inicialização e iniciamos o BIND:

systemctl enable named.service  
systemctl start named.service  
systemctl enable haveged.service  
systemctl start haveged.service

16 Instalar AWStats

AWStats pode ser instalado da seguinte forma:

dnf -y install awstats perl-DateTime-Format-HTTP perl-DateTime-Format-Builder

A alternativa de aplicativo de estatísticas da web ‘webalizer’ não está mais disponível para CentOS 8, então você só poderá usar o AWStats.

17 Instalar Jailkit

Jailkit é usado para chroot usuários SSH e cronjobs. Pode ser instalado da seguinte forma:

ln -s /usr/bin/python2 /usr/bin/python  
cd /tmp  
wget http://olivier.sessink.nl/jailkit/jailkit-2.21.tar.gz  
tar xvfz jailkit-2.21.tar.gz  
cd jailkit-2.21  
./configure  
make  
make install  
cd ..  
rm -rf jailkit-2.21*

18 Instalar Fail2Ban

Isso é opcional, mas recomendado, porque o monitor do ISPConfig tenta mostrar o log.

dnf -y install iptables-services fail2ban fail2ban-systemd  
systemctl stop firewalld.service  
systemctl mask firewalld.service  
systemctl disable firewalld.service

Em seguida, criamos o arquivo /etc/fail2ban/jail.local e habilitamos o monitoramento para ssh, e-mail e serviço ftp.

nano /etc/fail2ban/jail.local

Adicione o seguinte conteúdo ao arquivo jail.local:

[sshd]  
enabled = true  
action = iptables[name=sshd, port=ssh, protocol=tcp]  
  
[pure-ftpd]  
enabled = true  
action = iptables[name=FTP, port=ftp, protocol=tcp]  
maxretry = 3  
  
[dovecot]  
enabled = true  
action = iptables-multiport[name=dovecot, port="pop3,pop3s,imap,imaps", protocol=tcp]  
maxretry = 5  
  
[postfix-sasl]  
enabled = true  
action = iptables-multiport[name=postfix-sasl, port="smtp,smtps,submission", protocol=tcp]  
maxretry = 3

Em seguida, crie os links de inicialização do sistema para o fail2ban e inicie-o:

systemctl enable fail2ban.service  
systemctl start fail2ban.service

19 Instalar rkhunter

rkhunter pode ser instalado da seguinte forma:

dnf -y install rkhunter

20 Instalar Mailman

Se você deseja gerenciar listas de discussão com o Mailman em seu servidor, então instale o mailman agora. O Mailman é suportado pelo ISPConfig, então você poderá criar novas listas de discussão através do ISPConfig mais tarde.

dnf -y install mailman

Antes de podermos iniciar o Mailman, uma primeira lista de discussão chamada mailman deve ser criada:

touch /var/lib/mailman/data/aliases  
postmap /var/lib/mailman/data/aliases  
/usr/lib/mailman/bin/newlist mailman  
ln -s /usr/lib/mailman/mail/mailman /usr/bin/mailman

[root@server1 tmp]# /usr/lib/mailman/bin/newlist mailman
Digite o e-mail da pessoa que está executando a lista: <– endereço de e-mail do administrador, por exemplo, [email protected]
Senha inicial do mailman: <– senha do administrador para a lista do mailman
Para terminar de criar sua lista de discussão, você deve editar seu arquivo /etc/aliases (ou equivalente) adicionando as seguintes linhas, e possivelmente executando o programa newaliases:

lista de discussão mailman

mailman: “|/usr/lib/mailman/mail/mailman post mailman”
mailman-admin: “|/usr/lib/mailman/mail/mailman admin mailman”
mailman-bounces: “|/usr/lib/mailman/mail/mailman bounces mailman”
mailman-confirm: “|/usr/lib/mailman/mail/mailman confirm mailman”
mailman-join: “|/usr/lib/mailman/mail/mailman join mailman”
mailman-leave: “|/usr/lib/mailman/mail/mailman leave mailman”
mailman-owner: “|/usr/lib/mailman/mail/mailman owner mailman”
mailman-request: “|/usr/lib/mailman/mail/mailman request mailman”
mailman-subscribe: “|/usr/lib/mailman/mail/mailman subscribe mailman”
mailman-unsubscribe: “|/usr/lib/mailman/mail/mailman unsubscribe mailman”

Pressione enter para notificar o proprietário do mailman… <– ENTER

[root@server1 tmp]#

Abra /etc/aliases depois…

nano /etc/aliases

… e adicione as seguintes linhas:

[...]  
mailman:              "|/usr/lib/mailman/mail/mailman post mailman"
mailman-admin:        "|/usr/lib/mailman/mail/mailman admin mailman"
mailman-bounces:      "|/usr/lib/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/usr/lib/mailman/mail/mailman confirm mailman"
mailman-join:         "|/usr/lib/mailman/mail/mailman join mailman"
mailman-leave:        "|/usr/lib/mailman/mail/mailman leave mailman"
mailman-owner:        "|/usr/lib/mailman/mail/mailman owner mailman"
mailman-request:      "|/usr/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/usr/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/usr/lib/mailman/mail/mailman unsubscribe mailman"

Execute

newaliases

e reinicie o Postfix:

systemctl restart postfix.service

Agora abra o arquivo de configuração do Apache do Mailman /etc/httpd/conf.d/mailman.conf…

nano /etc/httpd/conf.d/mailman.conf

… e adicione a linha ScriptAlias /cgi-bin/mailman/ /usr/lib/mailman/cgi-bin/. Comente Alias /pipermail/ /var/lib/mailman/archives/public/ e adicione a linha Alias /pipermail /var/lib/mailman/archives/public/:

#  
#  configurações de httpd para uso com mailman.  
#
ScriptAlias /mailman/ /usr/lib/mailman/cgi-bin/
ScriptAlias /cgi-bin/mailman/ /usr/lib/mailman/cgi-bin/

    AllowOverride None
    Options ExecCGI
    Order allow,deny
    Allow from all


#Alias /pipermail/ /var/lib/mailman/archives/public/
Alias /pipermail /var/lib/mailman/archives/public/

    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    AddDefaultCharset Off


# Descomente a linha a seguir, para redirecionar consultas para /mailman para a
# página listinfo (recomendado).

# RedirectMatch ^/mailman[/]*$ /mailman/listinfo

Reinicie o Apache:

systemctl restart httpd.service

Crie os links de inicialização do sistema para o Mailman e inicie-o:

systemctl enable mailman.service  
systemctl start mailman.service

Depois de instalar o ISPConfig 3, você pode acessar o Mailman da seguinte forma:

Você pode usar o alias /cgi-bin/mailman para todos os vhosts do Apache (por favor, note que suExec e CGI devem ser desativados para todos os vhosts dos quais você deseja acessar o Mailman!), o que significa que você pode acessar a interface de administração do Mailman para uma lista em http:///cgi-bin/mailman/admin/, e a página da web para usuários de uma lista de discussão pode ser encontrada em http:///cgi-bin/mailman/listinfo/.

Em http:///pipermail/ você pode encontrar os arquivos de lista de discussão.

21 Instalar Roundcube webmail

Para instalar o cliente webmail RoundCube, baixe a versão mais recente com wget para a pasta /tmp:

cd /tmp  
wget https://github.com/roundcube/roundcubemail/releases/download/1.4.3/roundcubemail-1.4.3-complete.tar.gz

Descompacte o arquivo tar.gz e mova a fonte do RoundCube para /usr/share/roundcubemail

tar xfz roundcubemail-1.4.3-complete.tar.gz  
mkdir /usr/share/roundcubemail  
mv /tmp/roundcubemail-1.4.3/* /usr/share/roundcubemail/  
chown -R root:root /usr/share/roundcubemail  
chown apache /usr/share/roundcubemail/temp  
chown apache /usr/share/roundcubemail/logs

Crie um arquivo de configuração roundcubemail.conf com o editor nano:

nano /etc/httpd/conf.d/roundcubemail.conf

E adicione o seguinte conteúdo a esse arquivo:

#
# Round Cube Webmail é um cliente IMAP multilíngue baseado em navegador
#

Alias /roundcubemail /usr/share/roundcubemail  
Alias /webmail /usr/share/roundcubemail

# Defina quem pode acessar o Webmail
# Você pode aumentar as permissões uma vez configurado


        Options none
        AllowOverride Limit
        Require all granted


# Defina quem pode acessar o instalador
# mantenha isso seguro uma vez configurado


        Options none
        AllowOverride Limit
        Require all granted



# Esses diretórios não devem ser visualizados por clientes Web.

    Order Allow,Deny
    Deny from all


    Order Allow,Deny
    Deny from all

Reinicie o Apache:

systemctl restart httpd.service

Agora precisamos de um banco de dados para o RoundCube mail, o inicializaremos da seguinte forma:

mysql -u root -p

No prompt do MariaDB, use:

CREATE DATABASE roundcubedb;  
CREATE USER roundcubeuser@localhost IDENTIFIED BY 'roundcubepassword';  
GRANT ALL PRIVILEGES on roundcubedb.* to roundcubeuser@localhost ;  
FLUSH PRIVILEGES;  
exit

Estou usando os detalhes para o banco de dados RoundCube como exemplo, por favor, substitua os valores conforme sua escolha por razões de segurança.

Agora instalaremos o RoundCube no navegador em http://192.168.0.100/roundcubemail/installer

Agora crie o arquivo config.inc.php:

nano /usr/share/roundcubemail/config/config.inc.php

Em seguida, pressione “continuar” no instalador da web. Na página seguinte, pressione o botão “Inicializar banco de dados”.

Finalmente, desative o instalador do Roundecubemail. Altere o arquivo de configuração config.inc.php do RoundCube

nano /usr/share/roundcubemail/config/config.inc.php

e mude a linha:

$config['enable_installer'] = true;

para:

$config['enable_installer'] = false;

O Roundcube agora está disponível sob os aliases /webmail e /roundcubemail em seu servidor:

http://192.168.0.100/webmail

O login do RoundCube é o endereço de e-mail e a senha de uma conta de e-mail que você cria mais tarde no ISPConfig.

22 Instalar ISPConfig 3.2

O instalador do ISPConfig configurará todos os serviços como Postfix, Dovecot, etc. para você.

Você agora também tem a possibilidade de deixar o instalador criar um vhost SSL para o painel de controle do ISPConfig, para que o ISPConfig possa ser acessado usando https:// em vez de http://. Para conseguir isso, basta pressionar ENTER quando você ver esta pergunta: Você deseja uma conexão segura (SSL) com a interface web do ISPConfig (y,n) [y]:.

Para instalar a versão noturna do ISPConfig 3.2, faça isso:

cd /tmp   
wget -O ispconfig.tar.gz https://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz   
tar xfz ispconfig.tar.gz   
cd ispconfig3*/install/

O próximo passo é executar:

php -q install.php

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

[root@server1 install]# php install.php
  
--------------------------------------------------------------------------------  
_____ ___________ _____ __ _ ____  
|_ _/ ___| ___ \ / __ \ / _(_) /__ \  
| | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ /  
| | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ |  
_| |_\/__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \  
\___/\____/\_| \____/\___/|_| |_|_| |_|
  
>> Configuração inicial
Sistema Operacional: CentOS 8.2

A seguir, haverá 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.

Selecionar idioma (en,de) [en]: <– Pressione Enter

Modo de instalação (padrão, especialista) [padrão]: <– Pressione Enter

Nome do host totalmente qualificado (FQDN) do servidor, por exemplo, server1.domain.tld [server1.example.com]: <– Pressione Enter

Nome do host do servidor MySQL [localhost]: <– Pressione Enter

Porta do servidor MySQL [3306]: <– Pressione Enter

Nome de usuário root do MySQL [root]: <– Pressione Enter

Senha root do MySQL []: <– Digite a senha root do MySQL aqui

Banco de dados MySQL a ser criado [dbispconfig]: <– Pressione Enter

Charset MySQL [utf8]: <– Pressione Enter


Configurando Postgrey  
Configurando Postfix  
Gerando uma chave privada RSA de 4096 bits  
................................++  
.....................................................................................................................................................................................................................................................................................................................................................++  
escrevendo nova chave privada em 'smtpd.key'  
-----  
Você está prestes a ser solicitado a inserir informações que serão incorporadas  
na sua solicitação 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.  
-----  
Nome do País (código de 2 letras) [XX]: <-- Digite o código do país de 2 letras, por exemplo, US  
Nome do Estado ou Província (nome completo) []: <-- Digite o nome do Estado ou Província  
Nome da Localidade (por exemplo, cidade) [Cidade Padrão]: <-- Nome da cidade  
Nome da Organização (por exemplo, empresa) [Empresa Padrão Ltda]: <-- Nome da empresa  
Nome da Unidade Organizacional (por exemplo, seção) []: <-- Pressione Enter  
Nome Comum (por exemplo, seu nome ou o nome do host do seu servidor) []: <-- Digite o nome do host do servidor aqui, no meu caso: server1.example.com  
Endereço de E-mail []: <-- Digite o endereço de e-mail  
Configurando mailman  
Configurando Dovecot  
Configurando Spamassassin  
Configurando Amavisd  
Configurando Getmail  
Configurando Jailkit  
Configurando Pureftpd  
Configurando BIND  
Configurando Apache  
Configurando vlogger  
[INFO] serviço OpenVZ não detectado  
Configurando Firewall Bastille  
[INFO] serviço Metronome XMPP Server não detectado  
Configurando Fail2ban  
Configurando vhost Apps  
Instalando ISPConfig  
Porta do ISPConfig [8080]: <-- Pressione Enter
Senha do administrador [fad579a6]: <-- Digite uma nova senha para o usuário administrador do ISPConfig
Repetir senha do administrador []: <-- Repita a senha
Você deseja uma conexão segura (SSL) com a interface web do ISPConfig (y,n) [y]: <-- Pressione Enter
Gerando chave privada RSA, 4096 bits de comprimento do módulo  
.................................................................................++  
.....++  
e é 65537 (0x10001)  
Você está prestes a ser solicitado a inserir informações que serão incorporadas  
na sua solicitação 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.  
-----  
Nome do País (código de 2 letras) [XX]: <-- Digite o código do país de 2 letras, por exemplo, US  
Nome do Estado ou Província (nome completo) []: <-- Digite o nome do Estado ou Província  
Nome da Localidade (por exemplo, cidade) [Cidade Padrão]: <-- Nome da cidade  
Nome da Organização (por exemplo, empresa) [Empresa Padrão Ltda]: <-- Nome da empresa  
Nome da Unidade Organizacional (por exemplo, seção) []: <-- Pressione Enter  
Nome Comum (por exemplo, seu nome ou o nome do host do seu servidor) []: <-- Digite o nome do host do servidor aqui, no meu caso: server1.example.com  
Endereço de E-mail []: <-- Digite o endereço de e-mail
Por favor, insira os seguintes atributos 'extras'  
que serão enviados com sua solicitação de certificado  
Uma senha de desafio []: <-- Pressione Enter  
Um nome de empresa opcional []: <-- Pressione Enter  
gravando chave RSA
  
Configurando DBServer  
Instalando crontab do ISPConfig  
Instalando crontab do ISPConfig  
sem crontab para root  
sem crontab para getmail  
Detectando endereços IP  
Reiniciando serviços ...  
Instalação concluída.

O instalador configura automaticamente todos os serviços subjacentes, então não há necessidade de configuração manual.

23 Primeiro Login no ISPConfig

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 Login do ISPConfig

23.1 O 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 (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. Também descreve como tornar seu servidor mais seguro e vem com uma seção de solução de problemas no final.

24 Baixar como uma máquina virtual

Esta configuração está disponível como download de máquina virtual no formato ova/ovf (compatível com VMWare e Virtualbox) para assinantes do howtoforge.

Detalhes de login para a VM

  • A senha root é: howtoforge
  • A senha do usuário “admin” do ISPConfig é: howtoforge
  • Há outro usuário shell com o nome “howtoforge” e senha: howtoforge

Por favor, altere ambas as senhas no primeiro login.

  • O endereço IP da VM é 192.168.0.100

25 Links

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.