Como instalar o Linux Malware Detect com ClamAV

Linux Malware Detect com ClamAV

O Linux Malware Detect (LMD) é um scanner de malware para Linux, desenvolvido a volta das ameaças enfrentadas em ambientes linux utilizados para hospedagem de sites compartilhada.
O Scanner do LMD percorre, os arquivos e diretórios em busca de aplicações, scripts e praticamente todo tipo de arquivo a procura de shells maliciosas, worms, virus e outros malwares. O LMD permite que estes arquivos sejam inseridos em quarentena, excluídos ou gere apenas uma notificação ao administrador do servidor linux. Podemos executar o scanner do LMD como monitoramento ativo, programado através da cron ou manualmente.

As assinaturas que o LMD utiliza, hashes de arquivo MD5 e correspondências de padrão HEX, são facilmente exportados ou mesmo incorporadas ao ClamAV e suas assinaturas.

Vamos abordar a instalação do Linux Malware Detect integrado ao ClamAV, comandos para o monitoramento , scan manual e outras opções…

Nota: Para instalação e configuração do ClamAV com assinaturas adicionais, sugiro o post : Como instalar assinaturas AntiVirus e Malware adicionais para o Clamav no CentOS e CloudLinux

Instale o inotify-tools. Este pacote é necessário para habilitarmos o monitoramento do LMD em tempo real

yum install -y inotify-tools

Instalando o Linux Malware Detect

wget http://www.rfxn.com/downloads/maldetect-current.tar.gz  
tar xvf maldetect-current.tar.gz
cd maldetect-1*
./install.sh  

Edite o arquivo de configuração do LMD:

nano /usr/local/maldetect/conf.maldet

Localize e altere se necessário as seguintes opções:

email_alert="1"
email_addr="[email protected]"
autoupdate_signatures="1"
autoupdate_version="1"
scan_clamscan="1"

salve o arquivo e saia do nano ( ctrl +x , y)

As definições de vírus para Maldet(Linux Malware Detect) são atualizadas diariamente e integrada as assinaturas anti vírus, malware, conforme abordamos em outro post . Como instalar assinaturas AntiVirus e Malware adicionais para o Clamav no CentOS e CloudLinux . Se desejar atualizar manualmente utilize o comando abaixo:

maldet -d

Durante a instalação do Linux Malware Detect foi criado um job na cron /etc/cron.daily/maldet que será executado diariamente . Este job é responsável por executar atualizações , executar verificação diária nos arquivos do sistema com alterações recentes, apagar os dados de sessão , temporários e arquivos em quarentena com mais de 14 dias

Exemplos de utilização dos comandos:

Para verificar uma pasta, por exemplo / home, você deve inserir:

maldet -a /home

Para verificar uma pasta com um caractere curinga, por exemplo, todas as pastas em / home que começam com um “a” :

maldet -a /home/a?

Para executar uma verificação curinga apenas para uma extensão do arquivo específica:

