Servidor · 8 min read · Jan 07, 2026

O Servidor Perfeito - CentOS 7 x86_64 (nginx, Dovecot, ISPConfig 3) - Página 2

15 Instalar phpMyAdmin

Em seguida, instalamos o phpMyAdmin:

yum -y install phpmyadmin

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

nano /etc/phpMyAdmin/config.inc.php

[...]
/* Tipo de autenticação */
$cfg['Servers'][$i]['auth_type'] = 'http';
[...]

Agora você pode encontrar o phpMyAdmin no diretório /usr/share/phpMyAdmin/.

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

O vhost de aplicativos do ISPConfig na porta 8081 para nginx vem com uma configuração do phpMyAdmin, então você pode usar http://server1.example.com:8081/phpmyadmin ou http://server1.example.com:8081/phpMyAdmin para acessar o phpMyAdmin.

Se você quiser usar um alias /phpmyadmin ou /phpMyAdmin que você possa usar a partir de seus sites, isso é um pouco mais complicado do que para o Apache porque o nginx não tem aliases globais (ou seja, aliases que podem ser definidos para todos os vhosts). Portanto, você deve definir esses aliases para cada vhost do qual deseja acessar o phpMyAdmin.

Para fazer isso, cole o seguinte no campo Diretrizes do nginx na aba Opções do site no ISPConfig:

        location /phpmyadmin {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/phpmyadmin/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass 127.0.0.1:9000;
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /phpMyAdmin {
               rewrite ^/* /phpmyadmin last;
        }

Se você usar http s em vez de http para seu vhost, deve adicionar a linha fastcgi_param HTTPS on; à sua configuração do phpMyAdmin assim:

        location /phpmyadmin {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/phpmyadmin/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass 127.0.0.1:9000;
                       fastcgi_param HTTPS on; # <-- adicione esta linha
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /phpMyAdmin {
               rewrite ^/* /phpmyadmin last;
        }

Se você usar tanto http quanto https para seu vhost, pode usar a variável $https - vá novamente para o campo Diretrizes do nginx e, em vez de fastcgi_param HTTPS on;, adicione a linha fastcgi_param HTTPS $https; para que você possa usar o phpMyAdmin para solicitações http e https:

        location /phpmyadmin {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/phpmyadmin/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass 127.0.0.1:9000;
                       fastcgi_param HTTPS $https; # <-- adicione esta linha
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $request_filename;
                       include /etc/nginx/fastcgi_params;
                       fastcgi_param PATH_INFO $fastcgi_script_name;
                       fastcgi_buffer_size 128k;
                       fastcgi_buffers 256 4k;
                       fastcgi_busy_buffers_size 256k;
                       fastcgi_temp_file_write_size 256k;
                       fastcgi_intercept_errors on;
               }
               location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /phpMyAdmin {
               rewrite ^/* /phpmyadmin last;
        }

16 Instalar Mailman

Desde a versão 3.0.4, o ISPConfig também 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:

yum -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
touch /etc/mailman/aliases
/usr/lib/mailman/bin/newlist mailman

[root@server1 tmp]# /usr/lib/mailman/bin/newlist mailman
Digite o email da pessoa que está gerenciando a lista: <– endereço de email 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

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

systemctl enable mailman.service
systemctl start mailman.service

Agora precisamos criar este symlink para fazer o Mailman funcionar com o ISPConfig:

cd /usr/lib/mailman/cgi-bin/
ln -s ./ mailman

Se você quiser usar o Mailman a partir de seus sites criados através do ISPConfig, isso é um pouco mais complicado do que para o Apache porque o nginx não tem aliases globais (ou seja, aliases que podem ser definidos para todos os vhosts). Portanto, você deve definir esses aliases para cada vhost do qual deseja acessar o Mailman.

Para fazer isso, cole o seguinte no campo Diretrizes do nginx na aba Opções do site no ISPConfig:

        location /cgi-bin/mailman {
               alias /usr/lib/mailman/cgi-bin;
               fastcgi_split_path_info (^/cgi-bin/mailman/[^/]*)(.*)$;
               include /etc/nginx/fastcgi_params;
               fastcgi_param SCRIPT_FILENAME /usr/lib/mailman$fastcgi_script_name;
               fastcgi_param PATH_INFO $fastcgi_path_info;
               fastcgi_param PATH_TRANSLATED /usr/lib/mailman$fastcgi_path_info;
               fastcgi_intercept_errors on;
               fastcgi_pass unix:/var/run/fcgiwrap.socket;
        }

        location /images/mailman {
               alias /usr/lib/mailman/icons;
        }

        location /pipermail {
               alias /var/lib/mailman/archives/public;
               autoindex on;
        }

Isso define o alias /cgi-bin/mailman/ para seu vhost, 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.

17 Instalar PureFTPd

O PureFTPd pode ser instalado com o seguinte comando:

yum -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. 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 executamos:

yum -y 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:

[...]
# 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 farão 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 Email []: <– Digite seu Endereço de Email.

Altere as permissões do certificado SSL:

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

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.

18 Instalar BIND

Podemos instalar o BIND da seguinte forma:

yum -y install bind bind-utils

Em seguida, abra /etc/sysconfig/named…

nano /etc/sysconfig/named

… e certifique-se de que a linha ROOTDIR=/var/named/chroot esteja comentada:

# Opções do processo BIND named
# ~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# OPTIONS="whatever"     --  Essas opções adicionais serão passadas para o named
#                            na inicialização. Não adicione -t aqui, habilite o arquivo de unidade -chroot.service apropriado.

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 arquivos de configuração nomeados de exemplo.\
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; };\
        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

19 Instalar Webalizer e AWStats

Webalizer e AWStats podem ser instalados da seguinte forma:

yum -y install webalizer awstats perl-DateTime-Format-HTTP perl-DateTime-Format-Builder

20 Instalar Jailkit

O Jailkit é necessário apenas se você quiser chroot usuários SSH. Ele pode ser instalado da seguinte forma (importante: o Jailkit deve ser instalado antes do ISPConfig - não pode ser instalado depois!):

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
tar xvfz jailkit-2.17.tar.gz
cd jailkit-2.17
./configure
make
make install
cd ..
rm -rf jailkit-2.17*

21 Instalar fail2ban

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

yum -y install fail2ban

Devemos configurar o fail2ban para registrar no arquivo de log /var/log/fail2ban.log porque este é o arquivo de log que é monitorado pelo módulo Monitor do ISPConfig. Abra /etc/fail2ban/fail2ban.conf…

nano /etc/fail2ban/fail2ban.conf

… e certifique-se de que logtarget = /var/log/fail2ban.log:

[...]
# Opção: logtarget
# Notas.: Defina o alvo do log. Isso pode ser um arquivo, SYSLOG, STDERR ou STDOUT.
#         Apenas um alvo de log pode ser especificado.
#         Se você alterar logtarget do valor padrão e estiver
#         usando logrotate -- ajuste ou desative a rotação no
#         arquivo de configuração correspondente
#         (por exemplo, /etc/logrotate.d/fail2ban em sistemas Debian)
# Valores: [ STDOUT | STDERR | SYSLOG | FILE ]  Padrão: STDERR
#
logtarget = /var/log/fail2ban.log

[...]

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

systemctl enable fail2ban.service
systemctl start fail2ban.service

22 Instalar rkhunter

rkhunter pode ser instalado da seguinte forma:

yum -y install rkhunter

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.