Domanda
Ho un server di produzione con apache2, php, mysql. Ho solo un sito in questo momento (mysite.com) come un host virtuale. Voglio mettere phpmyadmin, Webalizer, e forse webmin lì. Finora, ho installato phpmyadmin, e funziona, ma l'intera Internet può andare a mysite.com/phpmyadmin
Come posso ridurre la visibilità a dire 192.168.0.0/16 quindi è solo accessibile a macchine dietro il mio firewall?
Soluzione
1) Si può fare a livello di server web.
Usa consentire / negare le regole per apache. Se non si dispone di accesso diretto al file di configurazione di Apache, è possibile utilizzare un file .htaccess.
<Directory /docroot>
Order Deny,Allow
Deny from all
Allow from 10.1.2.3
</Directory>
2) Si può fare a livello di applicazione utilizzando il file di configurazione di phpMyAdmin.
Il parametro di configurazione è: $cfg['Servers'][$i]['AllowDeny']['rules']
Esempi di regole sono:
'all' -> 0.0.0.0/0
'localhost' -> 127.0.0.1/8
'localnetA' -> SERVER_ADDRESS/8
'localnetB' -> SERVER_ADDRESS/16
'localnetC' -> SERVER_ADDRESS/24
Si può vedere questo sul documentazione ufficiale di configurazione di phpMyAdmin.
http://www.phpmyadmin.net/documentation/#servers_allowdeny_order
Altri suggerimenti
Si potrebbe utilizzare un modulo di Apache chiamato mod_access
È possibile configurarlo nel file di configurazione di Apache o all'interno di un file .htaccess nella root del directory.
Ecco un breve esempio
<Directory /your_folder/location>
Order Deny,Allow
Deny from all
Allow from 123.123.123.123
</Directory>