maldet -a /var/www/html/*.php

Scan apenas em arquivos criados/modificados nos últimos 7 dias:

maldet -r /var/www/html/ 7

Verificar todos os arquivos em um caminho (padrão: / home, curinga:?)

maldet -a /home/?/public_html

Para executar varreduras em segundo plano, digite o seguinte (ideal para varreduras maiores com muitos arquivos):

maldet -b -r /home/user/

Examine o relatório de verificação do maldet executando o seguinte comando e anexando o ID do relatório de verificação:

maldet --report numero-xxxx.xxxxx

Enviar por email o relatório de verificação:

maldet –report SCANID [email protected]

Para colocar os arquivos infectados em quarentena, execute o seguinte comando, incluindo o “scan report ID”. Os arquivos infectados serão colocados em quarentena para limpeza:

maldet -q SCAN ID

Limpar todos os resultados de malware de uma verificação anterior:

maldet -n SCAN ID

Restaurar um arquivo que você já colocou em quarentena:

maldet -s NOMEDOARQUIVO
maldet -s SCANID
maldet --restore NOMEDOARQUIVO

Obtenha uma lista de todos os relatórios:

maldet -e list

Limpar registros, fila de quarentena, sessão e dados temporários:

maldet -p

Efetuar upload de suspeita de malware para rfxn.com para revisão e hashing em assinaturas:

 maldet -c caminho/do/arquivo

Visualizar os logs de eventos:

maldet -l

Monitoramento em tempo real.

Este recurso foi criado para monitorar os arquivos de usuário em tempo real para criação de arquivos / modificação / arquivos movidos.

Existem três modos com os quais o monitor pode ser executado e se relacionam com o que será monitorado, são USERS | PATHS | FILES.

  • Exemplo: maldet –monitor users
  • Exemplo: maldet –monitor /root/arquivo_com_os_locais_scan
  • Exemplo: maldet –monitor /home/joao,/home/pedro

Monitorando usuários:

maldet --monitor users

Monitorando definindo o caminho :

maldet --monitor /home,/var,/tmp

Monitorando Arquivos:

Se você acredita que há problemas com arquivos específicos, é possível monitorar continuamente estes arquivos, fornecendo uma lista de arquivos separados por vírgulas:

maldet --monitor /home/usuario/arquivo1,/home/usuario/arquivo2

Rastreando eventos no arquivo de registro do monitor:

tail -f /usr/local/maldetect/logs/inotify_log

Parando o monitoramento(kill):

maldet -k

Integração do Linux Malware Detect com o ClamAV

Nota: No post Como instalar assinaturas AntiVirus e Malware adicionais para o Clamav no CentOS e CloudLinux , abordamos a instalação do ClamAV incluindo excelentes assinaturas adicionais.

O ClamAV e Maldet( Linux Malware Detect) são totalmente integrados. Podemos utilizar o ClamAV como mecanismo de varredura para o Maldet. Isso acelera o processo de varredura e inclui as definições de vírus do ClamAV .

O benefício dessa integração é uma verificação de malware mais rápida e eficaz; é mais provável que você identifique ameaças potenciais.

O Setup desta integração já abordamos no princípio ao editar o arquivo /usr/local/maldetect/conf.maldet e alterar scan_clamscan de “0” para “1”

Servidores com cPanel/WHM

Crie dois links simbólicos:

ln -s /usr/local/cpanel/3rdparty/bin/clamscan /usr/local/bin/clamscan
ln -s /usr/local/cpanel/3rdparty/bin/freshclam /usr/local/bin/freshclam

Servidores com DirectAdmin

Não é necessário nenhuma modificação.

Servidores Linux sem painel ou utilizando paineis Open Source

Não é necessário nenhuma modificação.

Como instalar assinaturas AntiVirus e Malware adicionais para o Clamav no CentOS e CloudLinux

O Anti Virus Clamav é bastante utilizado em servidores linux hoje em dia. Possui um mecanismo antivírus eficiente para detectar trojans, vírus, malware e outras ameaças maliciosas. Como padrão o Clamav disponibiliza algumas assinaturas antivirus que são atualizadas através de seu repositório padrão, porém, principalmente em Servidores Web, com PHP, Python … onde são instalados todo tipo de aplicação, incluindo WordPress, Joomla… ou MailServers que recebem phishing , virus, trojans, nos mais diversos arquivos e formatos, se faz necessário assinaturas adicionais para o Clamav.

Na Web existem vários projetos e sites que oferecem assinaturas grátis ou pagar para o Clamav.

A eXtremeSHOK através do GitHub criou um projeto com nome clamav-unofficial-sigs que reúne várias assinaturas confiáveis, disponíveis na Web para o Clamav, mantendo tudo sempre atualizado .

Além das assinaturas disponíveis pelo projeto, vamos adicionar outras assinaturas que sempre utilizo em meu trabalho com Gerenciamento de Servidores Linux.

Abaixo vou abordar o passo a passo para a correta instalação e configuração do clamav-unofficial-sigs em servidores CentOS e CloudLinux.

Instale o repositorio epel-release

yum -y update
yum -y install epel-release
yum -y update

Antes de começar, verifique em seu firewall e abra se necessário as portas:

rsync: TCP porta 873
wget/curl : TCP porta 443

Instale o Clamav e componentes:

yum -y install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

Configure o SELinux para permitir o Clamav ( Se Selinux estiver habilitado)

Verifique se o Selinux está habilitado. Se estiver desabilitado pule este passo.

sestatus

Se o resultado for SELinux status: disabled, pule esta etapa.
Se o resultado for enable prossiga:

setsebool -P antivirus_can_scan_system 1
setsebool -P clamd_use_jit 1

Configure o ClamAV

mkdir /var/clamav
chown clamav.clamav /var/clamav
sed -i '/^Example$/d' /etc/clamd.d/scan.conf

Edite o arquivo scan.conf com o nano:

nano /etc/clamd.d/scan.conf

Localize LocalSocket e substitua por:

LocalSocket /var/run/clamd.scan/clamd.sock/g

salve o arquivo e saia do nano (Control + X , digite Y )

A seguir no shell do linux cole o bloco abaixo:

cat << EOF > /etc/tmpfiles.d/clamav.conf
/var/run/clamd.scan 0755 clam clam
EOF
mv /usr/lib/systemd/system/clamd\@scan.service /usr/lib/systemd/system/clamd\@scan.old
cat << EOF > /usr/lib/systemd/system/clamd\@scan.service
# Run the clamd scanner
[Unit]
Description = clamd scanner (%i) daemon
After = syslog.target nss-lookup.target network.target
[Service]
Type = simple
ExecStart = /usr/sbin/clamd --foreground=yes
Restart = on-failure
IOSchedulingPriority = 7
CPUSchedulingPolicy = 5
Nice = 19
PrivateTmp = true
MemoryLimit=500M
CPUQuota=50%
[Install]
WantedBy = multi-user.target
EOF

systemctl daemon-reload

Configurando o FreshClam:

cole o bloco abaixo no shell:

sed -i '/^Example$/d' /etc/freshclam.conf
sed -i '/REMOVE ME/d' /etc/sysconfig/freshclam

cat << EOF > /usr/lib/systemd/system/clam-freshclam.service
# Run the freshclam as daemon
[Unit]
Description = freshclam scanner
After = network.target

[Service]
Type = forking
ExecStart = /usr/bin/freshclam -d
Restart = on-failure
IOSchedulingPriority = 7
CPUSchedulingPolicy = 5
Nice = 19
PrivateTmp = true

[Install]
WantedBy = multi-user.target
EOF

systemctl daemon-reload
freshclam
systemctl enable clam-freshclam.service
systemctl start clam-freshclam.service

Habilitar, Iniciar e verificar se está tudo ok com status:

systemctl enable [email protected]
systemctl start [email protected]
systemctl status [email protected]

Instalando Dependências

yum -y install bind-utils rsync

Instalação do clamav-unofficial-sigs:

mkdir -p /usr/local/sbin/
wget https://raw.githubusercontent.com/extremeshok/clamav-unofficial-sigs/master/clamav-unofficial-sigs.sh -O /usr/local/sbin/clamav-unofficial-sigs.sh && chmod 755 /usr/local/sbin/clamav-unofficial-sigs.sh
mkdir -p /etc/clamav-unofficial-sigs/
wget https://raw.githubusercontent.com/extremeshok/clamav-unofficial-sigs/master/config/master.conf -O /etc/clamav-unofficial-sigs/master.conf
wget https://raw.githubusercontent.com/extremeshok/clamav-unofficial-sigs/master/config/user.conf -O /etc/clamav-unofficial-sigs/user.conf

Se sua distribuição linux é CentOS 7 ou CloudLinux 7 copie e cole as instruções abaixo:

os_conf="centos7-atomic"
wget "https://raw.githubusercontent.com/extremeshok/clamav-unofficial-sigs/master/config/os/${os_conf}" -O /etc/clamav-unofficial-sigs/os.conf


Nota: para outras distro Linux acesse o link abaixo, e em “Operating System Specific Install” , selecione a melhor opção para seu Linux.
https://github.com/extremeshok/clamav-unofficial-sigs

Antes de seguirmos para o próximo passo, vamos nos cadastrar em dois sites que oferecem excelentes assinaturas para o Clamav.

1 – MalwarePatrol Free
Crie sua conta grátis em : https://www.malwarepatrol.net/free-guard-upgrade-option/
Será exibido em seu browser “Password/Receipt:”
Guarde esta informação, precisaremos dela no próximo passo.

2 – SecuriteInfo Free
Crie sua conta grátis em : https://www.securiteinfo.com/clients/customers/signup
Você receberá um e-mail com um link para ativar sua conta, após a ativação , receberá outro email com seu usuário e senha para login no site.
Faça login e acesse : https://www.securiteinfo.com/clients/customers/account
Clique na aba Setup, verá uma URL a frente de DatabaseCustomURL
Precisamos localizar seu identificador individual que é composto por uma sequencia de 128 caracteres.
Na url a frente de DatabaseCustomURL copie a sequencia após
https://www.securiteinfo.com/get/signatures/
até “/”

Guarde esta informação, vamos utilizá-la no próximo passo.


Os outros repositórios disponíveis utilizados pelo clamav-unofficial-sigs não necessitam de cadastro, apenas para conhecimento, irei citá-los abaixo:

Yara Rules: https://github.com/Yara-Rules/rules
Urlhaus: https://urlhaus.abuse.ch/
Linux Malware Detect Assinaturas: https://www.rfxn.com/projects/linux-malware-detect/
*Veja o artigo: Como instalar e utilizar o Linux Malware Detect

** Existem na web muitas assinaturas grátis para o Clamav, porém muitas geram falso positivos na detecção do Virus/Malware.

Vamos adicionar no arquivo de configuração que iremos abordar a seguir, dois novos repositórios adicionais de assinaturas para o ClamAV.

MailOrder: https://www.mailborder.com/
MalwareExpert: https://malware.expert/


Configuração das assinaturas para o Clamav:

Edite o arquivo user.conf :

nano /etc/clamav-unofficial-sigs/user.conf

Localize e remova o # das seguintes linhas:

malwarepatrol_free="yes"
malwarepatrol_list="clamav_basic" # clamav_basic or clamav_ext
malwarepatrol_product_code="8"
malwarepatrol_receipt_code="YOUR-RECEIPT-NUMBER"

Substitua YOUR-RECEIPT-NUMBER pelo código que guardou ao seguir os passos acima em MalwarePatrol Free .

Localize e remova # da linha:

securiteinfo_authorisation_signature="YOUR-SIGNATURE-NUMBER"

Substitua YOUR-SIGNATURE-NUMBER pelo código com 128 caracteres que guardou ao seguir os passos acima em SecuriteInfo Free

Agora, vamos adicionar as assinaturas adicionais.
localize e remova o # das linhas:

#declare -a additional_dbs=(
#ftp://ftp.example.net/pub/sigs.ndb
#http://www.example.org/sigs.ldb
#)

apague as linhas em negrito acima e cole no lugar :

http://cdn.malware.expert/malware.expert.ndb
http://cdn.malware.expert/malware.expert.hdb
http://cdn.malware.expert/malware.expert.ldb
http://cdn.malware.expert/malware.expert.fp
http://sigs.mailborder.com/sigwhitelist.ign2
http://sigs.mailborder.com/sanesecurity.ftm
http://sigs.mailborder.com/junk.ndb
http://sigs.mailborder.com/jurlbl.ndb
http://sigs.mailborder.com/phish.ndb
http://sigs.mailborder.com/rogue.hdb
http://sigs.mailborder.com/scam.ndb
http://sigs.mailborder.com/spamimg.hdb
http://sigs.mailborder.com/spamattach.hdb
http://sigs.mailborder.com/blurl.ndb
http://sigs.mailborder.com/foxhole_generic.cdb
http://sigs.mailborder.com/foxhole_filename.cdb
http://sigs.mailborder.com/malwarehash.hsb
http://sigs.mailborder.com/hackingteam.hsb
http://sigs.mailborder.com/winnow_malware.hdb
http://sigs.mailborder.com/winnow_malware_links.ndb
http://sigs.mailborder.com/winnow_extended_malware.hdb
http://sigs.mailborder.com/winnow.attachments.hdb
http://sigs.mailborder.com/winnow_bad_cw.hdb
http://sigs.mailborder.com/bofhland_cracked_URL.ndb
http://sigs.mailborder.com/bofhland_malware_URL.ndb
http://sigs.mailborder.com/bofhland_phishing_URL.ndb
http://sigs.mailborder.com/bofhland_malware_attach.hdb
http://sigs.mailborder.com/crdfam.clamav.hdb
http://sigs.mailborder.com/porcupine.ndb
http://sigs.mailborder.com/porcupine.hsb
http://sigs.mailborder.com/spam.ldb
http://sigs.mailborder.com/spear.ndb
http://sigs.mailborder.com/spearl.ndb
http://sigs.mailborder.com/foxhole_js.cdb

Salve o arquivo e saia do nano : Ctrl + x e Y

Execute o Script abaixo para baixar pela primeira vez todas as assinaturas e finalizar algumas configurações. Este processo pode demorar um pouco na primeira vez, aguarde até o final .

/usr/local/sbin/clamav-unofficial-sigs.sh --force

O Script a seguir irá instalar algumas configurações relativas ao clamav-unofficial-sigs para o logrotate:

/usr/local/sbin/clamav-unofficial-sigs.sh --install-logrotate
/usr/local/sbin/clamav-unofficial-sigs.sh --install-man

O Script a seguir irá configurar o cron para atualizar suas assinaturas diariamente:

/usr/local/sbin/clamav-unofficial-sigs.sh --install-cron

Com estas novas assinaturas, a detecção de Virus, Malware, Trojan, Phishing … em seu servidor será muito mais eficiente.

Como habilitar o open_basedir com suPHP no CWP – Centos WebPanel

A proteção open_basedir do PHP impede que os usuários acessem arquivos fora de seu diretório home através de scripts php e acessem arquivos do sistema ou de outros usuários. O mais importante é impedir que scripts maliciosos acessem informações importantes.

O CentOS WebPanel usa o suPHP por padrão, portanto, o open_basedir não pode ser habilitado por meio do apache vhost ou pelo arquivo .htaccess com as opções: php_admin_value open_basedir.

Primeira opção – Habilitar open_basedir de forma global para todos as contas de usuários no CentOS WebPanel.

touch /usr/local/php/php.d/openbasedir.ini
echo "open_basedir = /home:/tmp:/var/tmp:/usr/local/lib/php/" > /usr/local/php/php.d/openbasedir.ini
service httpd restart

Segunda opção – Habilitar open_basedir por usuário

  • Crie o arquivo php.ini em public_html do usuário e insira
open_basedir = /home/username:/tmp:/var/tmp:/usr/local/lib/php/

**Substitua username pelo nome do usuário (Ver em List Accounts em seu Painel).

Como desabilitar funções perigosas do PHP

O PHP é uma linguagem de script rica em recursos, mas quando utilizada de forma incorreta , intencionalmente ou não, pode comprometer grande parte do servidor web ou seus dados.

Através do arquivo php.ini em disable_functions, vamos criar uma lista de funções que devem ser desabilitadas por motivos de segurança.

Localizando o arquivo php.ini correto no servidor.

O primeiro passo é encontrar o arquivo php.ini correto no servidor. Existem vários cenários em um servidor web em que são criados vários arquivos php.ini . Por exemplo, se utilizamos o php-fpm com múltiplas versões do php instaladas em nosso servidor, haverá um php.ini para cada versão… Neste caso você deverá procurar o php.ini responsável por cada versão. O local correto irá variar dependendo de sua Distribuição Linux, se utiliza algum Painel de controle ou não , etc.

A forma mais simples de localizar o php.ini correto em nosso servidor é executando um arquivo php que nos traga através de “phpinfo()” todas as configurações de nosso php.

Crie um arquivo info.php em alguma url ativa em seu servidor web e insira

<?php
phpinfo();
?>

Acesse através de seu navegador web o arquivo info.php. Serão exibidas várias informações úteis sobre o php ativo nessa URL.

Localize: “Loaded Configuration File” . Este é o caminho correto para o php.ini que desejamos . Copie o caminho para php.ini , nós vamos utilizá-lo a seguir para informar em disable_functions as funções que desejamos desabilitar.

PHP Info Loaded Configuration

Acesse seu servidor linux utilizado o ssh e edite o arquivo php.ini

nano /caminhodeseuphp.ini/php.ini

Localize “disable_functions =” e modifique para :

disable_functions =  exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname

Em tempo, recomendo que por motivos de segurança desabilite allow_url_fopen e allow_url_include:

allow_url_fopen=Off
allow_url_include=Off

Salve (Ctrl+o) e saia do nano (Ctrl+x)

Reinicie o httpd server

  • Se utiliza o Apache e não possui o php-fpm:

Para CentOS/RedHat:

systemctl restart httpd 

ou

service httpd restart

Para Debian/Ubuntu:

service apache2 restart
  • Se utiliza o PHP-FPM

O PHP-FPM (FastCGI Process Manager ), é um manipulador do PHP que funciona a parte, como um serviço e não um módulo. A forma correta de reiniciar irá variar dependendo de como foi instalado em seu servidor .

Para simplificar, acesse seu arquivo info.php criado anteriormente e note que em ” Loaded Configuration File” haverá um nome parecido com “php-fpmxxx” esse será o nome do processo que você deverá reiniciar .

phpinfo php-fpm
Nome do processo php-fpm .Exemplo php-fpm72

Com as informações acima reinicie o serviço substituindo “php-fpmxxx” pelo nome encontrado em seu servidor. :

Para CentOS/RedHat:

systemctl restart php-fpmxxx 

ou

service php-fpmxxx restart

Para Debian/Ubuntu:

service php-fpmxxx restart

Para se certificar que as configurações foram atualizadas, acesse novamente seu arquivo info.php e verifique em disable_functions se a lista de funções estão sendo exibidas.

Nota Final: Para informação, utilizando o php-fpm existem ainda outras formas de desabilitar as funções que não foram abordadas neste post.

Como Configurar Pure-FTPd para aceitar encriptação TLS/SSL no CentOS

Pure-FTPd com TLS

FTP ou File Transfer Protocol é o protocolo de rede padrão da camada de aplicação usado para transferir o arquivo do cliente para o servidor.

O FTP simples é um protocolo inseguro porque todas as senhas e dados são transferidos em texto não criptografado. Ao usar o TLS, toda a comunicação será criptografada, tornando o FTP muito mais seguro.

O Pure-FTPd é um servidor FTP gratuito, com forte foco na segurança do software. É uma excelente opção, se deseja fornecer um serviço de FTP rápido, seguro e leve com muitos recursos .

Neste tutorial vamos abordar como habilitar o TLS no Pure-FTPd e criar um certificado SSL para ser utilzado pelo Pure-FTPd.

Primeiro Passo – Instalar OpenSSL

O OpenSSL é necessário para que TLS funcione. Para instalar utilize:

yum -y install openssl

Segundo Passo – Configurando Pure-FTPd

Edite o arquivo de configuração

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

Para permitir sessões FTP e TLS, descomente removendo # e altere TLS para 1

TLS     1

Descomente as linhas abaixo removendo “#”

TLSCipherSuite           HIGH
CertFile                 /etc/ssl/private/pure-ftpd.pem

salve e saia do nano ( CTRL+o , Ctrl+x)

Terceiro Passo – Criar o Certificado SSL para o TLS

Para utilizar o TLS, precisamos criar um certificado SSL. O primeiro passo é criar o local onde será armazenado nosso certificado.

mkdir -p /etc/ssl/private/

Agora, vamos gerar o certificar SSL com o comando :

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Serão solicitadas algumas informações

Country Name (2 letter code) [XX]: <-- Digite a sigla do seu País (exemplo "BR").
State or Province Name (full name) []:<-- Digite seu estado ( exemplo : Minas Gerais)
Locality Name (eg, city) [Default City]:<-- Digite sua cidade
Organization Name (eg, company) [Default Company Ltd]: < -- Digite o nome de sua empresa ou organização.
Organizational Unit Name (eg, section) []:<-- Digite o setor responsável. (exemplo: Departamento de TI)
Common Name (eg, your name or your server's hostname) []:<-- Digite o nome de seu hostname 
Email Address []:<-- Digite o e-mail de contato

Altere as permissões do arquivo SSL

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

Reinicie o Pure-FTP

systemctl restart pure-ftpd.service

Feito ! Agora , você poderá se conectar utilizando seu programa de FTP configurando para utilizar TLS . Quando conectar será exibido informações sobre o certificado do Servidor com as informações que digitou anteriormente.

Segurança do phpMyAdmin contra ataque de Brute Force

phpMyAdmin com reCAPTCHA

Como padrão a página de login do phpMyAdmin apresenta apenas os campos Usuário e Senha, permitindo qualquer um com o nome de um usuário e senha de banco de dados válidos em seu servidor acessar e fazer alterações no banco de dados.

Um cracker poderia se utilizar de algum script de Brute Force para executar um “ataque de dicionário” a fim de encontrar sua senha com combinações de palavras, letras e símbolos.

Neste tutorial vamos adicionar uma camada extra de segurança ao phpMyAdmin a fim de impedir este tipo de ataque. Para isso, vamos utilizar o que considero ser a melhor solução até a data deste post, o Google Recaptcha . Antes de qualquer login será preciso resolver o captcha, impedindo qualquer tipo de ataque de Brute Force ao phpMyAdmin.

Mãos a obra!

Nota – Antes de começar:
Este passo a passo foi escrito utilizando um servidor com Painel CWP Pro (CentOS Web Panel) e CentOS 6, porém já testado em servidores com CentOS, Ubuntu, com ou sem Painel de controle (foram necessárias apenas algumas adaptações lógicas).


Passo 1:

Acesse a página do Google Recaptcha , em “Register a new site” :

Configurando reCAPTCHA do Google
  • Label : utilize seu dominio ou o hostname do servidor.
  • Marque reCAPTCHA v2
  • Domains: informe o IP e o nome de seu hostname
  • Clique em Register. Na tela a seguir copie o código de
    site key e secrect key . Vamos utilizá-los a seguir.

Passo 2:

Nota: os passos abaixo se referem a um servidor com o Painel CentOS Web Panel. Se não utiliza este Painel, localize o local de instalação do seu phpMyAdmin e siga os passos…

  • Acesse o local de instalação do phpMyAdmin
cd /usr/local/cwpsrv/var/services/pma/
  • Edite o arquivo de configuração
nano config.inc.php
  • Adicione as Linhas abaixo, substituindo
    Site key e Secret key pelos valores gerados no passo 1.
$cfg[‘CaptchaLoginPublicKey’] = ‘Site key’;
$cfg[‘CaptchaLoginPrivateKey’] = ‘Secret key’; 
  • Salve e saia do editor nano ( “ctrl+x “ e “y” )

Pronto, isso é tudo! Agora acesse seu phpMyAdmin. A partir de agora, você terá uma camada a mais de segurança no login :

Enable Notifications    Ok No thanks