<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rafael Bonifaz &#187; Software Libre</title>
	<atom:link href="http://rafael.bonifaz.ec/blog/tag/software-libre/feed/" rel="self" type="application/rss+xml" />
	<link>http://rafael.bonifaz.ec/blog</link>
	<description>Blog personal de Rafael Bonifaz</description>
	<lastBuildDate>Thu, 26 Jan 2012 17:23:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Presentación II Encuentro Nacional y I Binacional</title>
		<link>http://rafael.bonifaz.ec/blog/2012/01/presentacion-ii-encuentro-nacional-y-i-binacional/</link>
		<comments>http://rafael.bonifaz.ec/blog/2012/01/presentacion-ii-encuentro-nacional-y-i-binacional/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 17:00:09 +0000</pubDate>
		<dc:creator>Rafael Bonifaz</dc:creator>
				<category><![CDATA[ASLE]]></category>
		<category><![CDATA[Ecuador]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Community Manager]]></category>
		<category><![CDATA[comuni]]></category>
		<category><![CDATA[Latinoamerica]]></category>
		<category><![CDATA[Perú]]></category>
		<category><![CDATA[presentaciones]]></category>

		<guid isPermaLink="false">http://rafael.bonifaz.ec/blog/?p=508</guid>
		<description><![CDATA[A los tiempos escribiendo en mi blog. Estoy muy feliz de poder participar en el II Encuentro Nacional de Software Libre y I Binacional (Ecuador &#8211; Perú).  En este evento participé con una presentación sobre Software Libre y Comunidades. Aquí pueden descargar la presentación: Software Libre y Comunidades (ODP) Software Libre y Comunidades (PDF) La [...]]]></description>
			<content:encoded><![CDATA[<p>A los tiempos escribiendo en mi blog. Estoy muy feliz de poder participar en el II Encuentro Nacional de Software Libre y I Binacional (Ecuador &#8211; Perú).  En este evento participé con una presentación sobre Software Libre y Comunidades. Aquí pueden descargar la presentación:</p>
<ul>
<li><a href="http://rafael.bonifaz.ec/blog/wp-content/uploads/2012/01/Software-Libre-y-Comunidades.odp">Software Libre y Comunidades (ODP)</a></li>
<li><a href="http://rafael.bonifaz.ec/blog/wp-content/uploads/2012/01/Software-Libre-y-Comunidades.pdf">Software Libre y Comunidades (PDF)</a></li>
</ul>
<p>La presentación esta bajo licencia <a href="http://creativecommons.org/licenses/by-sa/3.0/ec/deed.es"> CC share alike</a>. Si les utiliza, me gustaría mucho saberlo <img src='http://rafael.bonifaz.ec/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2012/01/presentacion-ii-encuentro-nacional-y-i-binacional/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenVPN how to 1</title>
		<link>http://rafael.bonifaz.ec/blog/2011/04/openvpn-how-to-1/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/04/openvpn-how-to-1/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 13:50:13 +0000</pubDate>
		<dc:creator>Rafael Bonifaz</dc:creator>
				<category><![CDATA[ASLE]]></category>
		<category><![CDATA[Comos]]></category>
		<category><![CDATA[FLISOL]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[openvpn]]></category>
		<category><![CDATA[seguridades]]></category>
		<category><![CDATA[Software Libre]]></category>

		<guid isPermaLink="false">http://rafael.bonifaz.ec/blog/?p=480</guid>
		<description><![CDATA[Introducción Una Red Privada Virtual (VPN por sus siglas en inglés) sirve para crear una conexión encriptada entre 2 o más puntos a través de Internet. Un caso de uso típico puede ser permitir al acceso a servicios de una intranet de forma segura desde Internet.  Otro caso típico de uso es interconectar redes locales [...]]]></description>
			<content:encoded><![CDATA[<h2>Introducción</h2>
<p>Una<strong> Red Privada Virtual </strong>(VPN por sus siglas en inglés) sirve para crear una conexión encriptada entre 2 o más puntos a través de Internet. Un caso de uso típico puede ser permitir al acceso a servicios de una intranet de forma segura desde Internet.  Otro caso típico de uso es interconectar redes locales de 2 ó más sucrusales a través de Internet. En este artículo haremos la primera opción y en un futuro cercano publicaré cómo interconectar 2 redes.</p>
<p>Existen varias implementaciones de VPN y en el mundo de software libre una de las más populares es OpenVPN.  Una de sus grandes ventajas, es que se pueden tener clientes en distintos sistemas operativos com GNU/Linux, Windows, Mac y seguro que en todas las versiones BSD.</p>
<h2>Instalación</h2>
<p>OpenVPN viene por defecto en la mayoría de las distribuciones GNU/Linux. En mi caso suelo utilizar Debian o Ubuntu. La instalación la hice con aptitude:</p>
<p style="padding-left: 30px;"><code>aptitude install openvpn</code></p>
<p>En distros basadas en RPM la instalación se la hace con yum:</p>
<p style="padding-left: 30px;"><code>yum install openvpn</code></p>
<p>Listo , así de fácil y de sencillo.<span id="more-480"></span></p>
<h2>Crear los certificados digitales</h2>
<p>OpenVPN autentica sus clientes a través de llaves públicas y privadas. De esta manera cada cliente tiene su llave privada y debe enviar su llave pública al servidor. Estas llaves son creadas con un certificado conocido como &#8220;<em>Certificado de Autoridad</em>&#8220;. De esta forma cuando el servidor recibe una llave pública este revisa si esta firmado con el certificado de autoridad. Sino esta no aceptará la conexión.</p>
<p>La forma más fácil de crear estos certificados es utilizando la utilidad easy-rsa que viene en el paquete de OpenVPN. En el caso de debian esta aplicación se encuentra en: <em>/usr/share/doc/openvpn/examples/easy-rsa/2.0/ easy-rsa</em>. Otras distribuciones tendrán una ruta similar.</p>
<p>Copiamos la aplicación a una ruta más fácil de recordar. Personalmente opté por un subdirectorio dentro de /etc/openvpn. Para tener las cosas ordenadas:</p>
<p style="padding-left: 30px;"><code>cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/easy-rsa<br />
</code></p>
<p>Ahora ingresamos al directorio para crear las claves:</p>
<p style="padding-left: 30px;"><code>cd /etc/openvpn/easy-rsa/ </code></p>
<p>Dentro de esta carpeta tenemos un archivo que almacena algunas variables importantes. Recomiendo revisar este archivo y de ser el caso modificar algunas variables.</p>
<p style="padding-left: 30px;"><code>vim vars</code></p>
<p>En mi caso personalice la siguiente parte para que cuando cree los certificados los valores por defecto tengan que ver con mi realidad:</p>
<p style="padding-left: 30px;"><code>export KEY_COUNTRY="EC"<br />
export KEY_PROVINCE="Pichicha"<br />
export KEY_CITY="Cayambe"<br />
export KEY_ORG="Mi empresa"<br />
export KEY_EMAIL="yo@midominio.com" </code></p>
<p>Guardamos y cerramos el archivo. Si no queremos no modificamos el archivo, es algo netamente opcional.</p>
<p>Cargamos las variables de este archivo al shell que estamos utilizando:</p>
<p style="padding-left: 30px;"><code>. vars</code></p>
<p>Borramos las claves previamete creados en caso de existir. Hacer esto solo si es la primera vez que vamos a crear los certificados y las claves.</p>
<p style="padding-left: 30px;"><code>./clean-all </code></p>
<p>Creamos el certificado de autoridad:</p>
<p style="padding-left: 30px;"><code>./build-ca</code></p>
<p>Si modificaron las variables, se darán cuenta que ahora las estaremos utilizando.</p>
<p>Certificado y clave privada para el servidor</p>
<p style="padding-left: 30px;"><code>/build-key-server servidor </code></p>
<p>Esto generara los archivos servidor.crt y servidor.key. donde el archivo .key es la llave privada y .crt es la pública.</p>
<p>Generamos los parámetros <a href="http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange"> Diffie Helman</a></p>
<p style="padding-left: 30px;"><a href="http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange"></a><span style="font-family: monospace;">./build-dh</span></p>
<p>Generamos las claves de los clientes.</p>
<p style="padding-left: 30px;"><code>./build-key cliente1<br />
./build-key cliente2<br />
./build-key cliente3<br />
</code></p>
<p>De manera similar al servidor se crearán las claves *.key y *.crt que serán las claves privadas y públicas respectivamente. Las 2 claves las deberemos copiar al cliente.</p>
<p>Listo, hemos creado todos los certificados necesarios y estamos listos para configurar los clientes y el servidor. Es importante sacar un respaldo del directorio /etc/openvpn/easy-rsa ya que ahí están todas las claves, incluido el certificado de autoridad que nos permitirá crear nuevas claves a futuro.</p>
<h3>Resumen de las claves y certificados creados:</h3>
<table border="1">
<tbody>
<tr>
<th>Archivo</th>
<th>Utilizado en</th>
<th>Descripción</th>
<th>Secreto</th>
</tr>
<tr>
<td>ca.ca</td>
<td>Servidor y todos los clientes</td>
<td>Certificado de Autoridad</td>
<td>no</td>
</tr>
<tr>
<td>ca.crt</td>
<td>Máquina donde se crean los certificados</td>
<td>Llave del certificado CA principal</td>
<td>sí</td>
</tr>
<tr>
<td>dh{n}.pem</td>
<td>Servidor</td>
<td>Parámetros Diffie Hellman</td>
<td>no</td>
</tr>
<tr>
<td>servidor.crt</td>
<td>Servidor</td>
<td>Certificado del servidor</td>
<td>no</td>
</tr>
<tr>
<td>servidor.key</td>
<td>Servidor</td>
<td>Llave privada del certificado del servidor</td>
<td>sí</td>
</tr>
<tr>
<td>clienteX.crt</td>
<td>Solo en el cliente X</td>
<td>Certificado del Cliente X</td>
<td>no</td>
</tr>
<tr>
<td>clienteX.key</td>
<td>Solo en el cliente X</td>
<td>Llave privado del certificado del cliente X</td>
<td>no</td>
</tr>
</tbody>
</table>
<p style="padding-left: 30px;"><strong>Nota:</strong> en clienteX, X quiere decir el número del cliente. En este ejemplo estamos trabajamos con 3 clientes para la VPN pr lo que deberíámos tener 3 pares de claves .crt y .key.</p>
<h2>Configurar el Servidor</h2>
<p>Copiamos los archivos que corresponden al servidor en una carpeta dentro del mismo. En mi caso copie la configuración en /etc/openvpn/claves. Si generamos las claves en una máquina que no es el servidor debemos usar <a href="http://rafael.bonifaz.ec/blog/2011/01/copiar-archivos-con-scp-ssh/">scp</a> u otra aplicación para subirlas a nuestro servidor.<br />
Copiamos un archivo de ejemplo de configuración del servidor y la adaptamos a nuestras necesidades.</p>
<p style="padding-left: 30px;"><code>cd /etc/openvpn<br />
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz .<br />
gunzip server.conf.gz<br />
vim server.conf<br />
</code></p>
<p>Dentro del archivo modificamos algunas variables para que funcione. Aquí expico algunas:<br />
Protocolo a utilizar:</p>
<p style="padding-left: 30px;"><code># TCP or UDP server?<br />
proto udp<br />
</code></p>
<p>Vamos a configurar la vpn utilizando el protocolo UDP ya que esto nos dará un mejor rendimiento. No tiene sentido trabajar en TCP ya que dentro de nuestra vpn se correra el protocolo IP donde de ser necesario se volver a utilizar el protocolo TCP y no tiene sentido utilizar 2 veces este protocolo. En otras palabras, utilizar TCP solo cuando no lo puedan hacer con UDP.</p>
<p>Definimos las rutas a los certifiados. Recordar que en este ejemplo estamos utilizando /etc/openvpn/claves</p>
<p style="padding-left: 30px;"><code> ca claves/ca.crt<br />
cert claves/servidor.crt<br />
key claves/servidor.key<br />
dh dh1024.pem<br />
</code></p>
<p>Por último, en el mismo archivo, decimos a que redes queremos que los clientes vpn puedan acceder.</p>
<p style="padding-left: 30px;"><code>push "route 192.168.45.0 255.255.255.0" </code></p>
<p>Listo podremos iniciar el servidor:</p>
<p style="padding-left: 30px;"><code>/etc/init.d/openvpn start</code></p>
<p>En caso de necesitar corregir errores se puede iniciar el servicio así:</p>
<p style="padding-left: 30px;"><code>openvpn &lt;archivo de configuración&gt;</code></p>
<p><strong>Nota</strong>: El servidor VPN debería poder trabajar como ruteador por lo que debemos activar esto a nivel del kernel:</p>
<p style="padding-left: 30px;">echo 1 &gt; /proc/sys/net/ipv4/ip_forward</p>
<p>Para que la configuración quede grabada y no se pierda al reiniciar la máquina se debe editar el archivo /etc/sysctl.conf y poner el valor de 1 a la variable correspondiente:</p>
<p style="padding-left: 30px;"><code>net.ipv4.ip_forward=1</code></p>
<h2>Configuración de un Cliente</h2>
<p>Instalar OpenVPN en el cliente. En el caso de usar Linux, la instalación es igual a como se instala el servidor.<br />
Copiamos los archivos correspondientes al cliente dentro de la máquina del mismo (Ver la tabla de arriba). En mi caso los copie en /etc/openvpn/claves</p>
<p>Una vez que tenemos las claves, copiamos un archivo de configuración de ejemplo para cliente y lo configuramos para nuestras necesidades:</p>
<p style="padding-left: 30px;"><code>cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/<br />
vim client.conf</code></p>
<p>Definimos el protocolo como UDP igual que en el servidor:</p>
<p style="padding-left: 30px;"><code>proto udp<br />
</code></p>
<p>De manera similar al servidor, editamos las varialbes <strong>ca, cr y key</strong>:</p>
<p style="padding-left: 30px;"><span style="font-family: monospace;">ca claves/ca.crt<br />
</span><span style="font-family: monospace;">cert claves/clienteX.crt<br />
</span><span style="font-family: monospace;">key claves/clientX.key</span></p>
<p>El cliente debe saber a que servidor se debe conectar. Para esto debemos utilizar un nombre de dominio o el IP público y el puerto a conectarse. Por defecto OpeVPN corre en el puerto 1194.</p>
<p style="padding-left: 30px;"><code> remote miservidor.com 1194</code></p>
<p>Iniciamos OpenVPN en el cliente</p>
<p style="padding-left: 30px;"><span style="font-family: monospace;">/etc/init.d/openvpn start</span></p>
<p>En caso de tener errores podemos probar con</p>
<p style="padding-left: 30px;"><code>openvpn &lt;archivo de configuracion&gt;</code></p>
<p>Para probar la conectividad podemos hacer ping al ip 10.8.0.1 que es el ip de nuestro servidor. Si lo hacemos ya estamos con la VPN arriba. en caso de haber puesto la sentencia push podríamos hacer ping a ips dentro de la red LAN donde se encuentra la VPN. Ojo que las máquinas de la red LAN deberían saber como llegar a la red 10.8.0.0/24, para esto deberíamos ver la configuración del servidor.</p>
<h2>Referencias Adicionales</h2>
<ul>
<li><a href="http://openvpn.net/index.php/open-source/documentation/howto.html">How to OpenVPN</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/04/openvpn-how-to-1/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Acceder a wp-admin vía HTTPS</title>
		<link>http://rafael.bonifaz.ec/blog/2011/03/acceder-a-wp-admin-via-https/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/03/acceder-a-wp-admin-via-https/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 20:07:05 +0000</pubDate>
		<dc:creator>Rafael Bonifaz</dc:creator>
				<category><![CDATA[ASLE]]></category>
		<category><![CDATA[Comos]]></category>
		<category><![CDATA[FLISOL]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://rafael.bonifaz.ec/blog/?p=477</guid>
		<description><![CDATA[Quién no ha actualizado su blog desde un accessppoint público donde fácilmente nuestra clave podría ser hackeada y luego alguien más podría hacer maravillas con nuestro blog. Talvez si voy a un restaurante esto no sea tan probable (pero podría ser), pero si voy a un evento de tecnología cómo el FLISOL o un Barcamp. [...]]]></description>
			<content:encoded><![CDATA[<p>Quién no ha actualizado su blog desde un accessppoint público donde fácilmente nuestra clave podría ser hackeada y luego alguien más podría hacer maravillas con nuestro blog. Talvez si voy a un restaurante esto no sea tan probable (pero podría ser), pero si voy a un evento de tecnología cómo el FLISOL o un Barcamp. donde la red esta abierta y estoy rodeado de expertos informáticos la historia es muy diferente. Para muestra un botón de lo que <a href="http://www.bureado.com/archives/788">José Miguel Parella hizo para ilustrar este problema</a>.</p>
<p>En este artículo explicaré como asegurar WordPress para que la administración del mismo tenga una comunicación encriptada con el servidor. Para esto modificamos el archivo:</p>
<p style="padding-left: 30px;"><code>/directorio/instalacion/wp-admin.php</code></p>
<p>Añádimos la siguiente línea:</p>
<p style="padding-left: 30px;"><code>define('FORCE_SSL_ADMIN', true);</code></p>
<p>Esta línea debería estar antes de este comentario:</p>
<p style="padding-left: 30px;"><code>/* That's all, stop editing! Happy blogging. */</code><code>define('ABSPATH', dirname(__FILE__).'/');<br />
</code></p>
<p>Con esto estaremos obligados a administrar WordPress através de HTTPS. Ojo deberían tener configurado su servidor web para que escuche por HTTPS en ese puerto.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/03/acceder-a-wp-admin-via-https/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>FLISOL de Portoviejo 2005</title>
		<link>http://rafael.bonifaz.ec/blog/2011/03/flisol-de-portoviejo-2005/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/03/flisol-de-portoviejo-2005/#comments</comments>
		<pubDate>Sun, 13 Mar 2011 03:08:50 +0000</pubDate>
		<dc:creator>Rafael Bonifaz</dc:creator>
				<category><![CDATA[ASLE]]></category>
		<category><![CDATA[FLISOL]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[FLISOL2005]]></category>
		<category><![CDATA[Portoviejo]]></category>

		<guid isPermaLink="false">http://rafael.bonifaz.ec/blog/?p=469</guid>
		<description><![CDATA[El primer FLISOL fui coordinador nacional de Ecuador y de la ciudad de Cayambe. En realidad era nuevo dentro de la comunidad de software libre de mi país y además joven (24 años), pero al parecer por muy entusiasta terminé como coordinador nacional. Una vez terminado el FLISOL de Cayambe envié un correo muy emocionado [...]]]></description>
			<content:encoded><![CDATA[<p><a href="bonifaz.ec/flisol1">El primer FLISOL fui coordinador nacional de Ecuador y de la ciudad de Cayambe</a>. En realidad era nuevo dentro de la comunidad de software libre de mi país y además joven (24 años), pero al parecer por muy entusiasta terminé como coordinador nacional.</p>
<p>Una vez terminado el FLISOL de Cayambe envié un correo muy emocionado compartiendo mi experiencia a varias listas. Al parecer mi emoción fue tanta que me publicaron el correo en <a href="http://www.linuxpreview.org/modules.php?name=News&amp;file=article&amp;sid=1275">el sitio de LinuxPreview.</a></p>
<p>Luego de enviar el correo decidí descagar mis correos y obtuve una triste noticia desde la ciudad de Portoviejo. Lamentablemente justo el día en que se realizaba el FLISOL hubo un apagón. Por más buenas intenciones que alguien pueda tener, es imposible hacer un festival de instalaciones sin electricidad.<span id="more-469"></span></p>
<p>Lo primero que pensé luego de leer ese correo fue en que iba a hacer el próximo sábado. No tenía planes, podría irme a Portoviejo. Llame a Gabriel por teléfono y le dije porque no hacemos el evento en una semana y por lo menos yo desde Quito/Cayambe iría hasta allá para ayudar. Gabriel aceptó, compartí la idea con la comunidad del FLISOL de Ecuador y a la final fui yo desde Cayambe, David Puente desde Quito y Guillermo Salas desde Manta (más fácil <img src='http://rafael.bonifaz.ec/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ).</p>
<p>El viaje de Quito a Portoviejo toma alrededor de 8 horas en bus, que normalmente me gusta hacerlas de noche. Para los que conocen Ecuador un viaje como este se podría definir como una mala noche, un susto y $8. Riesgo que no me lo podía perder para conocer y ayudar a mis amigos de Portoviejo.</p>
<p>El siguiente viernes de noche, emprendí el viaje con mi amigo David y nos fuimos hasta Portoviejo. Una vez ahí llamamos a Gabriel al celular y nos fuimos a desayunar con Gabriel. Luego se nos unió Debray Acosta . Fuimos a la universidad a conocer el laboratorio y ver lo que tenían preparado.</p>
<p>La idea era simple, en un laboratorio se darían charlas de software libre y luego empezaríamos a instalar. Gabriel empezó con su charla sobre demostrativa del software libre. Entre otras cosas recuerdo que habló de Gambas, emuladores de nintendo, MySQL y mucho más.</p>
<p>Yo estaba sumamente cansado luego de haber viajado toda la noche cuando escuché a Gabriel terminar su presentación con las siguientes palabras: &#8220;Bueno, ahora les dejo con Rafael Bonifaz para que les cuente sobre software libre&#8221;</p>
<p>En ese entonces yo había dado exactamente una sola conferencia de software libre en toda mi vida y fue la semana anterior en el FLISOL de Cayambe. Claro para esa presentación casi no dormí la noche anterior (era mi primera) y tenía mis diapositivas para apoyarme.</p>
<p>Ahora una semana después, mal dormido me habían anunciado para que de una charla de software libre que no había preparado y además no tenía mis diapositivas. Me llené de valor, caminé hacia adelante donde veía a toda la gente que me veía y decidí contar mi experiencia con el software libre. Creo que fue entonces cuando perdí el miedo escénico para hablar de software libre e improvisé una charla de 45 minutos. Lo increíble fue que nadie se aburrió (bueno tal vez David que tampoco había dormido muy bien), por lo contrario todos se veían sumamente interesados por el tema.</p>
<p>Luego de mi charla, paso adelante Gabriel y dijo que ahora ahora David Puente daría su charla sobre OpenOffice.org. David que tampoco había preparado su presentación salió muy bien librado.</p>
<p>Terminadas las charlas, empezamos a instalar GNU/Linux. Fue durante las instalaciones que me presentaron al mítico Razametal (Guillermo Salas) que venía desde Manta. Digo mítico porque en esa época el sitio de software libre más popular de Ecuador era el Ecualug y era simplemente imposible tratar de igualar la participación de Razametal. Para mi en ese momento era como conocer a uno de los duros. (Todavía es de los duros, pero ya le conozcó un bueno tiempo)</p>
<p>Terminado el evento, el buen Debray Acosta empezó con su tour gastronómico por Manabí. Fuimos a almorzar y en algún momento comimos unos deliciosos corviches que yo tanto había pedido. Luego nos fuimos a dormir en la playa de Crucita y a seguir disfrutando de la comida de mar.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/03/flisol-de-portoviejo-2005/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Cómo empezó el FLISOL?</title>
		<link>http://rafael.bonifaz.ec/blog/2011/03/%c2%bfcomo-empezo-el-flisol/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/03/%c2%bfcomo-empezo-el-flisol/#comments</comments>
		<pubDate>Fri, 11 Mar 2011 03:30:03 +0000</pubDate>
		<dc:creator>Rafael Bonifaz</dc:creator>
				<category><![CDATA[ASLE]]></category>
		<category><![CDATA[FLISOL]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Comunidades]]></category>
		<category><![CDATA[Latinoamerica]]></category>

		<guid isPermaLink="false">http://rafael.bonifaz.ec/blog/?p=463</guid>
		<description><![CDATA[Algunos miles de personas estarán participando en la organización del FLISOL, otros varios miles participar en este evento. Lo que talvez la gran mayoría no sabe es cómo nació el FLISOL. El FLISOL fue una iniciativa de la comunidad colombiana de software libre COLIBRI que organizaba un evento similar al FLISOL pero con alcance local [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rafael.bonifaz.ec/blog/wp-content/uploads/2011/03/logo-flisol.png"><img class="size-medium wp-image-464 alignleft" title="logo flisol" src="http://rafael.bonifaz.ec/blog/wp-content/uploads/2011/03/logo-flisol-300x203.png" alt="" width="300" height="203" /></a>Algunos miles de personas estarán participando en la organización del FLISOL, otros varios miles participar en este evento. Lo que talvez la gran mayoría no sabe es cómo nació el <a href="http://www.flisol.info">FLISOL</a>.</p>
<p>El FLISOL fue una iniciativa de la comunidad colombiana de software libre <a href="http://www.accusor.net/colibri/index.html">COLIBRI</a> que organizaba un evento similar al FLISOL pero con alcance local en Colombia desde el año 2003. La idea original de este evento fue de <a href="http://web.archive.org/web/20060218113830/bachue.com/colibri/listas/colibri/-3C-20030805231845.GA575-40-bachue.com-3E-.html">Alejandro Forero Cuervo</a> y se llamaba FISL. El mismo Alejandro <a href="http://web.archive.org/web/20060315081645/bachue.com/colibri/listas/colibri/-3C-20041004195340.GA5319-40-bachue.com-3E-.html">en octubre del año 2004 propone realizar un evento similar, pero invitando a gente de otros países</a>. En poco tiempo Alejandro <a href="http://osdir.com/ml/org.user-groups.colibri/2005-01/msg00033.html">mejoró la idea y surgió lo que ahora conocemos como FLISOL</a>.</p>
<p>Al ingresar al sitio oficial del FLISOL se puede ver que no existe una referencia del primer evento en el año 2005. Sospecho que por algún motivo se perdió el backup pero recientemente encontré un <a href="http://replay.waybackmachine.org/20050403174730/http://www.installfest.net/">snapshot del 3 de abril del año 2005</a>, que muestra como se veía el sitio un día después de la realización del primer FLISOL.<span id="more-463"></span></p>
<p>Cuando me enteré de la idea de organizar un evento sobre el primer FLISOL, llené de emoción porque me pareció simplemente una idea fantástica. Este evento ayudó a unir a las comunidades de software libre de América Latina que no nos conocíamos y además ayudó a conocer a la comunidad de software libre a nivel nacional y a nivel de ciudad.</p>
<p>Para los que les interese un poco más como surgió este evento, les comparto mi <a href="http://rafael.bonifaz.ec/blog/2008/05/recordando-el-primer-flisol/">experiencia coordinando el primer FLISOL de Ecuador</a> y un artículo que escribí sobre el <a href="http://rafael.bonifaz.ec/blog/2009/04/impacto-del-flisol-en-ecuador/">impacto del FLISOL en el Ecuador</a>. Además recomiendo leer esta página del <a href="http://flisol.info/ColombiaBogota/Book">Wiki del FLISOL que nos cuenta más de la historia del FLISOL.</a></p>
<p>Quiero agradecer a Alejandro y a COLIBRI por haber aportado con esta excelente idea. Además hay que agradecer a toda la comunidad a nivel regional por apoyar constantemente a este evento.</p>
<p>Por último quiero agradecer a ﻿﻿<a href="http://identi.ca/befana">María del Pilar Saenz porque a través de Identi.ca</a> me ayudo a encontrar los links a los correos de Alejandro que me aclararon mucho sobre como inicio esto.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/03/%c2%bfcomo-empezo-el-flisol/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Añadir sellos personalizadas en Tux Paint</title>
		<link>http://rafael.bonifaz.ec/blog/2011/02/anadir-sello-personalizadas-en-tux-paint/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/02/anadir-sello-personalizadas-en-tux-paint/#comments</comments>
		<pubDate>Tue, 22 Feb 2011 01:51:08 +0000</pubDate>
		<dc:creator>Rafael Bonifaz</dc:creator>
				<category><![CDATA[Comos]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[niños]]></category>
		<category><![CDATA[tuxpaint]]></category>

		<guid isPermaLink="false">http://rafael.bonifaz.ec/blog/?p=452</guid>
		<description><![CDATA[Con esto de ser papá e informático tenía que llegar el momento de compartir la computadora con las hijas. Actualmente la Ana Martina le encanta jugar con Gcompris, pero en especial con Tux Paint. Estos son 2 aplicaciones de software libre educativas excelentes para los más pequeños y sus padres . Para los que no [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_453" class="wp-caption alignright" style="width: 310px"><a href="http://rafael.bonifaz.ec/blog/wp-content/uploads/2011/02/20110206155254.png"><br />
<img class="size-medium wp-image-453" title="Sobrina y Caballo" src="http://rafael.bonifaz.ec/blog/wp-content/uploads/2011/02/20110206155254-300x232.png" alt="En esta imagen se puede ver a mi sobrina montada en el cabllo" width="300" height="232" /></a><p class="wp-caption-text">En esta imagen se puede ver a mi sobrina montada en el caballo</p></div>
<p>Con esto de ser papá e informático tenía que llegar el momento de compartir la computadora con las hijas. Actualmente la Ana Martina le encanta jugar con <a href="http://gcompris.net/-es-">Gcompris</a>, pero en especial con <a href="http://tuxpaint.org/">Tux Paint</a>. Estos son 2 aplicaciones de software libre educativas excelentes para los más pequeños y sus padres <img src='http://rafael.bonifaz.ec/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .<br />
Para los que no han utilizado alguna vez Tux Paint saben que una de las partes más interesantes son las sellos. Con los sellos podemos agregar imágenes, las mismas que suelen ser asociadas con un sonido y un texto descriptivo. Por ejemplo si añadimos la vaca, al seleccionarla va a sonar &#8220;moo&#8221; y luego el audio nos dice la palabra &#8220;vaca&#8221;. Así el niño asocia la vaca con la imagen, el sonido y su nombre.<br />
Si bien hay muchos sellos con muchos sonidos, me parece interesante poder añadir más. Por ejemplo, me gustaría tener animales andinos  como el condor, las llamas, etc&#8230; Esto todavía no lo hago, probablemente alguien ya lo ha hecho y sino espero que este artículo ayude a alguien a hacerlo <img src='http://rafael.bonifaz.ec/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .<br />
Una de las libertades del software libre es poder modificar sus aplicaciones y entender como funcionan. En este artículo vamos a ver lo sencillo que es hacer estos cambios en Tux Paint sin tocar el código fuente.</p>
<p><span id="more-452"></span></p>
<h2>Añadir Sellos a 1 Usuario</h2>
<p>En este caso en particular es necesario crear el directorio ~/.tuxpaint/stamps (/hpme/usuario/.tuxpaint/stamps). Dentro del mismo creamos los sub directorios que necesitemos para organizar nuestros sellos.</p>
<p>En cada sub directorio deberíamos añadir una imagen PNG (con transparencia) o SVG para lo que se puede usar el <a href="http://www.gimp.org">Gimp</a> u otra aplicación gráfica. Listo luego ya podremos ver los sellos en Tux Paint.</p>
<p>Nota: Además de los sellos se pueden crear las carpetas ~/.tuxpaint/brushes y ~/.tuxpaint/starters para añadir brochas e imagenes de fondo para iniciar los dibujos.</p>
<h2>Añadir Sellos para todos los Usuarios</h2>
<p>Esta solución es útil si tenemos más de una persona usando la computadora. Por ejemplo podría ser el caso de una escuela donde cada niño tiene su propio usuario, pero queremos que todos tengan acceso a nuestras personalizaciones.</p>
<h2><span style="font-weight: normal; font-size: 13px;">TuxPaint guarda las imagenes, sellos y sonidos dentro del directorio<em> /usr/share/tuxpaint.</em> En este directorio esta el subdirectorio <em>/usr/share/tuxpaint/stamps</em>. Si revisamos este directorio vamos a ver varios subdirectorios. Lo que yo hice fue crear el directorio personal y asignar privilegios de escritura a mi usuario.</span></h2>
<p style="padding-left: 30px;"><code>mkdir /usr/share/tuxpaint/stamps/personal/<br />
</code></p>
<p>De esta manera tendré un directorio donde podré copiar las imágenes sin preocuparme e los permisos.. En mi caso subí una foto de mi sobrina para que mi hija tenga a su prima dentro del Tux Paint. Para esto con mis pocas habilidades en el <a href="http://www.gimp.org/">Gimp</a> cree el archivo <em>sobrina.png</em>. Uso este formato porque soporta transparencias. El archivo lo guardé en el directorio personal recién creado. Luego cree un archivo de texto llamado <em>sobrina.txt</em> dentro del mismo directorio  y dentro del mismo puse el texto &#8220;nombre de mi sobrina&#8221;. Además utilizando el micrófono puede haber creado el archivo sobrina.ogg y copiarlo ahí mismo. Listo ahora hay una nueva categoría dentro de los sellos donde esta mi sobrina. Ahora a agregar a toda la familia <img src='http://rafael.bonifaz.ec/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<h2>Conclusión</h2>
<p><del datetime="2011-02-23T01:28:07+00:00">No se si esta es la manera en la que se debe hacer. La verdad leí cero documentación, solo revisé el árbol de directorio y vi como estaban estructuradas las otras imágenes. El resto fue experimentar :). Si alguien sabe una mejor forma de hacerlo avise <img src='http://rafael.bonifaz.ec/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</del></p>
<p>Gracias a Ricardo Arguello y a Bill Kendrick mejore este mini how to y <a href="http://www.tuxpaint.org/docs/html/EXTENDING.html">encontré este tutorial en Inglés </a>mucho más detallado y con explicaciones para Windows y Mac.</p>
<p>Seguro esto también se puede hacer en Mac y Windows, solo hay que revisar donde estan los archivos.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/02/anadir-sello-personalizadas-en-tux-paint/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Usuarios Software Libre y Software Privativo &#8211; Video</title>
		<link>http://rafael.bonifaz.ec/blog/2011/02/usuarios-software-libre-y-software-privativo-video/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/02/usuarios-software-libre-y-software-privativo-video/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 02:19:56 +0000</pubDate>
		<dc:creator>Rafael Bonifaz</dc:creator>
				<category><![CDATA[FLISOL]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://rafael.bonifaz.ec/blog/?p=448</guid>
		<description><![CDATA[El 19 de julio de 2010 publiqué un artículo en este blog llamado: Usuarios de Software Libre y Software Privativo.  Recientemente por algún motivo la gente volvió a descubrir este artículo, entre ellos Alexandro Colorado. Alexandro me pidió que leyera el artículo y grabara el audio para hacer un video que podría ser útil para [...]]]></description>
			<content:encoded><![CDATA[<p>El 19 de julio de 2010 publiqué un artículo en este blog llamado: <a href="http://rafael.bonifaz.ec/blog/2010/07/usuarios-de-software-libre-y-de-software-privativo/">Usuarios de Software Libre y Software Privativo</a>.  Recientemente por algún motivo la gente volvió a descubrir este artículo, entre ellos <a href="http://identi.ca/jza">Alexandro Colorado</a>. Alexandro me pidió que leyera el artículo y grabara el audio para hacer un video que podría ser útil para el FLISOL de este año. Así que le hice caso, grabe el audio y Alexandro hizo el resto con software libre.<br />
<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/54Fn5hprBxg" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/02/usuarios-software-libre-y-software-privativo-video/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Entrevista a Charles-M Schulz</title>
		<link>http://rafael.bonifaz.ec/blog/2011/02/entrevista-a-charles-m-schulz/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/02/entrevista-a-charles-m-schulz/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 01:41:13 +0000</pubDate>
		<dc:creator>Rafael Bonifaz</dc:creator>
				<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[bitscloud]]></category>
		<category><![CDATA[entrevistas]]></category>
		<category><![CDATA[LibreOffice]]></category>
		<category><![CDATA[OpenOffice.org]]></category>

		<guid isPermaLink="false">http://rafael.bonifaz.ec/blog/?p=444</guid>
		<description><![CDATA[Recientemente empecé a colaborar con el blog Bitscloud liderado por Byron Mayorga. Mi primer aporte fue una entrevista a Charles-M Schulz de LibreOffice. Recientemente el proyecto OpenOffice.org tuve una división y un número muy importante de contribuidores del mismo decidieron hacer un fork del proyecto. Charles es una de las personas claves en este acontecimiento de uno de [...]]]></description>
			<content:encoded><![CDATA[<p>Recientemente empecé a colaborar con el blog <a href="http://bitscloud.com/">Bitscloud</a> liderado por <a href="http://twitter.com/bmayorga">Byron Mayorga</a>. Mi primer aporte fue <a href="http://bitscloud.com/2011/02/entrevista-charles-h-schulz-libreoffice/">una entrevista a Charles-M Schulz de LibreOffice</a>. Recientemente el proyecto OpenOffice.org tuve una división y un número muy importante de contribuidores del mismo decidieron hacer un fork del proyecto. Charles es una de las personas claves en este acontecimiento de uno de los proyectos de software libre más importantes.</p>
<p>Como dato anegdótico, tuve la oportunidad de conocer a Charles en el BRM de OOXML en Ginebra en el año 2008. Si bien estuve una semana ahí tuve la oportunidad de conversar mucho con el y otra gente interesante del movimiento del software libre y estándares abiertos. Algo paradójico es que nunca hubiera conocido a Charles y a mucha otra gente interesante si no hubiera sido gracias a Microsoft el estandard OOXML que todavía no lo implementa nadie.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/02/entrevista-a-charles-m-schulz/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Túneles SSH (parte 2)</title>
		<link>http://rafael.bonifaz.ec/blog/2011/01/tuneles-ssh-parte-2/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/01/tuneles-ssh-parte-2/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 01:56:24 +0000</pubDate>
		<dc:creator>Rafael Bonifaz</dc:creator>
				<category><![CDATA[Comos]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://rafael.bonifaz.ec/blog/?p=362</guid>
		<description><![CDATA[En el artículo anterior expliqué como usar un tunel ssh para acceder a un servicio remoto  que no es accesible en mi computador, pero sí 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 [...]]]></description>
			<content:encoded><![CDATA[<p>En el <a href="http://bonifaz.ec/sshtunel1">artículo anterior </a>expliqué como usar un tunel ssh para acceder a un servicio remoto  que no es accesible en mi computador, pero sí 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ás probable es que sea el Internet. Al igual que el artículo anterior, vamos a explicar esta utilidad con ejemplos.</p>
<h2>Ejemplo #1: Acceder con ssh a computador con ip privado</h2>
<p>Vamos a suponer el siguiente caso práctico. Mi mamá es una usuaria de GNU/Linux y tiene algún problema en su computador. Ella tiene su computadora en la casa y no tiene ip pública 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&#8221; mami vaya a accesorios terminal y escribe lo siguiente:</p>
<p style="padding-left: 30px;"><code>ssh -R *:8080:localhost:22 usuarioremoto@servidorremoto.com</code></p>
<p>Mi mamá no tiene porque entender este comando, pero ustedes sí.  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áquina local. La segunda parte del comando quiere decir a que servidor ingresamos y con que usuario.<br />
En otras palabras mi mamá 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.<span id="more-362"></span><br />
Ahora para yo ingresar al computador de mi mamá simplemente hago ssh al puerto 8080 en el servidor remoto con el usuario local del computador de mi mamá.</p>
<p style="padding-left: 30px;"><code>ssh  -p 8080 usuario@servidorremoto.com </code></p>
<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ón del servidor ssh: /etc/ssh/sshd_config y añadir la siguiente línea:</p>
<p style="padding-left: 30px;"><span style="font-family: monospace;">GatewayPorts yes</span></p>
<p>Luego reiniciamos ssh</p>
<p style="padding-left: 30px;"><code>/etc/init.d/ssh restart</code></p>
<p>Ahora sí debe funcionar.<br />
Si se fijan bien lo que estamos haciendo hay una falla de seguridad. Si mucha gente puede hacer ssh a mi servidor remoto, entonces podrían estar utilizando varios puertos de mi servidor para fines que desconozco.<br />
La buena noticia, es que sumando los conocimientos adquiridos aquí con el <a href="http://bonifaz.ec/sshtunel1">primer ejemplo de túneles ssh</a> podemos obtener el mismo resultado.</p>
<h2>Ejemplo #2: Acceder con ssh a computador con ip privado sin necesidad de root en el servidor</h2>
<p>Por defecto la siguiente línea no va a funcionar si no editamos el archivo de configuración del ejemplo anterior.</p>
<p style="padding-left: 30px;"><code>ssh -R *:8080:localhost:22 usuarioremoto@servidorremoto.com</code></p>
<p>El * quiere decir escuchar en cualquier IP. SSH por seguridad viene configurado para que solo podamos redirigir al ip  local de nuestro servidor.<br />
Entonces lo que haremos en este ejemplo  es los siguiente. Mi mamá 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áquina local. Para termina hago ssh en mi máquina local<br />
Manos a la obra. Mi mamá debería escribir lo siguiente:</p>
<p style="padding-left: 30px;"><code>ssh -R 8080:localhost:22 mama@servidorremoto.com</code></p>
<p>En este caso ya no usamos el * ni un ip porque se asume que estamos accediendo a localhost.<br />
Ahora yo desde mi computadora voy a redirigir el puerto 8080 del servidor remoto (accesible solamente desde el mismo) al puerto 9090 en mi máquina personal.</p>
<p style="padding-left: 30px;"><code>ssh -L 9090:localhost:8080 rafael@servidorremoto.com</code></p>
<p>Luego en otro terminal en mi computador hago ssh al puerto 9090 de localhost con el usuario del computador de mi mamá.</p>
<p style="padding-left: 30px;"><code>ssh -p 9090 usuariomama@locahost</code></p>
<p>Un poco más complicado que el anterior, pero mucho más accesible y seguro.</p>
<h2>Conclusión</h2>
<p>Este ejemplo talvez no todos los tengan, pero podría ser una forma muy útil 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ía dar soporte a Juan.</p>
<p>También es importante notar que en este caso estamos redirigiendo solo el puerto de ssh, pero podría ser cualquier puerto. Por ejemplo, estoy trabajando en una aplicación web de manera local en mi computadora. Podría redirigir ese puerto para que sea visible desde la web.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/01/tuneles-ssh-parte-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Túneles SSH (parte 1)</title>
		<link>http://rafael.bonifaz.ec/blog/2011/01/tuneles-ssh-parte-1/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/01/tuneles-ssh-parte-1/#comments</comments>
		<pubDate>Thu, 06 Jan 2011 22:49:17 +0000</pubDate>
		<dc:creator>Rafael Bonifaz</dc:creator>
				<category><![CDATA[Comos]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://rafael.bonifaz.ec/blog/?p=351</guid>
		<description><![CDATA[Durante mucho tiempo utilice GNU/Linux y ssh a diario, pero me tomo tiempo darme cuenta de la utilidad de los tuneles ssh. Es una herramienta super práctica que espero ilustrar su uso con este artículo. A mi cuando me explicaron no entendí para que me iba a servir, pero con unos ejemplos creo que es [...]]]></description>
			<content:encoded><![CDATA[<p>Durante mucho tiempo utilice GNU/Linux y ssh a diario, pero me tomo tiempo darme cuenta de la utilidad de los tuneles ssh. Es una herramienta super práctica que espero ilustrar su uso con este artículo. A mi cuando me explicaron no entendí para que me iba a servir, pero con unos ejemplos creo que es más fácil entender.</p>
<p>Básicamente un tunel ssh sirve para acceder a un servicio remoto a través de un canal ssh. Así utilizando ssh podríamos hacer cosas como acceder a un servidor smtp que suele estar bloqueado por proveedores de Internet. Se podría compartir un recurso de mi máquina local con ip privado al mundo a través de Internet. En fin se puede hacer muchísimo más que esto y ojalá por ahí comparta alguna otra experiencia interesante.</p>
<p>Redirigir un puerto remoto a mi red local</p>
<p>Para ilustrar esta idea voy poner allgunos ejemplos hipotéticos:</p>
<h3>Ejemplo #1: Acceder a un pop3 bloqueado</h3>
<p>Supongamos que usted tiene acceso a Internet y el proveedor de Internet tiene bloqueado el puerto 25. Necesita enviar un correo de urgencia, pero no lo puede hacer. Pues bien un tunel ssh es una solución rápida para solucionar este problema (siempre y cuando tenga un servidor donde pueda hacer ssh)</p>
<p style="padding-left: 30px;"><code>ssh -L 2525:localhost:25 usuario@servidorremoto.com</code></p>
<p><span id="more-351"></span>En esta línea decimos que nos vamos a conectar al servidor <em>servidorremoto.com</em> con el usuario <em>usuario</em>. Una vez que estamos en ese servidor creamos un túnel para redirigir el puerto 25 local del servidor (<em>localhost</em>) en el puerto 2525 local de mi computador de escritorio. En otras palabras el puerto 25 remoto ahora será accesible desde el puerto 2525 local de mi computadora. Así ya no estaremos bloqueados.</p>
<p>Para poder enviar correos, configuramos nuestro smtp como localhost:2525 en nuestro cliente de correo preferido. El puerto 2525 es totalmente arbitrario. En general para hacer esto sin privilegios de administrador se deben usar puertos mayores a 1024.</p>
<p>En este ejemplo asumimos que el servidor de correo es el mismo que el que estamos haciendo ssh, pero esto no es obligatorio. En lugar de <em>localhost</em> podríamos utilizar algo como <em>smtp.otroservidor.com</em>. (ver ejemplo 3)</p>
<p>Para probar que la configuración es correcta podemos usar telnet en nuestro computador de escritorio</p>
<p style="padding-left: 30px;"><code>telnet localhost 2525<br />
Trying 127.0.0.1...<br />
Connected to localhost.<br />
Escape character is '^]'.<br />
220 servidorremoto.com ESMTP Postfix<br />
telnet localhost 2525Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.220 servidorremoto.com ESMTP Postfix</code></p>
<h3>Ejemplo 2: Acceder a un servidor web con ip privado desde Internet</h3>
<p>Supongamos que usted necesita acceder a un servidor web privado en una Intranet desde el Internet. En este caso usted puede acceder como usuario sin privilegios a un servidor con ip pública que puede ver al servidor web de la intranet con ip privada. En una red pequeña, esto podría ser a través del firewall.</p>
<p>Entonces generamos el túnel</p>
<p style="padding-left: 30px;"><code>ssh -L 8080:10.10.10.30:80 usuario@servidorremoto.com</code></p>
<p>En este caso el puerto 80 del servidor 10.10.10.30 estará accesible en máquina local en el puerto 8080.</p>
<p>Para probar abrimos un navegador web con la url http://localhost:8080</p>
<h3>Ejemplo 3: comparta su conexión con otras máquinas en la red.</h3>
<p>En los 2 ejemplos anteriores creamos los tuneles ssh accesibles solo desde mi computador personal. Ahora bien, podríamos compartir los tuneles para la red local en la que me encuentro.</p>
<p>En el primer ejemplo esto sería útil si mi amigo que no tiene acceso a un servidor ssh necesita enviar un correo. Por ejemplo:</p>
<p style="padding-left: 30px;"><code>ssh -L 192.168.1.45:2525:smtp.remoto.com:25 usuario@servidorremoto.com</code></p>
<p>En este caso ingresamos con el usuario usuario al servidor servidorremoto.com. Desde servidor nos conectamos al servidor smtp.remoto.com al puerto 25 y lo hacemos accesible en nuestro ip local 192.168.1.45 en el puerto 2525.</p>
<p>Su amigo tendrá que poner en su configuración de smtp: 192.168.1.45:2525. Si tiene acceso de root en su máquina local podría configurar el puerto 25 para que su amigo no tenga que ver como cambiar de puerto en su cliente de correo.</p>
<p>En el caso del servidor web (ejemplo 2), usted puede compartir a su amigo el acceso al servidor de la intranet.</p>
<p style="padding-left: 30px;"><code>ssh 192.168.1.45:8080:10.10.10.30:80 usuario@servidorremoto.com</code></p>
<p>Listo ahora su amigo podrá poner en su navegador web http://192.168.1.45:8080</p>
<p>En la próxima entrega voy a explicar como hacer accesible un puerto local de mi computador de escritorio desde el Internet.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/01/tuneles-ssh-parte-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

