Como instalar o phpmyadmin com segurança

O phpMyAdmin é uma ótima ferramenta para gerenciar um banco de dados MySQL, mas colocar o acesso ao banco de dados por trás de uma interface web é uma grande preocupação de segurança. Aqui estão algumas maneiras de mitigar os riscos associados à execução do phpMyAdmin.

índice

  1. Por que o phpMyAdmin é um problema de segurança?
  2. Instale o phpMyAdmin e proteja o MySQL
  3. Opção 1: bloquear o Apache e usar o encaminhamento de porta SSH
  4. Opção 2: bloquear o Apache e usar uma VPN
  5. Opção 3: Proteger o Apache com HTTPS e autenticação básica

Por que o phpMyAdmin é um problema de segurança?

Normalmente você terá um banco de dados rodando em seu servidor e aceitando apenas conexões de localhost ou talvez outro servidor confiável. Se você também tivesse um aplicativo em execução nesse servidor, ele se comunicaria diretamente. Não há como um invasor obter acesso, a menos que violem todo o servidor.

O phpMyAdmin ignora isso para fornecer uma interface web para gerenciar seu banco de dados. É uma ferramenta muito útil, mas é um desastre de segurança. O phpMyAdmin tem acesso total e ilimitado ao seu banco de dados, pois se destina a substituir o acesso direto à linha de comando. Se um invasor obtiver acesso ao painel da Web, ele terá acesso a tudo. E o phpMyAdmin geralmente é protegido apenas com uma senha simples.

Instale o phpMyAdmin e proteja o MySQL

O phpMyAdmin é executado na pilha LAMP (Linux, Apache, MySQL, PHP). Antes mesmo de começar a instalar o phpMyAdmin, sua instância MySQL deve estar segura. O MySQL fornece um utilitário útil para realizar algumas tarefas básicas de segurança:

 sudo mysql_secure_installation

Isso irá guiá-lo através da alteração da senha de root, desativação de logins remotos e exclusão do banco de dados de teste.

Depois disso, você pode instalar o phpMyAdmin normalmente. Durante a instalação, você será solicitado a fornecer uma senha de usuário administrador do banco de dados (que você deve ter definido durante mysql_secure_installation ) e uma nova senha para proteger o phpMyAdmin. Certifique-se de que essa senha seja longa e forte, pois é o último ponto de defesa antes que os invasores possam fazer login.

Idealmente, porém, nenhum invasor deve ter a chance de adivinhar sua senha, então recomendamos colocar o phpMyAdmin atrás de outra coisa para que você possa protegê-lo ainda mais.

Opção 1: bloquear o Apache e usar o encaminhamento de porta SSH

Esta é a opção mais segura, mas é realmente adequada apenas para acesso de usuário único, especialmente usuários únicos que têm acesso administrativo total a todo o servidor, pois requer uma conexão via SSH.

O encaminhamento de porta SSH é um método de encaminhamento de portas locais para um sistema remoto. Por exemplo, você teria o Apache rodando em seu servidor, escutando na porta 80. Se você fez um túnel nessa porta, você pode acessá-la indo para:

 https://localhost:80/

Em qualquer navegador da web. De certa forma, é quase como se o Apache estivesse rodando em seu sistema. Mas a porta 80 não precisa estar aberta em seu servidor; todo o tráfego é roteado pela porta padrão 22 usada para SSH. Você precisará garantir que o SSH esteja protegido com chaves SSH e, idealmente, não esteja sendo executado na porta padrão, pois esse método é tão seguro quanto sua conexão SSH.

Para fazer isso, você precisará vincular o Apache ao localhost e certificar-se de que ele não esteja aberto à Internet. Abra /etc/apache2/ports.conf e altere as três instruções do listener para escutar apenas no localhost (também conhecido como 127.0.0.1 ):

 Ouvir 127.0.0.1:80 <IfModule ssl_module> Ouvir 127.0.0.1:443 </IfModule> <IfModule mod_gnutls> Ouvir 127.0.0.1:443 </IfModule>

Reinicie o apache com:

 sudo service apache2 restart

E o phpMyAdmin deve estar inacessível. Isso era esperado. Depois que o Apache estiver configurado, você poderá encapsular a porta 80 usando o seguinte comando:

 ssh -L 80:localhost:80 [email protegido]

Você pode então fazer login no phpMyAdmin de localhost:80 em qualquer navegador da web. Enquanto isso, seu servidor pode ser configurado com um firewall estrito para permitir nada além de SSH.

Self ssh não pode se ligar à porta 80, tente alterar a primeira porta para um número diferente e acesse a partir daí no localhost. Ele ainda fará um túnel para a porta 80 na máquina remota. Essa conexão é mantida até a saída. ssh . Se você quiser executá-lo em segundo plano, use o sinalizador -f .

