Contraseña phpmyadmin

Tengo un server con todo funcionando, ya instale phpmyadmin para mysql. El problema es que cualquier persona puede acceder, quiero que al ingresar al localhost/phpmyadmin este pida nombre de usuario y contraseña. ¿Cómo hacerlo de forma segura?
Respuesta
1
Lo más fácil es utilizar el .htaccess de Apache.
. Htaccess es un fichero que permite establecer reglas sobre ficheros y directorios en un servidor Apache. Lo puedes utilizar, por ejemplo, para pedir usuario/contraseña al acceder a un directorio específico, como el de phpmyadmin.
Para crear este fichero .htaccess haz lo siguiente:
Crea un fichero de texto llamado .htaccess (es necesario el punto) dentro del directorio de phpmyadmin. Este fichero tiene que contener lo siguiente:
AuthName "comentario"
AuthType Basic
AuthUserFile .htpasswd
<Limit GET POST>
require valid-user
</Limit>
"comentario" será lo que aparezca cuando alguien intente acceder a phpmyadmin. Puedes poner cualquier cosa (siempre entre comillas). En el fichero .htpasswd le vas a poner un conjunto de usuarios y contraseñas que van a tener acceso; en la línea AuthUserFile .htpasswd tienes que poner la ruta completa de ese fichero (por ejemplo /var/www/phpmyadmin/.htpasswd). Con las demás líneas le estás indicando que sólo usuario y la contraseña apropiada se va a poder acceder a cualquier fichero que esté dentro del directorio phpmyadmin.
Ahora sólo tienes que crear el fichero .htpasswd con la contraseña de tu usuario. El fichero tendrá la siguiente forma:
Usuario:contraseña
(Puedes tener tantas líneas con distintos usuarios como quieras)
El único problema es que la contraseña tiene que ir encriptada, para conseguir encriptarla puedes utilizar esta página: http://www.ovh.com/cgi-bin/es/crypt.pl
Aquí, si por ejemplo, quieres usar como contraseña "jaime" le pones en la primera línea "jaime" en clave pones las 2 letras que quieras (p. Ej. "rf") y al darle a encriptar nos da "rfqopqFGrc5kE". Pues nuestro fichero de claves sería:
Pepe:rfqopqFGrc5kE
Con lo que ya podríamos acceder con usuario pepe y contraseña jaime.
Espero haberte sido de ayuda.
Un saludo
--
Roberto (www.rhernando.net)

2 respuestas más de otros expertos

Respuesta
1
Yo uso Debian, como es paranoico con la seguridad, todo viene cerrado por defecto.
Si está bien o mal, no puedo decírtelo. Depende de los gustos de cada uno.
En fin, lo que planteas no me había pasado, pero mirando la doc de phpmyadmin encontré que hay tres tipos de autenticación para trabajar con PHPMyAdmin:
1) Config: Es decir, en el archivo de configuración del phpmyadmin se pone usuario y password con que debe ingresar al MySQL Server.
2) Cookie: usa las famosas cookies, donde pregunta usuario y password cada vez que entra alguno, y lo valida con el MySQL Server. Una vez que cierra la sesión, borra la cookie.
3) http: usa autenticación por HTTP con los usuarios y contraseñas de MySQL. Esta es otra forma de acceso, ya que requiere configuración adicional del phpmyadmin.
En conclusión: parece que tu configuración tiene el valor config.
Deberías cambiarla por alguna de las otras. Te recomiendo cookie, que es la que trae debían por defecto, y anda tan bien que yo ni sabía que existían las otras dos. :D
El archivo a modificar, en mi debian, es /usr/share/phpmyadmin/config.inc.php
El nombre config. Inc.php no debería cambiar, pero según la distro que usas puede estar en otro lado.
Para saber donde esta ejecuta este comando:
Rpm -ql phpmyadmin | grep config.inc.php
Debería mostrarte la ubicación exacta del archivo que buscamos.
En mi caso, hay dos archivos con este nombre en lugares diferentes. Deberías revisar la configuración de ambos, ya que sinceramente, no he leído para que sirve el otro.
La línea que buscas es algo como:
$cfg['Servers'][$i]['auth_type']
En mi caso está como sigue:
$cfg['Servers'][$i]['auth_type'] = 'cookie';
La que tienes tu, si no me equivoco, debería decir algo como:
$cfg['Servers'][$i]['auth_type'] = 'config';
Justamente durante la tarde descubrí lo mismo que me planteaste... aparte de eso utilice el webmin que me permite administrar las carpetas en web y protegerlas... ademas de utilizar autentificación http o cookie...
Según se, phpmyadmin te pide un nombre de usuario y contraseña antes de ingresar.
Dicho nombre de usuario y contraseña son de mysql, no de Linux.
Para poder ayudarte más necesito saber que version de linux, mysql y phpmyadmin usas.
Phppmyadmin:
phpMyAdmin 2.6.3-pl1 is released
Linux:
Red Hat 9.0
MySQL:
MySQL 4.1.13
No se como ponerle las contraseñas, no es automático :(
Como ya te habrás dado cuenta, el mysql no tiene password de root por defecto.
Es decir, cualquiera puede como root ingresar.
Para poder cambiar esta situación hay muchas formas, pero la más fácil es usar la interfaz que brinda phpmyadmin para cambiar la password del root.
Con eso debería alcanzar.
Si no llegara a funcionar, hay otros métodos, como usar mysqladmin o directamente con sentencias SQL con una conexión al servidor vía el cliente mysql de texto.
Respuesta
1
Tu cuando estabas configurando myadmin hiciste esto ..¿?
$cfg['Servers'][$i]['user'] = 'root'; (Default)
$cfg['Servers'][$i]['user'] = 'your_MySQL_root_user'; (Edited)
$cfg['Servers'][$i]['password'] = ''; (Default)
$cfg['Servers'][$i]['password'] = 'your_password'; (Edited)
para asignarle un passwd al suaurio con el que entras . .?
http://www.hostlibrary.com/installing_phpMyAdmin_on_Linux.html
Change the password for the phpMyAdmin MySQL user (pma):
mysql -u root -p
SET PASSWORD FOR 'pma'@'localhost' = PASSWORD('MyNewPassword');
Update your phpMyAdmin config.inc.php:
$cfg['Servers'][$i]['controlpass'] = 'MyNewPassword';

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas