Devido à sua popularidade, o phpMyAdmin é alvo popular de invasões, por isso é preciso proteger o seu para que não tenham acessos não autorizados. Uma das maneiras mais fáceis de fazer isso, é colocar um gateway na frente de todo o aplicativo. É possível fazer isso usando as funcionalidades internas de autenticação e autorização do .htaccess do Apache.
Configurando Apache para permitir o uso do .htaccess
Primeiro, é necessário habilitar o arquivo de substituições do .htacess, editando as configurações do seu Apache. Para isso, deve ser editado o arquivo vinculado as configurações do seu diretório.
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
Em seguida, é preciso adicionar AllowOverride All dentro da sessão <Directory /usr/share/phpmyadmin>:
<Directory /usr/share/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
. . .
Quando fizer isso, salve e feche o arquivo. Para implementar as mudanças, reinicie o Apache.
sudo service apache2 restart
Criando um arquivo .htaccess
Agora que o uso do .htaccess foi habilitado, deverá ser criado um arquivo para implementar a segurança. O arquivo deve ser criado do diretório da aplicação. Digite o comando:
sudo nano /usr/share/phpmyadmin/.htaccess
Nesse arquivo, deverão ser adicionadas as seguintes informações:
AuthType Basic AuthName "Restricted Files" AuthUserFile /etc/phpmyadmin/.htpasswd Require valid-user
Criando autenticação para o arquivo .htpasswd
Agora, é preciso criar uma senha para a diretiva AuthUserFile com acesso ao arquivo .htaccess. Para isso, instale alguns pacotes adicionais do seu repositório padrão utilizando o comando:
sudo apt-get install apache2-utils
Depois disso, o utilitário htpasswd estará disponível.
A localização selecionada para o arquivo de senha foi "/etc/phpmyadmin/.htpasswd". Vamos criar esse arquivo e passa-lo para um usuário inicial com o comando:
sudo htpasswd -c /etc/phpmyadmin/.htpasswd username
Você deverá selecionar e confirmar uma senha para o usuário que está criando. Depois, o arquivo é criado com a senha que você digitou. Se você deseja inserir um usuário adicional, é necessário fazer isso sem o sinalizador "-c", desta forma:
sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser
Agora, quando você acessar seu subdiretório phpMyAdmin, será solicitado o nome de usuário e senha adicionais que você acabou de configurar:
http://domain_name_or_IP/phpmyadmin
Depois de entrar na autenticação do Apache, você será levado à página de autenticação normal do phpMyAdmin para inserir suas outras credenciais. Isso adicionará uma camada adicional de segurança para você.