We hope you find this tutorial helpful. In addition to guides like this one, we provide simple cloud infrastructure for developers. Learn more →

Como Instalar e Proteger o phpMyAdmin no Ubuntu 16.04

PostedFebruary 15, 2017 65.9k views Applications MySQL PHP Apache Ubuntu 16.04

Introdução

Enquanto muitos usuários precisam da funcionalidade de um sistema de gerenciamento de banco de dados como o MySQL, eles podem não se sentir confortáveis interagindo com o sistema unicamente a partir do prompt do MySQL.

O phpMyAdmin foi criado para que os usuários possam interagir com o MySQL através de uma interface web. Neste guia, vamos discutir como instalar e proteger o phpMyAdmin para que você possa usá-lo com segurança para gerenciar seus bancos de dados a partir de um sistema Ubuntu 16.04.

Pré-requisitos

Antes de começar com este guia, você precisa completar alguns passos básicos.

Primeiro, vamos assumir que você está utilizando uma conta não-root com privilégios sudo, conforme descrito nos passos 1-4 na configuração inicial do servidor para Ubuntu 16.04.

Vamos também assumir que você tenha completado uma instalação LAMP (Linux, Apache, MySQL, e PHP) no seu servidor Ubuntu 16.04. Se isto ainda não estiver concluído, você pode seguir esse guia em Instalando uma pilha LAMP no Ubuntu 16.04.

Finalmente, existem importantes considerações de segurança ao se utilizar softwares como o phpMyAdmin, uma vez que:

  • Comunica-se diretamente com a sua instalação MySQL
  • Lida com a autenticação usando credenciais MySQL
  • Executa e retorna resultados para consultas SQL arbitrárias

Por estas razões, e porque é um aplicativo PHP amplamente implantado que é frequentemente alvo de ataques, você nunca deve executar o phpMyAdmin em sistemas remotos sobre uma simples conexão HTTP. Se você não possui um domínio configurado com certificado SSL/TLS, você pode seguir esse guia em securing Apache with Let's Encrypt on Ubuntu 16.04.

Quando terminar estas etapas, você estará pronto para começar com este guia.

Passo Um — Instalar o phpMyAdmin

Para começar, podemos simplesmente instalar o phpMyAdmin a partir dos repositórios padrão do Ubuntu.

Podemos fazer isso através da atualização dos índices locais de pacotes e depois utilizar o sistema de pacotes apt para baixar os arquivos e instalá-los em nosso sistema:

  • sudo apt-get update
  • sudo apt-get install phpmyadmin php-mbstring php-gettext

Serão feitas algumas perguntas para configurar sua instalação corretamente.

Atenção: Quando o primeiro prompt aparece, o apache2 está destacado mas não selecionado. Se você não teclar Espaço para selecionar o Apache, o instalador não irá movimentar os arquivos necessários durante a instalação. Tecle Espaço, Tab, e depois Enter para selecionar o Apache.

  • Para seleção do servidor, escolha apache2.
  • Selecione yes quando perguntado se é para usar dbconfig-common para configurar o banco de dados
  • Você será solicitado a fornecer a senha do administrador do banco de dados
  • Você será solicitado a escolher e confirmar uma senha para a própria aplicação phpMyAdmin

O processo de instalação na verdade adiciona o arquivo de configuração Apache do phpMyAdmin dentro do diretório /etc/apache2/conf-enabled/, onde ele é automaticamente lido.

A única coisa que precisamos fazer é habilitar explicitamente as extensões PHP mcrypt e mbstring, o que pode ser feito digitando-se:

  • sudo phpenmod mcrypt
  • sudo phpenmod mbstring

Depois, você precisará reiniciar o Apache para que suas alterações sejam reconhecidas:

  • sudo systemctl restart apache2

Agora você pode acessar a interface web visitando o nome de domínio ou o endereço IP público do seu servidor seguido de /phpmyadmin:

https://nome_de_domínio_ou_IP/phpmyadmin

Você pode agora entrar na interface utilizando o nome de usuário root e a senha administrativa que você configurou durante a instalação do MySQL:

Quando você efetuar login, você verá a interface de usuário, que será algo parecido com isto:

Passo Dois - Proteger sua Instância phpMyAdmin

