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

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





El 24 de enero de 2018, 08:45, Ramses<ramses.sevilla@gmail.com> escribió:
El 24 de enero de 2018 12:18:02 CET, Cristian Mitchell <mitchell69uk@gmail.com> escribió:
>El 24 de enero de 2018, 04:55, Ramses II<ramses.sevilla@gmail.com>
>escribió:
>
>> Cristian, buenos días de nuevo,
>>
>> Bien, por TCP parece que ya funciona:
>>
>> ------------------------------------------------------------
>> ----------------------------------------------------
>> -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$
>> ------------------------------------------------------------
>> ----------------------------------------------------
>>
>> Ahora sólo queda ver si hay forma de hacerlo por socket de MySQL.
>>
>> Si ejecuto en la sesión "enjaulada" el comando que me has comentado:
>>
>> ------------------------------------------------------------
>> ----------------------------------------------------
>> -bash-4.2$ mount -o bind,noexec /var/run/mysqld/mysqld.sock
>> mount: only root can do that
>> -bash-4.2$
>> ------------------------------------------------------------
>> ----------------------------------------------------
>>
>> Lo que te comentaba, que dice que sólo lo puede ejecutar "root".
>>
>> De cualquier forma, si ejecuto sólo "mount", tampoco va:
>>
>> ------------------------------------------------------------
>> ----------------------------------------------------
>> -bash-4.2$ mount
>> warning: failed to read mtab
>> -bash-4.2$
>> ------------------------------------------------------------
>> ----------------------------------------------------
>>
>>
>> Gracias y saludos,
>>
>> Ramses
>>
>> El día 24 de enero de 2018, 0:37, Cristian Mitchell
>> <mitchell69uk@gmail.com> escribió:
>> >
>> >
>> > El 23 de enero de 2018, 20:32, Cristian
>Mitchell<mitchell69uk@gmail.com>
>> > escribió:
>> >>
>> >>
>> >>
>> >> El 23 de enero de 2018, 19:40, Ramses<ramses.sevilla@gmail.com>
>> escribió:
>> >>>
>> >>> El 23 de enero de 2018 23:20:09 CET, Cristian Mitchell
>> >>> <mitchell69uk@gmail.com> escribió:
>> >>> >El 23 de enero de 2018, 15:26, Ramses<ramses.sevilla@gmail.com>
>> >>> >escribió:
>> >>> >
>> >>> >> 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...
>> >>> >>
>> >>> >>
>> >>> >> P.D.: Disculpas Matías, el otro se me fue al personal...
>> >>> >>
>> >>> >>
>> >>> >> Saludos y gracias,
>> >>> >>
>> >>> >> Ramses
>> >>> >>
>> >>> >>
>> >>> >como te estas logueando a mysql?
>> >>>
>> >>> Cristian, ¿te refieres a esto que ponía en mi correo?
>> >>>
>> >>> El cliente se conecta vía SSH a un entorno "enjaulado" y ejecuta:
>> >>>
>> >>> /usr/sbin/mysql -u root -p
>> >>
>> >>
>> >> alguien comentaba esto
>> >>  si haces asi  nada mas te estas conectado por socket el cual
>nesesitas
>> >> acceso
>> >> pero si haces mysql -h localhost -u myname -ppassword mydb
>> >> esto evita tu problema de sock
>> >>
>> >>
>> >>
>> >>>
>> >>>
>> >>>
>> >>> Saludos,
>> >>>
>> >>> Ramses
>> >>>
>> >>
>> >>
>> >>
>> >> --
>> >> MrIX
>> >> Linux user number 412793.
>> >> http://counter.li.org/
>> >>
>> >> las grandes obras,
>> >> las sueñan los santos locos,
>> >> las realizan los luchadores natos,
>> >> las aprovechan los felices cuerdo,
>> >> y las critican los inútiles crónicos,
>> >>
>> >
>> > si no tu otra opción es
>> >
>> >
>> > mount -o bind,noexec /var/run/mysqld/mysqld.sock (al chroot)
>> >
>> > --
>> > MrIX
>> > Linux user number 412793.
>> > http://counter.li.org/
>> >
>> > las grandes obras,
>> > las sueñan los santos locos,
>> > las realizan los luchadores natos,
>> > las aprovechan los felices cuerdo,
>> > y las critican los inútiles crónicos,
>> >
>>
>>
>buenos dia
>
>cabe aclara que la idea del tcp fue de Matias
>yo solo la aclare y la amplie
>y para montar un cualquier recurso bajo estas circunstancias
>tenes que agregar la linea en fstab y darle permisos de usuario
>pero en tu caso como el chroot lo debe levantar el mysql,
>lo agregas en el inicio del servidor o el inicio del servicio

Cristian, correcto, también le he contestado a Matías.

En cuanto a lo que me comentas:

"pero en tu caso como el chroot lo debe levantar el mysql, lo agregas en el inicio del servidor o el inicio del servicio"

Si ejecuto el comando que me comentaste desde una sesión sin "enjaular", por ejemplo, logado como "root", y con el usuario "mysql" que ejecuta el arranque del MySQL Server, ¿debería de funcionar la conexión desde la sesión "enjaulada"?


totalmente, la idea es montar el directorio  donde se crean el sock al chroot
y si lo que estas buscando es seguridad, es lo que entiendo.
hace que un usuario con permisos de montado
 


Saludos y gracias,

Ramses




--
MrIX
Linux user number 412793.
http://counter.li.org/

las grandes obras,
las sueñan los santos locos,
las realizan los luchadores natos,
las aprovechan los felices cuerdo,
y las critican los inútiles crónicos,


Reply to: