Cómo limitar el acceso por IPs en phpMyAdmin
En tips anteriores hemos hablado de cómo reforzar la seguridad en phpMyAdmin. Te recuerdo que no es recomendable que phpMyAdmin sea accesible desde internet. Por eso siempre es bueno agregar una segunda capa de seguridad mediante autenticación básica y/o habilitando el soporte para HTTPS. Además puedes cambiar la URL por defecto (http://tudominio.com/phpmyadmin) para iniciar sesión.
Además de ello, si no quieres desactivar el acceso del usuario root en phpMyAdmin, puedes limitar el acceso por IPs en phpMyAdmin que es precisamente lo que te mostraré en este tip. Con ello lograrás tener acceso sólo desde direcciones IPs de confianza.
Limitar el acceso por IPs a la interfaz de inicio de sesión
La idea aquí es básicamente permitir el acceso desde determinadas direcciones IPs que consideramos de confianza. Esta solución no es válida si tu dirección IP de internet cambia de forma dinámica, por lo que necesitarías conectarte a través de una VPN de IP fijo a phpMyAdmin y definir esa IP como confiable. Ten presente que a esa dirección IP que vas a declarar como confiable, solo debes acceder tú.
En el archivo de configuración del alias para phpMyAdmin (si lo has instalado desde los repositorios): “/etc/apache2/conf-available/phpmyadmin.conf” debajo la sección <IfModule> … </IfModule> de la definición de directorio <Directory /usr/share/phpmyadmin> … </Directory> agregar:
1 2 3 4 5 |
# Limitando el acceso por IPs # Susitituya TRUSTED_IP por una dirección IP de confianza order deny,allow deny from all allow from TRUSTED_IP |
Finalmente guarda los cambios y reinicia el servidor web. Para Debian y derivados se hace de esta forma:
1 |
$ sudo systemctl restart apache2.service |
Y para CentOS:
1 |
$ sudo systemctl restart httpd.service |
Si es pedida la URL de la interfaz de inicio de sesión de phpMyAdmin (http://tudominio.com/phpmyadmin) desde un IP distinto a TRUSTED_IP debe devolverse algo como esto:

Inicio de sesión – phpMyAdmin
Como puedes observar en la figura anterior, es denegado el acceso a la interfaz de inicio de sesión de phpMyAdmin, pero, además, se muestra información sensible sobre el servidor web y el sistema operativo. Para ocultar esta información puedes visitar nuestro tip: Cómo ocultar información de nuestro servidor Apache.
En cambio, si quieres permitir el acceso a todos pero denegar la interfaz de inicio de sesión de phpMyAdmin desde uno o varios IPs, puedes cambiar el código anterior por:
1 2 3 4 5 6 |
# Denegando el acceso por IPs # Sustitya BAD_IP_* por la IP que desea denegar order allow,deny allow from all deny from BAD_IP_1 deny from BAD_IP_2 |
Finalmente guarda los cambios y reinicia el servidor web.
Hasta aquí hemos logrado limitar el acceso por IPs a phpMyAdmin, tanto desde uno o varios IPs de confianza, como para todos; excepto desde uno o varios IPs maliciosos.
Dejar un comentario
¿Quieres unirte a la conversación?Siéntete libre de contribuir