El día 24 de enero de 2018, 12:48, Cristian Mitchell <mitchell6...@gmail.com> escribió: > > > El 24 de enero de 2018, 08:45, Ramses<ramses.sevi...@gmail.com> escribió: >> >> 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"? > > > > 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, >
Bien, pues solucionado. Muchas gracias. * Para realizar la conexión por TCP: Desde una sesión "enjaulada" ejecuto: $ /usr/bin/mysql -h 127.0.0.1 -u root -p --protocol=tcp Y para adentro, sin problemas. * Para realizar la conexión por socket MySQL (mysql.sock): En una sesión sin enjaular, como "root" he ejecutado lo siguiente: # mkdir -p /home/<chroot-dir>/var/run/mysqld # mount -o bind,noexec /var/run/mysqld /home/<chroot-dir>/var/run/mysqld Y desde la sesión "enjaulada": $ /usr/bin/mysql -u root -p Y para adentro, sin problemas. Gracias de nuevo y saludos, Ramses