Se você quiser que o phpMyAdmin escute no localhost, você pode editar /etc/apache2/conf-enabled/phpmyadmin.conf e adicionar as seguintes linhas ao bloco Directory :

 Negar pedido, permitir Negar de todos Permitir de 127.0.0.1 

Isso impedirá que qualquer coisa que não seja localhost acesse a instalação do phpMyAdmin, embora você ainda precise da porta 80 aberta em seu firewall para permitir o tráfego regular.

Opção 2: bloquear o Apache e usar uma VPN

Se você precisar permitir o acesso a várias pessoas sem conceder acesso SSH, poderá configurar o Apache para escutar o IP privado de sua máquina e aceitar apenas conexões da mesma nuvem. Funciona particularmente bem com serviços como AWS VPC, onde cada servidor que você inicia é criado em uma rede virtual.

Para encontrar seu IP privado, você pode executar ifconfig e encontrar o endereço inet na sua placa de rede principal:

Esse endereço também é visível no console do AWS EC2. Depois que o endereço for copiado, abra /etc/apache2/ports.conf e modifique todas as três diretivas Listen para escutar no IP privado:

 Ouvir 172.31.87.118:8 <IfModule ssl_module> Ouvir 172.31.87.118:443 </IfModule> <IfModule mod_gnutls> Ouvir 172.31.87.118:443 </IfModule>

Alternativamente, se você deseja proteger apenas o phpMyAdmin, você pode editar /etc/apache2/conf-enabled/phpmyadmin.conf e permitir apenas do IP privado:

 Negar pedido, permitir Negar de todos Permitir de 172.31.87.118

E reinicie o Apache.

Agora, para acessar o phpMyAdmin, você precisa configurar um servidor VPN como o OpenVPN. Isso permitirá que você canalize seu computador cliente para a nuvem privada virtual onde seus servidores da Web estão sendo executados e acesse o servidor que executa o phpMyAdmin no IP privado como se fosse outro servidor. Claro, você precisará definir suas configurações de firewall para permitir o acesso do servidor OpenVPN à instância do phpMyAdmin.

Opção 3: Proteger o Apache com HTTPS e autenticação básica

Se você realmente precisa usar DNS público e ter seu servidor acessível, você pode usar a autenticação básica com o Apache. Esta é apenas outra senha na frente do phpMyAdmin que impede que pessoas de fora façam solicitações ao aplicativo phpMyAdmin. Você pode usá-lo em conjunto com as outras opções desta lista, pois é apenas uma camada extra de defesa.

Crie um novo arquivo de senha com htpasswd , que já deve estar instalado junto com o Apache (se não estiver, está em apache2-utils ):

 sudo htpasswd /etc/apache2/.htpasswd phpadmin

Isso permite que você defina uma nova senha para o usuário. phpadmin e o armazena em /etc/apache2/.htpasswd .

Abra /etc/apache2/conf-enabled/phpmyadmin.conf e configure-o para usar autenticação básica com o arquivo de senha recém-criado:

 AuthType Basic AuthName "Conteúdo restrito" AuthUserFile /etc/apache2/.htpasswd Requer usuário válido

Reinicie o apache com:

 sudo service apache2 restart

E quando você tentar fazer login no phpMyAdmin no seu navegador, será solicitado um nome de usuário e senha. faça login no phpadmin e a senha que você criou e você deve ter permissão de acesso. Caso contrário, você verá apenas uma resposta 401 Unauthorized .

  • Fundos da página do jogo Twitch desfigurados com o rosto de Jeff Bezos
  • Melhores capas para iPad mini de 2021

descubra mais conteúdo

O que é um amplificador integrado?

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão Geek

Deixe uma resposta Cancelar resposta

Como o phpMyAdmin é executado?

Abra o phpMyAdmin (para gerenciar um banco de dados MySQL/…

  1. Faça login na área IONOS e selecione Hospedagem.
  2. Selecione o contrato desejado e clique em Gerenciar na guia Bancos de Dados.
  3. Na linha do banco de dados desejado, em phpMyAdmin , clique em Abrir.

O que é phpMyAdmin e como é usado?

PhpMyAdmin é uma aplicação web que permite gerir bases de dados MySQL de forma simples e com uma interface amigável. É um software muito popular baseado em PHP.

Como o phpMyAdmin é configurado?

Configuração do phpMyAdmin

  1. Abra seu editor de texto favorito e crie um arquivo chamado config na raiz da pasta phpmyadmin . Inc. php, você pode copiar o conteúdo do arquivo config. amostra. Inc.
  2. Agora vamos editar o config. Inc. php, quero que você observe nestas linhas de código:

Como usar o phpMyAdmin no xampp?

phpMyAdmin (1) 1 – phpMyAdmin do XAMPP

  1. Clique em Contas de usuário. A lista de contas de usuário será exibida.
  2. Clique em Alterar senha:
  3. Digite a nova senha e clique em Continuar:
  4. Se a alteração da senha for bem-sucedida, uma mensagem de sucesso será exibida:
Ir arriba