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 :

Como instalar o Locate no Linux

Como Instalar E Utilizar O Locate

Locate é um utilitário de linha de comando para encontrar arquivos por nome no Linux, semelhante ao comando find. Ao que se propõe é mais rápido e eficiente em várias situações.

O Locate se utiliza do programa updatedb para criar um banco de dados com os nomes de arquivos no servidor Linux, dessa forma, fica bastante simples e rápido encontrar qualquer arquivo por nome.

Para instalar o Locate utilize:

CentOS/Red Hat

yum -y install mlocate

Ubuntu/Debian

apt-get install locate

Após a instalação precisamos atualizar o banco de dados que será o índice utilizado pelo locate:

updatedb

Exemplos de utilização do Locate:

Nesse primeiro e mais simples exemplo, desejamos encontrar o local de ifcfg-eth0, para isso utilizamos o comando :

locate ifcfg-eth0

Exemplo Do Comando Locate

Resultado do primeiro exemplo

Para ver a lista de parâmetros que podem ser utilizados pelo comando, utilize “locate –help”.

Abaixo seguem, exemplos com alguns desses parâmetros e formas de utilizá-los:

– Nesse exemplo utilizamos o parâmetro -c , para obter apenas o número de ocorrências do termo pesquisado

Comando Locate Com Opção -C

– No exemplo abaixo vamos atualizar nosso índice com resultados apenas dentro do diretório /home e armazenar o resultado na variável $HOME”

updatedb -l 0 -o $HOME/.mlocate.db -U /home

A seguir faremos uma pesquisa apenas com os resultados armazenados na variável $HOME:

locate -d $HOME/.mlocate.db [termo da pesquisa]

Locate Em Home Com Parâmetro -C

Locate em home com parâmetro -c

Locate Em Home Por .Html

Note que ao buscarmos a palavra *.html em $HOME (caso possua este tipo de arquivo em home) serão exibidos inúmeros resultados com o caminho completo deste termo da pesquisa, todos dentro do diretório  home.

– Com o parâmetro -i podemos fazer buscas ignorando se as letras do “termo da pesquisa”  estarão em Maiúscula ou minúscula .

[root@Exemplo ~]# locate -i [termo da pesquisa]

Existem ainda várias outras formas de utilizar o comando locate no linux. Acima foram descritos o que julguei ser o básico para iniciar a utilizar esse comando.

Dica:

Em muitos servidores, principalmente com muitos arquivos , é uma boa ideia criar uma entrada na cron para atualizar updatedb diariamente durante um momento de pouco uso do servidor. Abaixo segue um exemplo de como fazer isso :

crontab -e
      •   Provavelmente o conteúdo será aberto utilizando o editor vim. Para inserir nossos comandos pressione em seu teclado a tecla “Insert”, isso irá habilitar a inserção de novos comandos neste arquivo. Ao fazer isso certifique-se que ao final da tela será exibido “–INSERT –“
      • Insira o seguinte comando:
        23 0 * * * updatedb
      • Para salvar e sair do editor vim,  primeiro, digite a tecla “Esc”, a seguir utilize :wq , isso irá gravar as alterações e sair do vim.
      • Agora a cron do servidor irá executar diariamente às 23 horas o comando updatedb.
    • Referência:
      Package: mlocate (0.26-1): encontrar fichieros rapidamente no sistema de ficheiros, baseado no nome

Como alterar a porta do SSH

Ssh Secure Shell

Uma das primeiras tentativas de um cracker é identificar as portas em que os serviços como SSH, FTP, etc, estão utilizando. Identificado a porta, um cracker poderia iniciar alguns tipos de ataques como por exemplo,  força bruta, a fim de descobrir o usuário e senha para posterior invasão.

Como medida de segurança, o melhor a fazer é modificar a porta de conexão ao SSH.

1 – edite o arquivo de configuração do ssh

nano /etc/ssh/sshd_config

2 – Localize “Port 22” e modifique para a nova porta que deseja se conectar.
Procure não utilizar portas semelhantes as que já estão sendo utilizadas em seu servidor ( exemplo: 22, , 81, etc…) .

Port 36509

Salve e saia do editor nano ( “ctrl+x “ e “y” )
4 – Reinicie o sshd .

service sshd restart

ou (se utiliza CentOS 7 )

systemctl restart ssh

Na próxima vez que se conectar ao SSH , será preciso que informe a nova porta. Lembre-se de atualizar a porta de conexão em seu firewall.

Como listar o tamanho de todos os arquivos e subdiretórios do diretório atual

Como Listar O Tamanho De Todos Os Arquivos E Subdiretórios Do Diretório Atual

Para listar o tamanho de todos os arquivos e subdiretórios do diretório atual basta utilizar o comando abaixo:


 du -sch ./*

se desejar ordenar por tamanho:


du -sk ./* | sort -n | awk 'BEGIN{ pref[1]="K"; pref[2]="M"; pref[3]="G";} { total = total + $1; x = $1; y = 1; while( x > 1024 ) { x = (x + 1023)/1024; y++; } printf("%g%s\t%s\n",int(x*10)/10,pref[y],$2); } END { y = 1; while( total > 1024 ) { total = (total + 1023)/1024; y++; } printf("Total: %g%s\n",int(total*10)/10,pref[y]); }'