<?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; Comos</title>
	<atom:link href="http://rafael.bonifaz.ec/blog/tag/comos/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>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>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>Guardar Videos de Youtube en GNU/Linux</title>
		<link>http://rafael.bonifaz.ec/blog/2011/02/guardar-videos-de-youtube-en-gnulinux/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/02/guardar-videos-de-youtube-en-gnulinux/#comments</comments>
		<pubDate>Wed, 09 Feb 2011 02:35:00 +0000</pubDate>
		<dc:creator>Rafael Bonifaz</dc:creator>
				<category><![CDATA[Comos]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://rafael.bonifaz.ec/blog/?p=436</guid>
		<description><![CDATA[Youtube es una excelente herramienta para acceder a videos de prácticamente cualqueir cosa que se nos ocurra. Sin embargo este sitio tiene un defecto muy grande, no permite grabar de una manera fácil los videos en nuestro disco duro. Esto quiere decir que cada vez que queremos bajar el mismo video consumimos de forma innecesaria [...]]]></description>
			<content:encoded><![CDATA[<p>Youtube es una excelente herramienta para acceder a videos de prácticamente cualqueir cosa que se nos ocurra. Sin embargo este sitio tiene un defecto muy grande, no permite grabar de una manera fácil los videos en nuestro disco duro. Esto quiere decir que cada vez que queremos bajar el mismo video consumimos de forma innecesaria el ancho de banda. Eso es algo que alguien que usa 3G o vive en el campo no quiere hacer.</p>
<p>Se que existe un plugin para Firefox que sirve para guardar los videos, pero a mi me gusta hacerlo de la forma más genérica posible. Una gran ventaja de GNU/Linux es que es fácil entender como funcionan las cosas en el sistema. Cuando descargamos un video desde internet, este es grabado de forma temporal en el directorio /tmp, por lo que bastará con copiar ese video a un directorio dentro de nuestra carpeta personal.</p>
<h2>Un Ejemplo Práctico</h2>
<h2><span style="font-weight: normal; font-size: 13px;">Como ejemplo voy a utilizar un video de <a href="http://bonifaz.ec/wikirebels">Wikirebels</a> con subtítulos en Español. Un video altamente recomendable, pero dura una hora y pesa cerca de 200M. Una ejemplo perfecto de porque es recomendable guardar videos en nuestro computador.</span></h2>
<div id="attachment_437" class="wp-caption alignnone" style="width: 476px"><a href="http://rafael.bonifaz.ec/blog/wp-content/uploads/2011/02/Pantallazo-1.png"><img class="size-full wp-image-437" title="Wikirebels" src="http://rafael.bonifaz.ec/blog/wp-content/uploads/2011/02/Pantallazo-1.png" alt="Wikirebels" width="466" height="319" /></a><p class="wp-caption-text">Pantallazo del video de en Youtube Wikirebels</p></div>
<p>Una vez que se descarga el video completo y sin cerrar la ventana del navegador web, abrimos nuestro explorador archivos favoritos y vamos a la ruta /tmp y buscamos un archivo con un nombre similar a FLASHXX7fywGT. Básicamnete la palabra FLASH seguida por algún código aleatorio.  En el caso de GNOME con Nautilus el archivo se vería así:</p>
<div id="attachment_438" class="wp-caption alignnone" style="width: 301px"><a href="http://rafael.bonifaz.ec/blog/wp-content/uploads/2011/02/Pantallazo-tmp-Navegador-de-archivos.png"><img class="size-full wp-image-438" title="Video Youtube en Nautilus" src="http://rafael.bonifaz.ec/blog/wp-content/uploads/2011/02/Pantallazo-tmp-Navegador-de-archivos.png" alt="Video Youtube en Nautilus" width="291" height="192" /></a><p class="wp-caption-text">Video Youtube en Nautilus</p></div>
<p>Este archivo lo copiamos y pegamos dentro de nuestra carpeta personal y le ponemos un nombre fácil de recordar. En mi caso lo copié a  /home/rafael/Videos/Wikirebels.flv. La extensión flv es implemente para recordar que es un video en formato Flash. Ahora ya podré ver el video cuando quiera y sin Internet utilizando mi reproductor de videos favoritos.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/02/guardar-videos-de-youtube-en-gnulinux/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>11 Tips SSH</title>
		<link>http://rafael.bonifaz.ec/blog/2011/02/tips-ssh/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/02/tips-ssh/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 20:00:30 +0000</pubDate>
		<dc:creator>Rafael Bonifaz</dc:creator>
				<category><![CDATA[Comos]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[fail2ban]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://rafael.bonifaz.ec/blog/?p=368</guid>
		<description><![CDATA[SSH es una herramienta esencial para cualquier administrador de sistemas basados en Unix. La mayoría sabemos que con SSH se puede ingresar de forma segura a un servidor remoto y administrarlo.  SSH hace mucho más que eso y por este motivo les comparto 11 tips que harán de su vida como administrador de sistemas más [...]]]></description>
			<content:encoded><![CDATA[<p>SSH es una herramienta esencial para cualquier administrador de sistemas basados en Unix. La mayoría sabemos que con SSH se puede ingresar de forma segura a un servidor remoto y administrarlo.  SSH hace mucho más que eso y por este motivo les comparto 11 tips que harán de su vida como administrador de sistemas más fácil y divertida.</p>
<ol>
<li><a href="http://bonifaz.ec/sshclaves">﻿﻿SSH con Llaves Públicas y Privadas</a>: Autentificar un usuario con contraseñas tiene sus problemas. Si administramos varios servidores debemos recordar la clave de todos y muchas veces para no olvidaras utilizamos claves débiles. Al utilizar llaves públicas y privadas solucionamos estos 2 problemas.</li>
<li><a href="http://bonifaz.ec/sshtunel1">Túneles SSH (parte 1)</a>: Es muy probable que alguna vez sea necesario ingresar a un servidor dentro de una Intranet con IP privada desde Internet. Si tenemos un servidor con acceso a SSH accesible desde Internet y que puede ver esta IP privada, asunto solucionado con túnles SSH</li>
<li><a href="http://bonifaz.ec/sshtunel2">Túneles SSH (parte 2)</a>: En este how to se aprende como compartir servicios desde mi máquina con IP privada hacia Internet gracias a los túneles SSH. El ejemplo más interesante es como con un servidor SSH en un ip pública, 2 máquinas con IPs privadas en distintas redes se pueden ver entre sí sin necesidad de VPNs.</li>
<li><a href="http://bonifaz.ec/sshgraficas">Aplicaciones Gráficas en Red con SSH</a>: Todos usamos SSH para acceder a línea de comandos en un servidor. No todos saben que también podemos usar SSH para acceder a aplicaciones gráfica en nuestra red.</li>
<li><a href="http://bonifaz.ec/sshsocks">SSH y Proxy Socks navegación segura en Internet﻿﻿</a>: Con una simple opción de SSH podemos navegar en Internet de forma encriptada y sin restricciones. Muy útil cuando navegamos en sitios done los servidores proxy no dejan navegar a ningún lugar o donde queremos tener mayor seguridad al navegar.</li>
<li><a href="http://bonifaz.ec/ssh443">SSH y HTTPS en el puerto 443</a>: Muchas veces el puerto 22 puede estar bloqueado en una red, haciendo que la mayoría de estos tips no sean útiles. Sin embargo, muy rara vez una red bloqueaa el puerto 443, en este ejemplo se enseña como hacer para compartir el puerto 443 para HTTPS y SSH de manera simultanea.</li>
<li><a href="http://bonifaz.ec/sshscp">Copia Remota con SCP</a>: La herramienta SCP permite copiar archivos a través de la red utilizando el protocolo SSH. En este tip aprenderemos como hacer esto y además como hacerlo limitando el ancho de banda si queremos copiar archivos muy grandes.</li>
<li><a href="http://bonifaz.ec/sshconfig">Simplifica tu vida gracias a  ~/.ssh/config</a>: Manejamos varios servidores, cada uno de ellos utiliza puertos diferentes. Podemos configurar nuestro cliente SSH para que algo como <em>&#8220;ssh -p 2200 usuariox@servidorremoto.com&#8221;</em> sea tan simple como &#8220;<em>ssh serv</em>&#8220;</li>
<li><a href="http://bonifaz.ec/sshchroot">SSH y SFTP con usuarios enjaulados</a>: Muchas veces se tiene la necesidad de dar acceso a nuestro servidor a personas en las que no confiamos. En este tip se aprende como hacer para crear un ambiente limitado para estos usuarios y que tengan solamente las herramientas que necesitan.</li>
<li><a href="http://bonifaz.ec/sshrsyc">Sincronizar Directorios con SSH y RSYNC</a>: RSYNC, es una poderosa herramienta de sincronización a través de la red. En este tip se aprende como combinar su poder con SSH y poder sacar respaldos o crear mirrors de forma segura.</li>
<li><a href="http://bonifaz.ec/sshfail2ban">Proteger SSH con Fail2Ban</a>: Muchas personas creen que cambiar el puerto de SSH significa asegurar su servidor. Cualquier persona que conoce poco de nmap y sabe usar Google seguro podrá descubrir en que puerto se ejecuta SSH. Fail2Ban es una herramienta mucho más poderosa que bloquea los IPs luego de X números de intentos fallido por un tiempo Y. De esta manera se hacen inútiles los ataques de diccionario.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/02/tips-ssh/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Proteger SSH con Fail2Ban</title>
		<link>http://rafael.bonifaz.ec/blog/2011/02/proteger-ssh-con-fail2ban/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/02/proteger-ssh-con-fail2ban/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 02:49:16 +0000</pubDate>
		<dc:creator>Rafael Bonifaz</dc:creator>
				<category><![CDATA[Comos]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[fail2ban]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://rafael.bonifaz.ec/blog/?p=422</guid>
		<description><![CDATA[Una de las principales formas de atacar un servidor SSH es através de ataques de diccionario o de fuerza bruta .Fail2Ban tiene una forma muy simple de solucionar el problema. Si después de X intentos escribo la clave de forma incorrecta, bloquea ese ip por un tiempo definido. Por defecto es 10 minutos. Con esta [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las principales formas de atacar un servidor SSH es através de ataques de diccionario o de fuerza bruta .Fail2Ban tiene una forma muy simple de solucionar el problema. Si después de X intentos escribo la clave de forma incorrecta, bloquea ese ip por un tiempo definido. Por defecto es 10 minutos. Con esta solución tan simple, nos tendrá protegidos de los ataques de diccionario.</p>
<h2>Instalar Fail2Ban</h2>
<p>En las distros basadas en Debian, basta con instalar el paquete fail2ban. Supongo que en otras distros la instalación es igual de simple</p>
<p style="padding-left: 30px;"><code>aptitude install fail2ban<span id="more-422"></span><br />
</code></p>
<h2>Configurar Fail2Ban</h2>
<p>Como cualquier aplicación de Linux, su configuración se encuentra dentro del directorio /etc. En este caso el directorio donde debemos buscar es /etc/fail2ban. El archivo que modicaremos en este mini tutorial es el /etc/fail2ban/jail.conf. Por defecto viene con varios templates para proteger servicios de nuestros servidores, no solo SSH. Algunas variables interesantes para modificar:<br />
Al inicio del archivo encontraremos las variables ignoreip y bantime La primera sirve para que no bloquee mi IP si algo sale mal y la segunda especifica el tiempo a bloquear un IP en segundos. Por defecto son 10 minutos (600 segundos).</p>
<p style="padding-left: 30px;"><code> ignoreip = 192.168.182.3<br />
bantime  = 600<br />
</code></p>
<p>Luego bajamos a la sección de SSH y verificamos que la configuración este correcta:</p>
<p style="padding-left: 30px;"><code> [ssh]</code></p>
<p style="padding-left: 30px;"><code> </code></p>
<p style="padding-left: 30px;"><code>enabled = true<br />
port    = ssh<br />
filter  = sshd<br />
logpath  = /var/log/auth.log<br />
maxretry = 6<br />
</code></p>
<p>Reiniciamos fail2ban<br />
<code><br />
/etc/init.d/fail2ban restart<br />
</code></p>
<p>Listo ahora estamos protegidos contra los ataques de diccionario a nuestro servidor SSH</p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/02/proteger-ssh-con-fail2ban/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sincronizar y/o Respaldar directorios con SSH y RSYNC</title>
		<link>http://rafael.bonifaz.ec/blog/2011/02/sincronizar-yo-respaldar-directorios-con-ssh-y-rsync/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/02/sincronizar-yo-respaldar-directorios-con-ssh-y-rsync/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 02:20:56 +0000</pubDate>
		<dc:creator>Rafael Bonifaz</dc:creator>
				<category><![CDATA[Comos]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://rafael.bonifaz.ec/blog/?p=417</guid>
		<description><![CDATA[Es muy probable que se requiera replicar la información de un directorio de una máquina o servidor a otro en mi red local o en Internet. Con RSYNC podríamos hacer cosas simples como sacar respaldos incrementales a un disco duro externo, a otra máquina en la red. También nos sirve para sincronizar directorios a través [...]]]></description>
			<content:encoded><![CDATA[<p>Es muy probable que se requiera replicar la información de un directorio de una máquina o servidor a otro en mi red local o en Internet. Con <a href="http://es.wikipedia.org/wiki/Rsync">RSYNC</a> podríamos hacer cosas simples como sacar respaldos incrementales a un disco duro externo, a otra máquina en la red. También nos sirve para sincronizar directorios a través del Internet y tener mirrors de un sitio web distribuidos en la red. Esto es lo que hacemos para los repositorios de <a href="http://www.elastix.org">Elastix</a> y lo que hace <a href="http://wikileaks.ch/Mirrors.html">Wikileaks con sus cientos de mirrors.</a></p>
<p>Si bien RSYNC no necesita de SSH para sincronizar, utilizar los 2 en conjunto tiene algunas ventajas entre las que destaco algunas:</p>
<ul>
<li>La información viaja encriptada</li>
<li>No necesito correr un servidor RSYNC</li>
<li>Solo necesito preocuparme de tener abierto el puerto de SSH<span id="more-417"></span></li>
</ul>
<p style="padding-left: 30px;"><strong> Nota</strong>: todos los ejemplos son una sola línea</p>
<h2>Ejemplo 1: Sincronizar 2 servidores web</h2>
<p style="padding-left: 30px;"><code>rsync -avz --delete  -e ssh /var/www/sitioweb usuario@servidorremoto.com:/var/www/mirror</code></p>
<p>Las opciones quieren decir:</p>
<ul>
<li><strong>-a</strong> Sirve para hacer una sincronización recursiva</li>
<li><strong>-v</strong> Sirve para mostrar en pantalla información de lo que esta haciendo el proceso</li>
<li><strong>-z</strong> Sirve para enviar la información comprimida y ahorrrar ancho de banda</li>
<li><strong>&#8211;delete</strong> Sirve para borrar del destino todo lo que no esta en el origen. En otras palabras para tener un mirror 100% igual.</li>
<li><strong>-e ssh</strong>: Es la parte del comando que hace que este artículo sea catalogado como un tip ssh <img src='http://rafael.bonifaz.ec/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Básicamente sirve para hacer la sincronización utilizando el protocolo ssh</li>
</ul>
<p>Al igual que SCP el primer directorio es el origen y el segundo es el destino.</p>
<h2>Ejemplo 2: Sincronizar con puerto  no Estandard</h2>
<p>Algo muy común es que la gente  corra el servidor SSH en un puerto distinto al 22. Inclusive hace unos días publiqué como hacer para que escuche<a href="http://bonifaz.ec/ssh443"> en el puerto 443</a>. Ahora explicamos como sincronizar los 2 directorios donde el puerto del destino no es estandard.</p>
<p style="padding-left: 30px;"><span style="font-family: monospace;">rsync -avz &#8211;delete &#8211;rsh=&#8217;ssh -p 443&#8242;  /var/www/sitioweb usuario@servidorremoto.com:/var/www/mirror</span></p>
<p>Como pueden ver hay un solo cambio en este ejemplo. En lugar de usar<em><strong> -e ssh</strong></em> utilizamos<strong> -</strong><em><strong>-rsh=&#8217;ssh -p 443&#8242;</strong></em>. Básicamente estamos diciendo que se utilice el puerto 443 en lugar del puerto 22.</p>
<h2>Recomendaciones</h2>
<p>Si desean hacer tareas automatizadas como usar su servidor como un mirror de un tercer (ej. Elastix, Wikileaks <img src='http://rafael.bonifaz.ec/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) es muy recomendable crear un ambiente <a href="http://bonifaz.ec/sshchroot">enjaulado para ese usuario SSH</a> y seguro necesitará trabajar c<a href="http://bonifaz.ec/sshclaves">on autenticación con llaves públicas y privadas.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/02/sincronizar-yo-respaldar-directorios-con-ssh-y-rsync/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Simplifica tu vida gracias a ~/.ssh/config</title>
		<link>http://rafael.bonifaz.ec/blog/2011/01/sshconfig-simplifica-nuestra-vida-con-ssh/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/01/sshconfig-simplifica-nuestra-vida-con-ssh/#comments</comments>
		<pubDate>Fri, 28 Jan 2011 02:01:19 +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=406</guid>
		<description><![CDATA[Para las personas que trabajamos mucho con SSH, tenemos que recordar varios nombres de host, ips, usuarios, puertos, etc&#8230;. Ya vimos como hacer para no recordar demasiadas contraseñas, pero igual todavía son demasiadas cosas que recordar para acceder a nuestros servidores remotos. Hace poco descubrí que existe el archivo de configuración ~/.ssh/config que sirve para [...]]]></description>
			<content:encoded><![CDATA[<p>Para las personas que trabajamos mucho con SSH, tenemos que recordar varios nombres de host, ips, usuarios, puertos, etc&#8230;. Ya vimos como hacer para <a href="http://bonifaz.ec/sshclaves">no recordar demasiadas contraseñas</a>, pero igual todavía son demasiadas cosas que recordar para acceder a nuestros servidores remotos. Hace poco descubrí que existe el archivo de configuración ~/.ssh/config que sirve para facilitar nuestra vida.</p>
<p>Supongamos que debemos ingresar a un servidor remoto, con un nombre de usuario que no es el mismo de mi máquina local y además corremos el servidor en un puerto distinto al 22. Cada vez que accedamos a este servidor deberíamos escribir algo así:</p>
<p style="padding-left: 30px;"><code>ssh -p 443 usuarioremoto@servidorremoto.com</code></p>
<p>No es el fin del mundo, pero si tenemos muchos servers y una mala memoria se nos complica un poco la vida. Que tal si en lugar de escribir toda esa línea podemos escribir simplemente:</p>
<p style="padding-left: 30px;"><code>ssh sremoto<span id="more-406"></span></code></p>
<p>Gracias al archivo de configuración ~/.ssh/config  podemos hacer sin problema. Empezamos creando el archivo:</p>
<p style="padding-left: 30px;"><code>vim ~/.ssh/config</code></p>
<p>En mi caso estoy utilizando vim como editor, pero podría ser un editor gráfico como gedit. El caracter &#8220;~&#8221; quiere decir home del usuario con el que estoy trabajando en este momento. En otras palabras si estoy trabajando con el usuario juan entonces lo más probable es que  &#8220;~&#8221; se refiera a /home/juan/.<br />
En el archivo de configuración añadimos las siguientes líneas.<code><br />
</code></p>
<p style="padding-left: 30px;"><code>Host sremoto<br />
HostName servidorremoto.com<br />
User    usuarioremoto<br />
Port    443</code></p>
<p>La primera línea es algo así como un alias para este servidor. La segunda línea nos dice el nombre del host para el servidor. En la tercera ponemos el nombre de usuario y en la última el puerto. No existe un orden específico sobre las variables que podemos utilizar. Podemos tener tantos Host como sea necesario.</p>
<p>Listo ahora ingresamos al servidor remoto.</p>
<p style="padding-left: 30px;"><code>ssh sremoto</code></p>
<p>Inclusive se puede utilizar el alias &#8220;sremoto &#8221; para copiar archivos con scp</p>
<p style="padding-left: 30px;"><code>scp archivo sremoto:</code></p>
<p>En este ejemplo estamos poniendo solo un servidor remoto, pero podríamos tener los que queramos. Las variables con configuramos aquí no son las únicas. Para más información sobre lo que podemos hacer con este archivo de configuración basta ver su página de manual:</p>
<p style="padding-left: 30px;"><code>man ssh_config</code></p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/01/sshconfig-simplifica-nuestra-vida-con-ssh/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Copiar archivos con SCP (SSH)</title>
		<link>http://rafael.bonifaz.ec/blog/2011/01/copiar-archivos-con-scp-ssh/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/01/copiar-archivos-con-scp-ssh/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 02:20:27 +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=401</guid>
		<description><![CDATA[Para muchos esto no sea ningún tip, sino el día a día. Sin embargo, me he topado con muchos administradores de sistema no conocen un comando tan básico como scp. Además, seguro que muchos no saben que se puede controlar el ancho de banda mientras se copia un archivo. Útil para cuando copiamos archivos muy [...]]]></description>
			<content:encoded><![CDATA[<p>Para muchos esto no sea ningún tip, sino el día a día. Sin embargo, me he topado con muchos administradores de sistema no conocen un comando tan básico como scp. Además, seguro que muchos no saben que se puede controlar el ancho de banda mientras se copia un archivo. Útil para cuando copiamos archivos muy grandes al Internet pudiendo saturar nuestra conexión.</p>
<p>El comando SCP básicamente sirve para copiar archivos de un computador a otro, de manera encriptada, a través del protocolo SSH. Funciona de manera muy similar a como funciona el comando cp, donde tenemos un origen y un destino. La diferencia es que el origen o el destino van a ser computadores diferentes.</p>
<h2>Ejemplo 1: Origen local, destino remoto</h2>
<p style="padding-left: 30px;"><code>scp archivo.tar.gz usuario@servidorremoto.com:</code></p>
<p><span id="more-401"></span>En este caso el origen es un archivo local de la computadora donde estoy trabajando y el destino es el servidor remoto. El &#8220;:&#8221; al final del nombre del servidor quiere decir que vamos a copiar el archivo en el directorio home del usuario que realiza la copia. Después del : podríamos poner una ruta relativa al home del usuario o una ruta absoluta. Por ejemplo, si quisiera copiar en la ruta /home/usuario/directoriox</p>
<h3>Rutas relativas:</h3>
<p style="padding-left: 30px;"><code>scp arhivo.tar.gz usuario@servidorremoto.com:directoriox</code></p>
<h3>Rutas absolutas:</h3>
<p style="padding-left: 30px;"><code>scp arhivo.tar.gz usuario@servidorremoto.com:/home/usuario/directoriox</code></p>
<p>En este caso es más comodo usar la ruta relativa, pero no siempre será este el caso.</p>
<h2>Ejemplo 2: Origen remoto, destino local</h2>
<p style="padding-left: 30px;"><code>scp usuario@servidorremoto.com:arhivo.zip . </code></p>
<p>En este caso copiamos el archivo remoto archivo.zip (ubicado en el home del usuario) A la carpeta actual donde me encuentro en mi máquina local.<br />
Tanto para el ejemplo 1, como para el 2 si quisieramos copiar un directorio, lo haríamos con la opción &#8220;-r&#8221;. En general las opciones de <em>scp</em> son las mismas que las del comando <em>cp</em></p>
<h2>Ejemplo 3: Puerto alternativo</h2>
<p>Muchas personas no corren ssh en el puerto 22, en un post anterior expliqué como hacer para <a href="http://bonifaz.ec/ssh443">correr ssh en el puerto 443</a> en conjunto con https. Pues bien, ahora hagamos un ejemplo de copia de scp utilizando el puerto 443.</p>
<p style="padding-left: 30px;"><code>scp -P 443 -r /ruta/directorio usuario@servidorremoto.com:/ruta/deestino<br />
</code></p>
<p><code>En este caso copiamos todo un directorio y lo hacemos por el puerto no estadard 443.</code></p>
<h2>Ejemplo 4: Limitar Ancho de Banda</h2>
<p>Esta opción no la sabe mucha gente y en ocasiones puede ser muy útil. Que tal si queremos copiar un archivo muy grande desde o hacia Internet. Es muy probable que eso genere mucho tráfico que haga insoportable el uso del Internet para el resto de personas en la red, incluido quien esta subiendo el archivo. Por suerte, parece ser que los desarrolladores de Openssh han pensado en todo <img src='http://rafael.bonifaz.ec/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  y se puede limitar el ancho de banda de la transeferencia. Para esto usamos la opción &#8220;-l&#8221; seguido por el ancho de banda a limitar en kbits/segundo. (8 kbit/segundo = 1 kbyte/segundo)</p>
<p style="padding-left: 30px;"><code>scp -l 80 archivgrande.tar.gz usuario@servidorremoto.com:</code></p>
<p>De esta manera limitaremos la copia a 80 kbits/seg (10 kbytes/segundo).</p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/01/copiar-archivos-con-scp-ssh/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SSH y HTTPS en puerto 443</title>
		<link>http://rafael.bonifaz.ec/blog/2011/01/ssh-y-https-en-puerto-443/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/01/ssh-y-https-en-puerto-443/#comments</comments>
		<pubDate>Sun, 23 Jan 2011 02:56:01 +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=394</guid>
		<description><![CDATA[En el artículo anterior explique como navegar a través de un servidor socks creado con ssh. Eso va a funcionar siempre y cuando no tengamos bloqueado el puerto en el que estamos corriendo ssh en nuestro servidor (por defecto el 22). Es muy probable que el puerto 22 este bloqueado, pero muy poco probable que [...]]]></description>
			<content:encoded><![CDATA[<p>En el artículo anterior explique como navegar a través de un <a href="http://bonifaz.ec/sshsocks">servidor socks creado con ssh</a>. Eso va a funcionar siempre y cuando no tengamos bloqueado el puerto en el que estamos corriendo ssh en nuestro servidor (por defecto el 22). Es muy probable que el puerto 22 este bloqueado, pero muy poco probable que el 443 sea bloqueando.</p>
<p>Una solución simple podría ser ejecutar SSH en el puerto 443, pero lo más probable es que necesitemos correr alguna aplicación HTTPS en ese puerto. La solución a este problema se llama <a href="http://www.rutschle.net/tech/sslh.shtml">SSLH</a>. Sus autores lo llaman un multiplexor SSH/HTTPS.</p>
<p>Básicamente lo que hace este servicio es redirigir las peticiones de SSH a localhost:22 y las de HTTPS a localhost:443. Para que todo funcione bien debemos deberíamos configurar nuestro servidor web para que escuche en: 127.0.0.1:433 en lugar de *:443.<span id="more-394"></span></p>
<h2>Manos a la Obra</h2>
<p style="padding-left: 30px;"><strong>Nota</strong>: Si se va hacer esto en un servidor remoto podría perder la conexión al mismo. Trabaje con atención y mantenga una conexión de ssh abierta por si las moscas.</p>
<p>Lo primero que tenemos que hacer es instalar <a href="http://www.rutschle.net/tech/sslh.shtml">SSLH</a>. En las distribuciones basadas en Debian (ej. Ubuntu) bastará instalarlo desde repositorios. En otras distros supongo que el procedimiento debe ser muy similar.</p>
<p style="padding-left: 30px;"><code>aptitude install sslh</code></p>
<p>Una vez instalado, lo primero que debemos hacer es configurar nuestro servidor web para que el puerto 443 sea solo escuchado en localhost y no en el ip público.  En mi caso personal uso <a href="http://www.cherokee-project.com/">Cherokee</a> y para esto en el Cherokee admin debemos ir a: General-&gt; puertos. Una vez ahí añadimos la dirección ip junto a la directiva de 443.  En el caso de <a href="http://httpd.apache.org/docs/2.0/bind.html">Apache</a> o cualquier otro servidor web se aplica el mismo concepto.</p>
<p>El servicio ssh si queremos lo podemos configurar para que escuche solo en 127.0.0.1:22 ya que ahora podríamos acceder desde el 443. No recomiendo hacer esto hasta que todo este funcionando.</p>
<p>Una vez que tenemos configurado el servidor web, tenemos que configurar el sslh. Para esto editamos el archivo /etc/default/sslh. Básicamente se debe añadir la lista RUN=yes y configurar el ip pública de nuestro servidor. Deberíamos tener algo similar a esto:</p>
<p style="padding-left: 30px;"><code> DAEMON_OPTS="-u sslh -p 200.200.200.200:443 -s 127.0.0.1:22 -l 127.0.0.1:443 -P /var/run/sslh.pid"<br />
RUN=yes</code></p>
<p style="padding-left: 30px;"><strong>Nota</strong>: Son solo 2 líneas la primera define la variable DAEMON_OPTS y la segunda la variable RUN.</p>
<p>Ahora solo queda arrancar el servicio</p>
<p style="padding-left: 30px;"><code>/etc/init.d/sslh start</code></p>
<p>Listo ahora podemos ingresar a nuestro servidor utilizando el puerto 443</p>
<p style="padding-left: 30px;"><code>ssh -p 443 usuario@servidorremoto.com</code></p>
<p>Ahora si quisieramos navegar utilizando un <a href="http://bonifaz.ec/sshsocks">proxy socks</a> básicamente deberíamos hacer algo así:</p>
<p style="padding-left: 30px;"><code>ssh -p 443 -ND 8080 usuario@servidorremoto.com</code></p>
<p>Ahora ya estamos preparados para redes hostiles donde les gusta bloquear lo que más pueden.</p>
<p>Les recomiendo leer el siguiente artículo de Linux Magazine donde Charlie nos <a href="http://www.linux-magazine.es/issue/61/061-061_Charly61.pdf">cuenta sobre sslh</a>. Si no hubiera sido por Charlie, no supiera como hacer esto y no hubiera escrito este artículo. Sin lugar a dudas mi columna favorita de Linux Magazine.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/01/ssh-y-https-en-puerto-443/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SSH y Proxy Socks navegación segura en Internet</title>
		<link>http://rafael.bonifaz.ec/blog/2011/01/ssh-y-proxy-socks-navegacion-segura-en-internet/</link>
		<comments>http://rafael.bonifaz.ec/blog/2011/01/ssh-y-proxy-socks-navegacion-segura-en-internet/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 15:26:54 +0000</pubDate>
		<dc:creator>Rafael Bonifaz</dc:creator>
				<category><![CDATA[Comos]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://rafael.bonifaz.ec/blog/?p=388</guid>
		<description><![CDATA[Ahora les enseñare como navegar la web de forma ilimitada en una red muy limitada. Por ejemplo la red de una universidad, donde los pobres alumnos casi no pueden navegar a ningún lado porque todo esta bloqueado. Además con esta estragegia nevagaremos de una forma seguro, muy útil para sitios con access points públicos. Requerimientos [...]]]></description>
			<content:encoded><![CDATA[<p>Ahora les enseñare como navegar la web de forma ilimitada en una red muy limitada. Por ejemplo la red de una universidad, donde los pobres alumnos casi no pueden navegar a ningún lado porque todo esta bloqueado. Además con esta estragegia nevagaremos de una forma seguro, muy útil para sitios con access points públicos.</p>
<h2>Requerimientos</h2>
<p>Para que esto funcione, así como la mayoría de los <a href="http://bonifaz.ec/sshtips">tips ssh</a> que he estado publicando, es importante que ustedes tengan un servidor a donde hacer ssh. Si su proveedor de internet en la casa les da un ip público, se podría usar ese ip para ssh. Otra opción es contratar un servidor virtual dedicado en la nube que puede costar unos $20 al mes. Un poco caro para hacer ssh, pero el costo puede llegar a cero si vendemos hosting a nuestros a migos para que cuelguen sus páginas web. Personalmente uso el servicio de <a href="http://www.linode.com">Linode</a> desde hace algún tiempo y me siento feliz.</p>
<p>Se asume que la red local no esta bloqueando el puerto 22 de SSH. Pronto publicaré un how to para correr ssh y un servidor web en el puerto 443 (normalmente https) que podría solucionar este problema.</p>
<h2>Manos a la Obra</h2>
<p>Dicho esto manos a la obra. Lo primero que vamos a hacer es ssh a nuestro servidor y decirle que use un puerto arbitrario como servidor Socks.</p>
<p style="padding-left: 30px;"><code>ssh -ND 8080 usuario@servidorremoto.com<span id="more-388"></span><br />
</code></p>
<p>La opción -N sirve para que la sesión de ssh no sea interactiva, en otras palabras no tendremos un shell ssh en el servidor. Muy útil si vamos a prestar nuestra computadora a un tercero. La opción -D es la que sirve para crear el servidor Socks. El puerto 8080 es arbitrario y podría ser cualquier puerto que nosotros queramos.<br />
Eso es todo, ahora solo queda configurar nuestro navegador web para que use el servidor Sock recién creado. En el caso de Firefox/Iceweasel vamos a: Editar -&gt; Preferencias -&gt; Avanzadas -&gt; Red. En el recuadro de Conexión ponemeos configuración manual de proxy y configuramos Socks como localhost y puerto 8080.</p>
<p><a href="http://rafael.bonifaz.ec/blog/wp-content/uploads/2011/01/socks.png"><img class="alignnone size-full wp-image-389" title="Configuración de Socks en Firefox" src="http://rafael.bonifaz.ec/blog/wp-content/uploads/2011/01/socks.png" alt="" width="455" height="56" /></a></p>
<p>Listo ahora sí podemos navegar por internet sin las limitaciones del proxy local y de forma privada dentro de la red local.</p>
]]></content:encoded>
			<wfw:commentRss>http://rafael.bonifaz.ec/blog/2011/01/ssh-y-proxy-socks-navegacion-segura-en-internet/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

