{"id":175,"date":"2004-07-31T19:39:20","date_gmt":"2004-07-31T17:39:20","guid":{"rendered":"http:\/\/www.marblestation.com\/blog\/?p=175"},"modified":"2012-04-26T19:01:41","modified_gmt":"2012-04-26T17:01:41","slug":"administracin-remota-de-un-escritorio-gnulinux","status":"publish","type":"post","link":"https:\/\/www.marblestation.com\/?p=175","title":{"rendered":"Administraci\u00f3n remota de un escritorio GNU\/Linux"},"content":{"rendered":"<p>Hace mucho tiempo que conozco la aplicaci\u00f3n <a href=\"http:\/\/www.realvnc.com\/\">VNC<\/a> y sus variantes (<a href=\"http:\/\/www.tightvnc.com\/\">TightVNC<\/a>), te permiten acceder al escritorio de otro ordenador a trav\u00e9s de cualquier red. Algo bastante similar a lo que se consigue nativamente con el servidor\/cliente XFree86 o X.Org.<\/p>\n<p>En el caso de VNC para MS Windows, accedes al escritorio en el que se encuentra el usuario actualmente, por tanto te permite mover su raton, configurarle lo que sea necesario, etc&#8230; Una herramienta perfecta para la administraci\u00f3n remota y para solucionar problemas a los usuarios sin tener que desplazarse f\u00edsicamente.<br \/>\n<!--more--><br \/>\nEn el caso de VNC para GNU\/Linux, no se accede directamente al escritorio del usuario que este en dicha m\u00e1quina, sin\u00f3 que se accede a un escritorio aparte. Esto implica que si un usuario te llama indicandote que tiene problemas por ejemplo con su fondo de pantalla, no puedes usar VNC para ver su pantalla e intentar arreglar el problema. Para aquellos que entiendan el funcionamiento de las X, si tenemos un usuario utilizando el escritorio y un servidor VNC en la misma m\u00e1quina cada uno escucharia por un puerto diferente:<\/p>\n<ul>\n<li>Escritorio del usuario &#8211; localhost:0<\/li>\n<li>VNC Server &#8211; localhost:1<\/li>\n<\/ul>\n<p>Por tanto, en este caso no puede utilizarse esta aplicaci\u00f3n de la misma forma que si trabajasemos con MS Windows, una verdadera l\u00e1stima&#8230; hasta que apareci\u00f3 <a href=\"http:\/\/www.elilabs.com\/~rj\/gemsvnc\/\">gemsvnc<\/a>!!<\/p>\n<p>Gemsvnc es un servidor VNC que utiliza el escritorio en el cual ha sido ejecutado el programa para permitir el acceso remoto, de forma que basta con entrar en nuestro escritorio (no importa si es GNOME, KDE&#8230;) abrir una consola y ejecutar gemsvnc. Desde otro ordenador conectado en red ejecutariamos &#8220;vncviewer servidor:0&#8221; y se nos abriria una ventana mostrandonos el escritorio remoto, podriamos controlar el puntero del rat\u00f3n y escribir lo que sea necesario (curiosamente he podido comprobar que a mi no me funciona el $ remotamente, si pulso shift+4 me escribe un 4 y no un $).<\/p>\n<p>Os voy a explicar como podemos configurarlo en Gentoo para que gemsvnc este siempre en marcha y pida password para poder establecer la conexi\u00f3n. Vamos a instalar gemsvnc y tightvnc en el sistema con &#8217;emerge gemsvnc tightvnc&#8217;, gemsvn nos servir\u00e1 como servidor y tightvnc como cliente y para crear el password del servidor.<\/p>\n<p>Una vez instalado vamos a crear el password para permitir el acceso:<\/p>\n<pre>\r\n# vncpasswd \/etc\/gemsvnc.passwd\r\nPassword:\r\nVerify:\r\nWould you like to enter a view-only password (y\/n)? n\r\n<\/pre>\n<p>Esto nos crear\u00e1 el archivo &#8216;\/etc\/gemsvnc.passwd&#8217; con el password que hayamos indicado encriptado, respecto al password para &#8220;view-only&#8221; no es necesario indicarlo ya que gemsvnc lo ignora y no permite esa funcionalidad.<\/p>\n<p>A continuaci\u00f3n haremos que en el gestor de login GDM se arranque autom\u00e1ticamente gemsvnc, editamos el archivo &#8216;\/etc\/X11\/gdm\/Init\/Default&#8217; y a\u00f1adimos al final del mismo:<\/p>\n<pre>\r\n...\r\nkillall gemsvnc\r\n\/usr\/bin\/gemsvnc -runforever -quiet -rfbauth \/etc\/gemsvnc.passwd &\r\nexit 0\r\n<\/pre>\n<p>Yo utilizo GDM, los que utiliceis otros como KDM tendreis que averiguar que fichero cambiar o donde especificar lo que querais que se ejecute antes de iniciar la sesi\u00f3n. La ventaja de hacer que en este punto se arranque gemsvnc es que podremos acceder remotamente al login y entrar nosotros mismos en la sesi\u00f3n del usuario, no es necesario esperar a que el usuario del PC lo haga.<\/p>\n<p>Si mientras realizabamos la configuraci\u00f3n estabamos logeados en el escritorio del PC que queremos activar el servidor, tendremos que terminar la sesi\u00f3n y volver a entrar. A malas tambi\u00e9n podeis probar a reiniciar, aunque en principio no es necesario.<\/p>\n<p>Ahora podemos irnos al segundo PC conectado en red, instalar tightvnc (emerge tightvnc) e intentar conectarnos al escritorio remoto con:<\/p>\n<pre>\r\nvncviewer 192.168.0.3:0\r\n<\/pre>\n<p>La IP es de ejemplo, puede ser tambi\u00e9n un nombre. Despu\u00e9s de aparecer una ventana preguntando el password, se mostrar\u00e1 una nueva ventana desde la cual tendremos acceso al escritorio remoto.<\/p>\n<p>Tened cuidado porque nada viaja encriptado, si estais en una red insegura cualquiera podria ver vuestro password. Una alternativa es utilizar los tuneles SSH para que los datos viajen encriptados, para esto es necesario tener un servidor SSH configurado en la m\u00e1quina que tiene instalado gemsvnc. Desde el otro PC ejecutariamos en una consola:<\/p>\n<pre>\r\n$ ssh -L 2000:servidor:5900 user@servidor -N\r\n<\/pre>\n<p>Y en otra:<\/p>\n<pre>\r\n$ vncviewer localhost:2000\r\n<\/pre>\n<p>El primer comando crea un tunel encriptado entre nuestra m\u00e1quina y el servidor, los datos que enviemos a nuestro puerto 2000 ir\u00e1n a parar al puerto 5900 del &#8216;servidor&#8217; (tb podria ser una IP) y para esto utilizaremos nuestro usuario &#8220;user&#8221; del servidor &#8220;servidor&#8221; (el mismo que el anterior). Por ese motivo despues nos conectamos al puerto 2000 de localhost. El resto del funcionamiento es exactamente igual, la \u00fanica pega es que al a\u00f1adir encriptaci\u00f3n es necesario m\u00e1s ancho de banda y por tanto es posible que vaya m\u00e1s lento.<\/p>\n<p>He probado todo lo aqui expuesto en una red local ethernet 100Mbps y funciona de maravilla tanto de forma encriptada con SSH como de forma directa, evidentemente no es lo mismo que estar en la escritorio real pero para tareas puntuales de administraci\u00f3n puede ser muy \u00fatil. Tambi\u00e9n lo he testeado entre dos ordenadores conectados con un ADSL 256 Kbps de bajada y 128 Kbps de subida, de forma encriptada con SSH es tremendamente lento y pr\u00e1cticamente inusable, en cambio sin encriptaci\u00f3n a pesar de la lentitud puede ser \u00fatil tambi\u00e9n. Para esta aplicaci\u00f3n lo que se necesita es tener una buena subida y en nuestro caso solo es de 128 Kbps.<\/p>\n<p><b>Actualizaci\u00f3n<\/b> He descubierto que es posible conectarse a escritorios remotos regulando la calidad de la imagen y por tanto optimizando el uso del ancho de banda, por ejemplo la peor calidad y el menor consumo de ancho de banda se consigue con:<\/p>\n<pre>\r\nvncviewer -encodings Tight -compresslevel 9 -quality 0 servidor:0\r\n<\/pre>\n<p>Es posible regular la calidad modificando los valores de los par\u00e1metros y as\u00ed adaptarlos a nuestras necesidades.<\/p>\n<p>Como he observado que gemsvnc peta de vez en cuando, no podemos fiarnos simplemente de que se ejecute autom\u00e1ticamente con el GDM as\u00ed que lo mejor es tener un sencillo script en el sistema que tambi\u00e9n facilitar\u00e1 la vida a los usuarios m\u00e1s noveles:<\/p>\n<pre>\r\n#!\/bin\/bash\r\n\r\nCHECK=`ps aux|grep gemsvnc |grep runforever`\r\n\r\nif [ $? -eq 0 ]; then\r\n   echo \"ERROR: Ya hay un escritorio remoto en ejecuci\u00f3n.\"\r\n   echo \"Si desea pararlo ejecute 'killall gemsvnc' como root.\"\r\n   exit\r\nfi\r\n\r\nexport DISPLAY=:0\r\nkillall gemsvnc &> \/dev\/null\r\necho \"Escritorio remoto (VNC) en marcha!\"\r\necho \"Pulsar CTRL+C para terminar...\"\r\n\/usr\/bin\/gemsvnc -runforever -quiet -rfbauth \/etc\/gemsvnc.passwd\r\n<\/pre>\n<p>Guardar este script en &#8220;\/usr\/local\/bin\/escritorio-remoto&#8221; y darle permisos de ejecuci\u00f3n &#8220;chmod 755 \/usr\/local\/bin\/escritorio-remoto&#8221;. Tened en cuenta que quien ejecute este script tambi\u00e9n debe tener permisos para acceder al fichero \/etc\/gemsvnc.passwd.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hace mucho tiempo que conozco la aplicaci\u00f3n VNC y sus variantes (TightVNC), te permiten acceder al escritorio de otro ordenador a trav\u00e9s de cualquier red. Algo bastante similar a lo que se consigue nativamente con el servidor\/cliente XFree86 o X.Org. En el caso de VNC para MS Windows, accedes al escritorio en el que se &hellip; <a href=\"https:\/\/www.marblestation.com\/?p=175\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Administraci\u00f3n remota de un escritorio GNU\/Linux<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,6],"tags":[],"class_list":["post-175","post","type-post","status-publish","format-standard","hentry","category-espanyol","category-tecnologia"],"_links":{"self":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts\/175","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=175"}],"version-history":[{"count":1,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts\/175\/revisions"}],"predecessor-version":[{"id":1747,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=\/wp\/v2\/posts\/175\/revisions\/1747"}],"wp:attachment":[{"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.marblestation.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}