Fomos capazes de colocar a nossa interface phpMyAdmin rodando e funcionando com bastante facilidade. Contudo, ainda não terminamos. Devido à sua popularidade, o phpMyAdmin é um alvo muito comum para atacantes. Devemos tomar medidas adicionais para impedir o acesso não autorizado.

Uma das maneiras mais fáceis de se fazer isso é colocar um gateway na frente de toda a aplicação. Podemos fazer isso utilizando as funcionalidades embutidas de autenticação e autorização .htaccess do Apache.

Configurar o Apache para Permitir Substituições .htaccess

Primeiro, precisamos ativar o uso de substituições de arquivos .htaccess através da edição de nosso arquivo de configuração do Apache.

Vamos editar o arquivo vinculado que foi colocado em nosso diretório de configuração do Apache:

  • sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Precisamos adicionar uma diretiva AllowOverride All dentro da seção <Directory /usr/share/phpmyadmin> do arquivo de configuração, dessa forma:

/etc/apache2/conf-available/phpmyadmin.conf
<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php
    AllowOverride All
    . . .

Quando você tiver adicionado essa linha, salve e feche o arquivo.

Para implementar as alterações que você fez, reinicie o Apache:

  • sudo systemctl restart apache2

Criar um arquivo .htaccess

Agora que habilitamos o uso do .htaccess para nossa aplicação, precisamos criar um arquivo que realmente implemente alguma segurança.

Para que isso seja efetivo, o arquivo deve ser criado dentro do diretório da aplicação. Podemos criar o arquivo necessário e abri-lo em nosso editor de textos com privilégios de root digitando:

  • sudo nano /usr/share/phpmyadmin/.htaccess

Dentro desse arquivo, precisamos entrar com a seguinte informação:

/usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

Vamos ver o que cada uma dessas linhas significa:

  • AuthType Basic: Essa linha especifica o tipo de autenticação que estamos implementando. Esse tipo irá implementar autenticação por senha utilizando um arquivo de senhas.
  • AuthName: Isso configura a mensagem para a caixa de diálogo de autenticação. Você deve manter isso genérico para que usuários não autorizados não obtenham nenhuma informação sobre o que está sendo protegido.
  • AuthUserFile: Isso configura a localização do arquivo de senhas que será utilizado para autenticação. Isso deve estar fora dos diretórios que estão sendo servidos. Vamos criar este arquivo em breve.
  • Require valid-user: Isso especifica que somente os usuários autenticados devem ter acesso a esse recurso. Isso é o que realmente impede que usuários não autorizados entrem.

Quando tiver terminado, salve e feche o arquivo.

Criar o arquivo .htpasswd para Autenticação

Agora que especificamos a localização do nosso arquivo de senhas através do uso da diretiva AuthUserFile dentro de nosso arquivo .htaccess, precisamos criar esse arquivo.

Na verdade, precisamos de um pacote adicional para concluir este processo. Podemos instalá-lo a partir de nossos repositórios padrão:

  • sudo apt-get install apache2-utils

Depois, teremos o utilitário htpasswd disponível.

A localização que selecionamos para o arquivo de senhas era "/etc/phpmyadmin/.htpasswd". Vamos criar esse arquivo e passá-lo um usuário inicial digitando:

  • sudo htpasswd -c /etc/phpmyadmin/.htpasswd nome_de_usuário

Você será solicitado a selecionar e confirmar uma senha para o usuário que você está criando. Em seguida, o arquivo é criado com o hash de senha que você digitou.

Se você quiser inserir um usuário adicional, você precisa fazê-lo sem o modificador -c, como abaixo:

  • sudo htpasswd /etc/phpmyadmin/.htpasswd usuário_adicional

Agora, ao acessar o subdiretório phpMyAdmin, você será solicitado a fornecer o nome da conta adicional e a senha que você acabou de configurar:

https://nome_de_domínio_ou_IP/phpmyadmin

Depois de entrar com a autenticação do Apache, você será levado para a página de autenticação normal do phpMyAdmin para inserir suas outras credenciais. Isso irá adicionar uma camada adicional de segurança, visto que o phpMyAdmin sofreu de vulnerabilidades no passado.

Conclusão

Agora você deve ter o phpMyAdmin configurado e pronto para usar em seu servidor Ubuntu 16.04. Usando essa interface, você pode facilmente criar bancos de dados, usuários, tabelas, etc, e executar as operações habituais como excluir e modificar estruturas e dados.

6 Comments

Creative Commons License