Pergunta
Eu tenho um servidor de produção com apache2, php, mysql. Eu tenho apenas um site agora (mysite.com) como um host virtual. Eu quero colocar phpmyadmin, webalizer, e talvez webmin lá. Até agora, eu instalei phpmyadmin, e ele funciona, mas toda a internet pode ir para mysite.com/phpmyadmin
Como posso reduzir a visibilidade a dizer 192.168.0.0/16 por isso é apenas acessível para máquinas atrás da minha firewall?
Solução
1) Você pode fazê-lo no nível Webserver.
Use permitir / negar regras para apache. Se você não tem acesso direto ao seu arquivo de configuração do apache, você pode usar um arquivo .htaccess.
<Directory /docroot>
Order Deny,Allow
Deny from all
Allow from 10.1.2.3
</Directory>
2) Você pode fazê-lo no nível do aplicativo usando o arquivo phpmyadmin configuração.
O parâmetro de configuração é: $cfg['Servers'][$i]['AllowDeny']['rules']
Exemplos de regras são:
'all' -> 0.0.0.0/0
'localhost' -> 127.0.0.1/8
'localnetA' -> SERVER_ADDRESS/8
'localnetB' -> SERVER_ADDRESS/16
'localnetC' -> SERVER_ADDRESS/24
Você pode ver isso na documentação oficial configuração phpMyAdmin.
http://www.phpmyadmin.net/documentation/#servers_allowdeny_order
Outras dicas
Você usaria um módulo no Apache chamado mod_access
Você pode configurá-lo em seu arquivo de configuração do apache ou dentro de um arquivo .htaccess na raiz do diretório.
Aqui está um pequeno exemplo
<Directory /your_folder/location>
Order Deny,Allow
Deny from all
Allow from 123.123.123.123
</Directory>