[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Conectar desde clientes "enjaulados" vía SSH a MySQL.



Matías, buenos días,

El día 23 de enero de 2018, 19:29, Matias Mucciolo
<mmucciolo@suteba.org.ar> escribió:
>
> On Tuesday, January 23, 2018 7:23:26 PM -03 Ramses wrote:
>> El 23 de enero de 2018 18:24:23 CET, Matias Mucciolo
> <mmucciolo@suteba.org.ar> escribió:
>> >On Tuesday, January 23, 2018 5:29:07 PM -03 Ramses wrote:
>> >> Hola a tod@s,
>> >>
>> >> Tengo instalado MySQL Server con su proceso habitual.
>> >>
>> >> Ahora quiero dar acceso a Clientes vía SSH, pero no quiero que esos
>> >
>> >usuarios
>> >
>> >> puedan ejecutar comandos de la Shell de Linux mediante el comando
>> >
>> >"system"
>> >
>> >> de MySQL.
>> >>
>> >> Parece ser que no hay forma de impedir los Usuarios de MySQL puedan
>> >
>> >ejecutar
>> >
>> >> el comando "system" y la única forma de limitar el uso de los
>> >
>> >comandos del
>> >
>> >> Shell de Linux es enjaular (chroot jail) estos Usuarios SSH, y sólo
>> >
>> >copiar
>> >
>> >> en la jaula los comandos que les permito y sus librerías asociadas.
>> >>
>> >> Bien, tengo ya el entorno "chroot jail" configurado y el Usuario SSH
>> >
>> >se
>> >
>> >> conecta.
>> >>
>> >> He copiado el fichero de arranque "/usr/sbin/mysql" en el directorio
>> >> "enjaulado".
>> >>
>> >> Con el comando "ldd /usr/sbin/mysql" averiguo las librerías asociadas
>> >
>> >y las
>> >
>> >> he copiado en el directorio "enjaulado".
>> >>
>> >> Ahora, cuando se conecta un Usuario "enjaulado" vía SSH y ejecuta,
>> >
>> >por
>> >
>> >> ejemplo, "/usr/sbin/mysql -u root -p", MySQL pide la password, pero
>> >
>> >al
>> >
>> >> introducirla, da un error de socket diciendo que no encuentra
>> >> "/var/run/mysqld/mysqld.sock", y ahí estoy estancado...
>> >>
>> >> ¿Hay alguien que haya hecho esto y pueda comentarme qué pasos me
>> >
>> >faltan por
>> >
>> >> hacer?
>> >>
>> >>
>> >> Gracias y saludos,
>> >>
>> >> Ramses
>> >
>> >obviamente se estan tratando de conectar mediante el socket
>> >que crea mysql y los clientes enjaulados no pueden acceder.
>> >creo que mysql tiene una opcion para que la "conexion"
>> >sea por tcp...eso deberia funcionar..
>> >
>> >saludos
>> >Matias
>>
>> Matías, gracias por contestar.
>>
>> Pero, ¿sabes si tengo que copiar algún fichero de configuración, como el
>> my.cnf a la "jaula"?.
>>
>> Hasta el momento sólo copiado programas y librerías al entorno "enjaulado".
>>
>> Y estoy buscando información tanto en Linux genérico y Debian, como en
>> MySQL, y no encuentro lo que me aclare este tema...
>>
>>
>> Saludos y gracias,
>>
>> Ramses
>
> no... no tenes que copiar nada...mientras que ande el binario de mysql.
>
> proba esto con el usuario enjaulado:
>
>
> mysql -u root -p --protocol=tcp
>
> asi no usa el socket y usa tcp.
> saludos
>

Bien, ejecutando el comando que me ponías:

----------------------------------------------------------------------------------------------------------------
-bash-4.2$ /usr/bin/mysql -u root -p --protocol=tcp
Enter password:
ERROR 2005 (HY000): Unknown MySQL server host 'localhost' (2)
-bash-4.2$
----------------------------------------------------------------------------------------------------------------

El error que da me imagino que es porque no está definido el fichero
"/etc/hosts" en la jaula, porque:

----------------------------------------------------------------------------------------------------------------
-bash-4.2$ /usr/bin/mysql -h 127.0.0.1 -u root -p --protocol=tcp
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 46
Server version: 5.5.59-0+deb7u1 (Debian)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
mysql> quit
Bye
-bash-4.2$
----------------------------------------------------------------------------------------------------------------

Funciona.

Ahora sólo queda ver si hay forma de hacerlo por socket de MySQL.


Gracias y saludos,

Ramses


Reply to: