El 24 de enero de 2018 12:18:02 CET, Cristian Mitchell <mitchell6...@gmail.com> escribió: >El 24 de enero de 2018, 04:55, Ramses II<ramses.sevi...@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 >> <mitchell6...@gmail.com> escribió: >> > >> > >> > El 23 de enero de 2018, 20:32, Cristian >Mitchell<mitchell6...@gmail.com> >> > escribió: >> >> >> >> >> >> >> >> El 23 de enero de 2018, 19:40, Ramses<ramses.sevi...@gmail.com> >> escribió: >> >>> >> >>> El 23 de enero de 2018 23:20:09 CET, Cristian Mitchell >> >>> <mitchell6...@gmail.com> escribió: >> >>> >El 23 de enero de 2018, 15:26, Ramses<ramses.sevi...@gmail.com> >> >>> >escribió: >> >>> > >> >>> >> El 23 de enero de 2018 18:24:23 CET, Matias Mucciolo < >> >>> >> mmucci...@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"? Saludos y gracias, Ramses