¿Cómo asegurar phpmyadmin?

9

Revisé mis registros de apache y, vaya, hay muchos robots que intentan explotar phpmyadmin. Lo primero que hice fue cambiar el nombre del directorio a algo más oscuro.

Pero, ¿hay otros consejos para asegurar phpmyadmin?

(La base de datos en sí solo está disponible desde la red local)

Boris Guéry
fuente
55
La base de datos en sí puede ser accesible solo localmente, pero si su interfaz de administración (phpMyAdmin) está disponible públicamente, eso no hace ninguna diferencia.
John Gardeniers
44
La mejor manera de proteger phpMyAdmin es aprender a usar el cliente de línea de comandos MySQL y luego desinstalar phpMyAdmin.
MDMarra
@MDMarra Estoy totalmente de acuerdo con usted, pero solo tenía una misión para este cliente que necesitaba tener instalado PhpMyAdmin, nunca lo usé y siempre prefiero SSH. Sin embargo, para algunos usos, el aprendizaje de SQL no es una opción y una GUI como PhpMyAdmin es bien recibida por muchos usuarios, pero nosotros, expertos y profesionales debemos asegurarla adecuadamente. Es muy arrogante pensar lo contrario.
Boris Guéry

Respuestas:

13

Hacemos una combinación de cosas:

  • Proteja phpMyAdmin a través de la configuración .htaccess o Apache que solicita un nombre de usuario / contraseña de HTTP.
  • Proteja phpMyAdmin a través de la configuración .htaccess o Apache para permitir solo el acceso desde ciertas direcciones IP confiables
  • Ponga phpMyAdmin en su propio VirtualHost y ejecútelo en un puerto no estándar
  • Solo permita conexiones HTTPS a phpMyAdmin, y no HTTP regular
  • Solo permita conexiones desde LAN (use una VPN para atravesar su firewall y solo permita conexiones si está en esa LAN / VPN)
  • No nombre el directorio que está en algo obvio como / phpMyAdmin /

También puede utilizar el reenvío de puertos SSH para utilizar claves SSH. Ver https://stackoverflow.com/a/3687969/193494

Keith Palmer Jr.
fuente
6

Agregue un .htaccess que solo permita el acceso IP local a la carpeta phpmyadmin.

gekkz
fuente
¿Qué pasa si está destinado a los clientes? Muchos webhosts usan PHPMyAdmin.
Luc
6

Haga que phpmyadmin esté disponible en un vhost que solo sea accesible desde localhost y requiera que los usuarios usen ssh y el reenvío de puertos para obtener acceso a él.

Brian De Smet
fuente
2

Use .htaccess

Simplemente lanzamos un archivo .htaccess con protección de nombre de usuario / contraseña y (según las circunstancias) dirección IP.

Esto le permite a los EE. UU. Acceder al recurso de manera rápida y fácil desde computadoras confiables, pero mantiene alejados a los piratas informáticos.

Otra nota ... no use el mismo nombre de usuario / contraseña para su .htaccess como lo hace para PHPMyAdmin ... eso sería una tontería. :-)

Espero que esto ayude.

KPWINC
fuente
2

Estoy de acuerdo con htaccess (/ w contraseña) y https.

También puede considerar agregar una segunda IP a ese servidor y crear un servidor virtual Apache basado en IP para phpmyadmin. Esto podría ser solo una IP de red local, por lo que estaría protegido por el firewall (y es posible que ni siquiera tenga una regla nat para ello).

Cuantas más capas (es decir, htaccess + https + Virtualhost), mejor creo. Idealmente, los bots no deberían poder alcanzarlo en primer lugar.

Por supuesto, también puede poner phpmyadmin en una caja diferente también.

Kyle Brandt
fuente
1

Además de las respuestas proporcionadas, también utilizamos el OSSEC de código abierto para monitorear nuestros registros web y alertar / bloquear estos escaneos.

Es muy sencillo de instalar y, de forma predeterminada, encontrará sus registros web y comenzará a monitorearlos.

Enlace: http://www.ossec.net

sucursales
fuente
1

Mueva phpmyadmin a un directorio cuyo nombre esté oculto de la forma en que se esperaría una contraseña, es decir: combinación de letras mayúsculas y números mixtos (PhP01mY2011AdMin, por ejemplo) y una contraseña similar "segura" que protege el directorio con .htpasswd debería Haz el truco.

Por otra parte, si la seguridad de sus bases de datos mysql es vital para su negocio, uno tiene que preguntarse "¿qué está haciendo hacer que una herramienta de administración como phpmyadmin sea accesible a Internet en primer lugar?" Pero bueno, todos tienen sus razones para vivir.

Dibujó
fuente
0
  • HTTPS
  • Hazlo accesible solo a través del túnel VPN / SSH

phpmyadmin es demasiado bestia para asegurar. Necesitaría mod_security y una semana de tiempo para depurar las alertas solo para deshabilitar la mitad de las reglas para garantizar la funcionalidad de phpmyadmin. Conclusión: no lo haga público.

weeheavy
fuente