{"id":362,"date":"2011-01-13T20:56:24","date_gmt":"2011-01-14T01:56:24","guid":{"rendered":"https:\/\/rafael.bonifaz.ec\/blog\/?p=362"},"modified":"2011-03-11T21:33:32","modified_gmt":"2011-03-12T02:33:32","slug":"tuneles-ssh-parte-2","status":"publish","type":"post","link":"https:\/\/rafael.bonifaz.ec\/blog\/2011\/01\/tuneles-ssh-parte-2\/","title":{"rendered":"T\u00faneles SSH (parte 2)"},"content":{"rendered":"<p>En el <a href=\"http:\/\/bonifaz.ec\/sshtunel1\">art\u00edculo anterior <\/a>expliqu\u00e9 como usar un tunel ssh para acceder a un servicio remoto \u00a0que no es accesible en mi computador, pero s\u00ed es accesible desde un servidor al cual puedo ingresar. Ahora aprenderemos a hacer lo opuesto. Vamos a compartir servicios de mi red interna o mi computadora en otra red. Lo m\u00e1s probable es que sea el Internet. Al igual que el art\u00edculo anterior, vamos a explicar esta utilidad con ejemplos.<\/p>\n<h2>Ejemplo #1: Acceder con ssh a computador con ip privado<\/h2>\n<p>Vamos a suponer el siguiente caso pr\u00e1ctico. Mi mam\u00e1 es una usuaria de GNU\/Linux y tiene alg\u00fan problema en su computador. Ella tiene su computadora en la casa y no tiene ip p\u00fablica ni la menor idea de lo que es un ip. Su hijo tiene algo de experiencia le puede ayudar. Para esto con mucha paciencia le va a decir\u00bb mami vaya a accesorios terminal y escribe lo siguiente:<\/p>\n<p style=\"padding-left: 30px;\"><code>ssh -R *:8080:localhost:22 usuarioremoto@servidorremoto.com<\/code><\/p>\n<p>Mi mam\u00e1 no tiene porque entender este comando, pero ustedes s\u00ed.  El * quiere decir que vamos a ser accesibles desde cualquier ip que tenga mi servidor remoto. El 8080 es el puerto que utilizaremos en el servidor remoto y localhost:22 quiere decir que vamos a hacer accesible el puerto 22 de mi m\u00e1quina local. La segunda parte del comando quiere decir a que servidor ingresamos y con que usuario.<br \/>\nEn otras palabras mi mam\u00e1 esta ingresando a mi servidor y publicando el puerto 22 de su computador en el puerto 8080. Obviamente sin tener la menor idea de lo que esta haciendo.<!--more--><br \/>\nAhora para yo ingresar al computador de mi mam\u00e1\u00a0simplemente\u00a0hago ssh al puerto 8080 en el servidor remoto con el usuario local del computador de mi mam\u00e1.<\/p>\n<p style=\"padding-left: 30px;\"><code>ssh  -p 8080 usuario@servidorremoto.com <\/code><\/p>\n<p>Para que esto funcione necesitamos poder acceder como root al servidor por lo menos una vez y\/o ser amigo de una persona que tenga acceso a root. Es necesario modificar el archivo de configuraci\u00f3n del servidor ssh: \/etc\/ssh\/sshd_config y a\u00f1adir la siguiente l\u00ednea:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"font-family: monospace;\">GatewayPorts yes<\/span><\/p>\n<p>Luego reiniciamos ssh<\/p>\n<p style=\"padding-left: 30px;\"><code>\/etc\/init.d\/ssh restart<\/code><\/p>\n<p>Ahora s\u00ed debe funcionar.<br \/>\nSi se fijan bien lo que estamos haciendo hay una falla de seguridad. Si mucha gente puede hacer ssh a mi servidor remoto, entonces podr\u00edan estar utilizando varios puertos de mi servidor para fines que desconozco.<br \/>\nLa buena noticia, es que sumando los conocimientos adquiridos aqu\u00ed con el <a href=\"http:\/\/bonifaz.ec\/sshtunel1\">primer ejemplo de t\u00faneles ssh<\/a> podemos obtener el mismo resultado.<\/p>\n<h2>Ejemplo #2: Acceder con ssh a computador con ip privado sin necesidad de root en el servidor<\/h2>\n<p>Por defecto la siguiente l\u00ednea no va a funcionar si no editamos el archivo de configuraci\u00f3n del ejemplo anterior.<\/p>\n<p style=\"padding-left: 30px;\"><code>ssh -R *:8080:localhost:22 usuarioremoto@servidorremoto.com<\/code><\/p>\n<p>El * quiere decir escuchar en cualquier IP. SSH por seguridad viene configurado para que solo podamos redirigir al ip \u00a0local de nuestro servidor.<br \/>\nEntonces lo que haremos en este ejemplo \u00a0es los siguiente. Mi mam\u00e1 redirecciona su puerto local de ssh (22) al 8080 de mi servidor. Luego yo redirecciono el puerto 8080 de mi servidor al 9090 de mi m\u00e1quina local. Para termina hago ssh en mi m\u00e1quina local<br \/>\nManos a la obra. Mi mam\u00e1 deber\u00eda escribir lo siguiente:<\/p>\n<p style=\"padding-left: 30px;\"><code>ssh -R 8080:localhost:22 mama@servidorremoto.com<\/code><\/p>\n<p>En este caso ya no usamos el * ni un ip porque se asume que estamos accediendo a localhost.<br \/>\nAhora yo desde mi computadora voy a redirigir el puerto 8080 del servidor remoto (accesible solamente desde el mismo) al puerto 9090 en mi m\u00e1quina personal.<\/p>\n<p style=\"padding-left: 30px;\"><code>ssh -L 9090:localhost:8080 rafael@servidorremoto.com<\/code><\/p>\n<p>Luego en otro terminal en mi computador hago ssh al puerto 9090 de localhost con el usuario del computador de mi mam\u00e1.<\/p>\n<p style=\"padding-left: 30px;\"><code>ssh -p 9090 usuariomama@locahost<\/code><\/p>\n<p>Un poco m\u00e1s complicado que el anterior, pero mucho m\u00e1s accesible y seguro.<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Este ejemplo talvez no todos los tengan, pero podr\u00eda ser una forma muy \u00fatil de tener soporte. Por ejemplo Juan es un administrador novato que da soporte y tiene problemas. Requiere la ayuda de Pedro que esta en otra localidad. Bajo este mismo principio Pedro podr\u00eda dar soporte a Juan.<\/p>\n<p>Tambi\u00e9n es importante notar que en este caso estamos redirigiendo solo el puerto de ssh, pero podr\u00eda ser cualquier puerto. Por ejemplo, estoy trabajando en una aplicaci\u00f3n web de manera local en mi computadora. Podr\u00eda redirigir ese puerto para que sea visible desde la web.<\/p>\n<h3 class='related_post_title'>Art\u00edculos relacionados<\/h3><ul class='related_post'><li><a href=\"https:\/\/rafael.bonifaz.ec\/blog\/2011\/01\/tuneles-ssh-parte-1\/\" title=\"T\u00faneles SSH (parte 1)\">T\u00faneles SSH (parte 1)<\/a><\/li><li><a href=\"https:\/\/rafael.bonifaz.ec\/blog\/2011\/01\/ssh-con-claves-publicas-y-privadas\/\" title=\"Ssh con claves P\u00fablicas y Privadas\">Ssh con claves P\u00fablicas y Privadas<\/a><\/li><li><a href=\"https:\/\/rafael.bonifaz.ec\/blog\/2015\/02\/acceder-a-un-computado-a-traves-de-tor-sin-ip-publico\/\" title=\"Acceder a un Computador a trav\u00e9s de Tor sin IP P\u00fablico\">Acceder a un Computador a trav\u00e9s de Tor sin IP P\u00fablico<\/a><\/li><\/ul>","protected":false},"excerpt":{"rendered":"<p>En el art\u00edculo anterior expliqu\u00e9 como usar un tunel ssh para acceder a un servicio remoto \u00a0que no es accesible en mi computador, pero s\u00ed es accesible desde un servidor al cual puedo ingresar. Ahora aprenderemos a hacer lo opuesto. Vamos a compartir servicios de mi red interna o mi computadora en otra red. Lo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[70,1,3],"tags":[178,172,83,84],"class_list":["post-362","post","type-post","status-publish","format-standard","hentry","category-comos","category-general","category-software-libre","tag-comos","tag-software-libre","tag-ssh","tag-tips"],"_links":{"self":[{"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/posts\/362","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/comments?post=362"}],"version-history":[{"count":6,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/posts\/362\/revisions"}],"predecessor-version":[{"id":365,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/posts\/362\/revisions\/365"}],"wp:attachment":[{"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/media?parent=362"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/categories?post=362"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rafael.bonifaz.ec\/blog\/wp-json\/wp\/v2\/tags?post=362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}