<?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>Perez Rio &#187; GNU/Linux</title>
	<atom:link href="http://www.perezrio.com/tag/gnulinux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.perezrio.com</link>
	<description>Blogue do rubio</description>
	<lastBuildDate>Tue, 29 Nov 2011 08:15:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Curiosidades sobre ubuntu&#8230;</title>
		<link>http://www.perezrio.com/2009/11/24/curiosidades-sobre-ubuntu/</link>
		<comments>http://www.perezrio.com/2009/11/24/curiosidades-sobre-ubuntu/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 09:36:16 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/?p=351</guid>
		<description><![CDATA[Interesante artículo visto en noticiasubuntu.com Comencemos: Mark Shuttleworth es el fundador de la empresa que desarrolla Ubuntu, Canonical Ltd. Este informático y empresario es además el segundo turista espacial de la historia. Google usa una versión de Ubuntu en algunas de sus oficinas denominada Gooubuntu. Canonical apoya el reciente proyecto de Google Chrome OS , [...]]]></description>
			<content:encoded><![CDATA[<p>Interesante artículo visto en <a title="noticias ubuntu" href="http://www.noticiasubuntu.com/20-curiosidades-sobre-ubuntu/" target="_blank">noticiasubuntu.com</a></p>
<p>Comencemos:</p>
<ol>
<li><strong><a rel="nofollow" href="http://es.wikipedia.org/wiki/Mark_Shuttleworth" target="_blank">Mark Shuttleworth</a></strong> es el fundador de la empresa que desarrolla Ubuntu, Canonical Ltd. Este informático y empresario es además el segundo turista espacial de la historia.</li>
<li><strong>Google usa una versión de Ubuntu</strong> en algunas de sus oficinas denominada <strong><a rel="nofollow" href="http://es.wikipedia.org/wiki/Goobuntu" target="_blank">Gooubuntu</a>.</strong></li>
<li><strong>Canonical</strong> <a href="http://blog.canonical.com/?p=294" target="_blank">apoya el reciente proyecto de <strong>Google Chrome OS</strong></a><strong> </strong>, y <strong><a href="http://www.chromium.org/chromium-os/building-chromium-os" target="_blank">Google recomienda Ubuntu</a></strong> para compilarlo.</li>
<li>En octubre de 2008 <strong><a rel="nofollow" href="http://es.wikipedia.org/wiki/Wikipedia" target="_blank">Wikipedia</a></strong> migró sus servidores a Ubuntu <em>server</em>.</li>
<li>El <strong><a rel="nofollow" href="http://fridge.ubuntu.com/node/909" target="_blank">metro de Berlín anunció Ubuntu</a></strong> (7.04).</li>
<li>El eslogan de Ubuntu es “<strong><em>Linux for Human beings</em></strong>” (”Linux para seres humanos”, intentando hacer alusión a la facilidad de manejo de esta distribución).</li>
<li>El <strong>número de <em>release</em></strong> indica el año y el mes en que se lanzó esa versión. Ubuntu 9.10, por ejemplo, indica octubre de 2009. En general,<strong> las versiones de Ubuntu </strong>se liberan cada 6 meses, alternándose versiones normales (con 18 meses de soporte) y versiones <a href="http://www.noticiasubuntu.com/tag/lts/">LTS</a> (<em>Long Term Support</em>), a las que se da soporte durante más tiempo.</li>
<li>Los nombres de las <em>releases</em> se forman con dos palabras que comienzan siempre por la misma letra: <strong>W</strong>arty <strong>W</strong>arthog, <strong>H</strong>oary <strong>H</strong>edgehog, <strong>B</strong>reezy <strong>B</strong>adger, <strong>D</strong>apper <strong>D</strong>rake, <strong>E</strong>dgy <strong>E</strong>ft, <strong>F</strong>eisty <strong>F</strong>awn, <strong>G</strong>utsy <strong>G</strong>ibbon, <strong>I</strong>ntrepid <strong>I</strong>bex, <strong>J</strong>aunty <strong>J</strong>ackalope, el nuevo<strong> K</strong>armic <strong>K</strong>oala y el futuro <strong>L</strong>ucid <strong>L</strong>ynx.</li>
<li>Las <strong>dos palabras del nombre de versión de las <em>release</em> son siempre un adjetivo y el nombre de un animal</strong>: Warty Warthog = Jabalí (cerdo de la sabana africana) verrugoso. <em>Hoary Hedgehog</em> = Erizo canoso. <em>Breezy Badger </em>= Tejón animado / ventoso. <em>Dapper Drake</em> = Pato pulcro. <em>Edgy Eft</em> = Tritón impaciente. <em>Feisty Fawn</em> = Cervatillo luchador. <em>Gutsy Gibbon</em> = Gibón valiente. <em><a href="http://www.noticiasubuntu.com/tag/jaunty-jackalope/">Jaunty Jackalo</a></em><em><a href="http://www.noticiasubuntu.com/tag/jaunty-jackalope/">pe</a></em> = alegre (garboso o desenfadado) Jackalope (animal mitológico). <em>Intrepid Ibex = </em>Íbice intrépido<em>. <a href="http://www.noticiasubuntu.com/tag/karmic-koala/">Karmic Koala</a> </em>= Koala Karmico. <em><a href="http://www.noticiasubuntu.com/tag/lucid-lynx/">Lucid Lynx</a> </em>= Lince Lúcido.</li>
<li><strong>Warty Warthog</strong> debe su nombre a que fue publicada <em>“warts and all”</em> (”con verrugas y todo”, haciendo alusión al estado temprano del desarrollo de Ubuntu).</li>
<li>Desde Dapper Drake los nombres de las versiones siguen un<strong> orden alfabético</strong>, como habréis podido comprobar.</li>
<li>Cuando Mark Shuttleworth decidió convertir esta distribución en una iniciativa auto sostenible aprovechó la ocasión para aplicar una pequeña campaña de mercadotecnia para despertar interés en Ubuntu llamándolo <strong>la <em>distribución sin nombre</em></strong> (en inglés: <em>“the no-name-distro”</em>).</li>
<li><strong><a title="Canonical Ltd." href="http://www.noticiasubuntu.com/tag/canonical-ltd/">Canonical Ltd.</a></strong>, la empresa desarrolladora de Ubuntu, tiene su sede central en la capital de la <a href="http://es.wikipedia.org/wiki/Isla_de_Man" target="_blank">Isla de Man</a>. Debido a su especial estatus legal, en la isla no existen límites de velocidad en las carreteras para los vehículos privados.</li>
<li>De la Isla de Man son originarios <strong><a title="The Bee Gees" rel="nofollow" href="http://es.wikipedia.org/wiki/The_Bee_Gees" target="_blank">The Bee Gees</a>,</strong> la popular banda pop-rock británica de los años 60.</li>
<li>Aunque las carátulas se imprimen en inglés, a partir de la versión 5.10 se incluyó el texto en español <strong>“Ubuntu es software libre” </strong>para eliminar la ambigüedad del término <em>free</em> (en inglés <em>free software</em>) que puede significar tanto libre como gratis.</li>
<li><strong>Ubuntu </strong><strong>no es 100% software libre</strong>, ya que incluye drivers y porciones de código propietario.</li>
<li>Ubuntu tenía un paquete llamado <em>“ubuntu-calendar”</em> (que actualmente ya no se encuentra en los repositorios) que cuando se instalaba, se conectaba con los servidores de Ubuntu para realizar una transferencia de fondos de escritorio de manera mensual. Algunos de estos fondos de escritorio mostraban imágenes artísticas, entre las que se incluían modelos que posaban desnudas. Ello dio lugar a que Ubuntu fuera conocido humorísticamente como <strong>“la distribución pornográfica”</strong>, “Linuxxx” y otros nombres similares.</li>
<li>Podéis conseguir el <strong><a href="http://www.noticiasubuntu.com/category/noticias/ubuntu/">Ubuntu</a> Certified Professional </strong>realizando un examen específico de Ubuntu (LPI 199) y demostrando tener el nivel LPIC-1 (acredita conocimientos Linux independientes de la distribución). Esto es posible gracias a que en el año 2006 Canonical y <a href="http://www.noticiasubuntu.com/category/noticias/gnu-linux/">Linux</a> Professional Institute firmaron un acuerdo para proveer un examen específico que permita certificar los conocimientos de los profesionales de Ubuntu.</li>
<li><strong>Paz Padilla</strong> (humorista española) usa Ubuntu (y Firefox <img class="wp-smiley" src="http://www.noticiasubuntu.com/wp-includes/images/smilies/icon_razz.gif" alt=":P" /> ).</li>
<li><strong>Enjuto Mojamuto</strong> (personaje de animación del programa de televisión <a title="Muchachada Nui" href="http://es.wikipedia.org/wiki/Muchachada_Nui" target="_blank">Muchachada Nui</a>) usa Ubuntu.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2009/11/24/curiosidades-sobre-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Telefónica cobrará 3 € al mes por licencia de OpenOffice</title>
		<link>http://www.perezrio.com/2009/04/09/telefonica-cobrara-3-e-al-mes-por-licencia-de-openoffice/</link>
		<comments>http://www.perezrio.com/2009/04/09/telefonica-cobrara-3-e-al-mes-por-licencia-de-openoffice/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 11:18:51 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[Nuevas tecnologías]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[openoffice]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/?p=292</guid>
		<description><![CDATA[El software libre tendrá pronto un prescriptor de peso que promocionará su uso entre las empresas españolas. Telefónica ofrecerá a sus clientes de ADSL empresariales, &#8220;una edición especialmente diseñada para los clientes de Telefónica&#8221; de OpenOffice, que incluirá soporte técnico para la aplicación por un precio mensual de 3 euros. La operadora lleva un año [...]]]></description>
			<content:encoded><![CDATA[<p>El software libre tendrá pronto un prescriptor de peso que promocionará su uso entre las empresas españolas. Telefónica ofrecerá a sus clientes de ADSL empresariales, &#8220;una edición especialmente diseñada para los clientes de Telefónica&#8221; de OpenOffice, que incluirá soporte técnico para la aplicación por un precio mensual de 3 euros.</p>
<p>La operadora lleva un año realizando <a href="https://oo.respuestaempresarios.datia.es/" target="_blank">un piloto con algunas empresas</a> para valorar si el paquete ofimático está preparado para remplazar a otras opciones propietarias como MS Office. La versión que distribuirá telefónica esta basada en la edición OpenOffice de Novell que incluye algunas mejoras sobre la versión de Sun.</p>
<p>Telefónica destaca algunas ventajas de utilizar OpenOffice, como su bajo coste, que es menos vulnerable a infecciones y que se trata de software 100% legal.</p>
<p>* Flexibilidad: podrá adecuar su gasto en software ofimático según evolucionen sus necesidades. Así pagará más o menos al mes, en función de lo que necesite.<br />
* Tranquilidad: tendrá siempre disponible la última versión del software. Así no tendrá que preocuparse de cuando saldrá la siguiente versión (con el consiguiente gasto).<br />
* Asequibilidad: el modelo de suscripción mensual le permitirá distribuir el coste del software, sin un desembolso inicial grande.<br />
* Seguridad: siempre estará utilizando un versión legal del software sin ninguna limitación funcional y aprovechándose de las actualizaciones y parches que sólo se proporciona a los softwares legales. Por tanto, sus PC´s serán menos vulnerables a infecciones por virus, gusanos, troyanos, etc.</p>
<p>Puede resultar chocante que Telefónica pretenda cobrar por un producto que se puede obtener de forma gratuita y legal en la red, pero hay que tener en cuenta que está destinado al mercado empresarial, donde el soporte técnico es un valor añadido fundamental. Poner un precio al software libre es perfectamente legal y que lo recomiende Telefónica puede ser un buen empujón para mejorar su imagen entre las empresas.</p>
<p>Visto en: <a href="http://bandaancha.eu/articulo/6472/telefonica-cobrara-3-mes-licencia-openoffice" target="_blank">Bandaancha.eu</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2009/04/09/telefonica-cobrara-3-e-al-mes-por-licencia-de-openoffice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cambiar preferencias al hacer una petición DNS en linux</title>
		<link>http://www.perezrio.com/2008/02/21/cambiar-preferencias-dns-linux/</link>
		<comments>http://www.perezrio.com/2008/02/21/cambiar-preferencias-dns-linux/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 12:59:01 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[hosts]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/2008/02/21/cambiar-preferencias-dns-linux/</guid>
		<description><![CDATA[Recientemente estube instalando un Zimbra, y me dio algunos problemas por culpa del nombre de host, para eso tenemos que editar el fichero: /etc/nsswitch.conf y especificar el orden de preferencia a la hora de ejecutar la peticion DNS # /etc/nsswitch.conf # # Example configuration of GNU Name Service Switch functionality. # If you have the [...]]]></description>
			<content:encoded><![CDATA[<p>Recientemente estube instalando un Zimbra, y me dio algunos problemas por culpa del nombre de host, para eso tenemos que editar el fichero:</p>
<p>/etc/nsswitch.conf</p>
<p>y especificar el orden de preferencia a la hora de ejecutar la peticion DNS</p>
<p># /etc/nsswitch.conf<br />
#<br />
# Example configuration of GNU Name Service Switch functionality.<br />
# If you have the `glibc-doc&#8217; and `info&#8217; packages installed, try:<br />
# `info libc &#8220;Name Service Switch&#8221;&#8216; for information about this file.</p>
<p>passwd:         compat<br />
group:          compat<br />
shadow:         compat</p>
<p>hosts:          files dns mdns       &lt;&#8211; <strong>aqui especificamos el orden</strong><br />
networks:       files</p>
<p>protocols:      db files<br />
services:       db files<br />
ethers:         db files<br />
rpc:            db files</p>
<p>netgroup:       nis</p>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2008/02/21/cambiar-preferencias-dns-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 8.10 sera “Intrepid Ibex”</title>
		<link>http://www.perezrio.com/2008/02/21/ubuntu-810-sera-%e2%80%9cintrepid-ibex%e2%80%9d/</link>
		<comments>http://www.perezrio.com/2008/02/21/ubuntu-810-sera-%e2%80%9cintrepid-ibex%e2%80%9d/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 09:17:31 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Traballo]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/2008/02/21/ubuntu-810-sera-%e2%80%9cintrepid-ibex%e2%80%9d/</guid>
		<description><![CDATA[Desvelado el nombre de la futura version de Ubuntu, este sera “Intrepid Ibex“. El ibex es una cabra de los alpes. Me esperaba impala asi que me equivoque con el nombre. De todas formas no es mal nombre, dentro de poco, todos a hacer el “cabra”. Visto en &#124; Ubuntips]]></description>
			<content:encoded><![CDATA[<p>Desvelado el nombre de la futura version de Ubuntu, este sera “<strong>Intrepid Ibex</strong>“. El <a href="http://es.wikipedia.org/wiki/Capra_ibex">ibex</a> es una cabra de los alpes. Me esperaba <em>impala</em> asi que me <a href="http://ubuntulife.net/wordpress/?p=3386">equivoque</a> con el nombre. De todas formas no es mal nombre, dentro de poco, todos a hacer el “cabra”.</p>
<p>Visto en | <a href="http://www.ubuntips.com.ar/2008/02/20/intrepid-ibex-sera-el-nombre-de-ubuntu-810/">Ubuntips</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2008/02/21/ubuntu-810-sera-%e2%80%9cintrepid-ibex%e2%80%9d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Matar todos los procesos de un tiro</title>
		<link>http://www.perezrio.com/2008/02/19/matar-todos-los-procesos-de-un-tiro/</link>
		<comments>http://www.perezrio.com/2008/02/19/matar-todos-los-procesos-de-un-tiro/#comments</comments>
		<pubDate>Tue, 19 Feb 2008 09:54:32 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Traballo]]></category>
		<category><![CDATA[matar]]></category>
		<category><![CDATA[procesos]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/2008/02/19/matar-todos-los-procesos-de-un-tiro/</guid>
		<description><![CDATA[Apunto aquí una orden que he necesitado miles de veces y de la que nunca me acuerdo: $ kill -9 `ps -ef &#124; grep -i nombre &#124; awk {’print $2?}` Mata todos los procesos que tengan la cadena nombre en la descripción . Si no te acuerdas de esa orden, siempre puedes hacer un ps [...]]]></description>
			<content:encoded><![CDATA[<p><font size="-1">Apunto aquí una orden que he necesitado miles de veces y de la que nunca me acuerdo:</font></p>
<p><font size="-1"><strong>$ kill</strong> -9 `<strong>ps</strong> -ef | <strong>grep</strong> -i nombre | <strong>awk</strong> {’print $2?}`</font></p>
<p>Mata todos los procesos que tengan la cadena nombre en la descripción . Si no te acuerdas de esa orden, siempre puedes hacer un ps -aww| grep nombre y luego matar los procesos copiando y pegando los identificadores en una orden kill.</p>
<p>Fuente: <a href="http://diariolinux.com" title="http://diariolinux.com" target="_blank">Diariolinux.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2008/02/19/matar-todos-los-procesos-de-un-tiro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aqua Aero</title>
		<link>http://www.perezrio.com/2008/02/12/aqua-aero/</link>
		<comments>http://www.perezrio.com/2008/02/12/aqua-aero/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 21:11:35 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Natureza]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Traballo]]></category>
		<category><![CDATA[temas]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/2008/02/12/aqua-aero/</guid>
		<description><![CDATA[Te gusta Vista, te gusta Mac, pero usas Linux y no te decides. Por que no usas entonces este bonito theme para Compiz… Descarga &#124; Aqua Aero Fuente: Ubuntulife.net ]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: 'Trebuchet MS'; font-size: 12px; line-height: 18px" class="Apple-style-span">
<p style="clear: both; padding-top: 15px" id="post-4442" class="post">Te gusta Vista, te gusta Mac, pero usas Linux y no te decides. Por que no usas entonces este bonito theme para Compiz…</p>
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin: 0px">Descarga | <a href="http://www.gnome-look.org/content/show.php/Aqua+aero.?content=72934" style="color: #ff6600; text-decoration: none">Aqua Aero</a></p>
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; margin: 0px">Fuente: <a href="http://ubuntulife.net" title="http://ubuntulife.net" target="_blank">Ubuntulife.net</a> </p>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2008/02/12/aqua-aero/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Serigrafía tus CDs y DVDs con LightScribe</title>
		<link>http://www.perezrio.com/2008/02/12/serigrafia-tus-cds-y-dvds-con-lightscribe/</link>
		<comments>http://www.perezrio.com/2008/02/12/serigrafia-tus-cds-y-dvds-con-lightscribe/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 20:59:51 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Nuevas tecnologías]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[Traballo]]></category>
		<category><![CDATA[lightscribe]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/2008/02/12/serigrafia-tus-cds-y-dvds-con-lightscribe/</guid>
		<description><![CDATA[Post enviado por Aitor C. : Nota de la Wikipedia: LightScribe (en español “Escritura de Luz“) es una tecnología desarrollada por HP y LiteOn pensada para etiquetar un CD o un DVD usando una grabadora de CD/DVD. Agradecemos el software que Lacie ha hecho posible, antes de empezar. Podemos leer más información y manuales en la web de [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: 'Lucida Grande'; font-size: 13px; line-height: normal" class="Apple-style-span">
<p style="line-height: 1.4">Post enviado por Aitor C. :</p>
<p style="line-height: 1.4">Nota de la Wikipedia: <strong>LightScribe</strong> (en español “<strong>Escritura de Luz</strong>“) es una tecnología desarrollada por HP y LiteOn pensada para etiquetar un CD o un DVD usando una grabadora de CD/DVD.</p>
<p style="line-height: 1.4">Agradecemos el software que Lacie ha hecho posible, antes de empezar.</p>
<p style="line-height: 1.4">Podemos leer más información y manuales <a href="http://www.lacie.com/products/product.htm?pid=10803" style="color: #78a515; font-weight: bold; text-decoration: none">en la web de Lacie</a>.</p>
<p style="line-height: 1.4">Estas instrucciones son para Ubuntu, en Fedora se podrían instalar directamente.</p>
<p style="line-height: 1.4">1.- Bajamos el software: Abrimos una consola y  descargamos el software necesario mediante wget:wget <a href="http://www.lacie.com/download/drivers/lightscribe-1.4.136.1-linux-2.6-intel.rpm" style="color: #78a515; font-weight: bold; text-decoration: none" target="_blank">http://www.lacie.com/download<wbr></wbr>/drivers/lightscribe-1.4.136.1<wbr></wbr>-linux-2.6-intel.rpm</a>wget <a href="http://www.lacie.com/download/drivers/4L-1.0-r6.i586.rpm" style="color: #78a515; font-weight: bold; text-decoration: none" target="_blank">http://www.lacie.com/download<wbr></wbr>/drivers/4L-1.0-r6.i586.rpm</a>
<p style="line-height: 1.4">A continuación, procedemos a la instalación propiamente dicha:</p>
<p style="line-height: 1.4" class="ArwC7c ckChnd" id="1eph" gpg="ok">sudo apt-get install aliensudo alien -i lightscribe-1.4.136.1-linux-2<wbr></wbr>.6-intel.rpmsudo alien -i 4L-1.0-r6.i586.rpm
<p style="line-height: 1.4">Ahora ya podemos ejecutar el “4L-gui” y divertirnos pintando carátulas con nuestro pingüino favorito en la parte de arriba del CD o DVD <img src='http://www.perezrio.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   En la imagen de este post podemos ver el resultado de imprimir el icono de la Wikipedia sobre un CD.</p>
<p style="line-height: 1.4">Fuente: <a href="http://diariolinux.com/" title="http://diariolinux.com/" target="_blank">DiarioLinux.com</a> </p>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2008/02/12/serigrafia-tus-cds-y-dvds-con-lightscribe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.lacie.com/download/drivers/lightscribe-1.4.136.1-linux-2.6-intel.rpm" length="496462" type="audio/x-pn-realaudio-plugin" />
<enclosure url="http://www.lacie.com/download/drivers/4L-1.0-r6.i586.rpm" length="3603229" type="audio/x-pn-realaudio-plugin" />
		</item>
		<item>
		<title>Cómo instalar y configurar OpenVPN</title>
		<link>http://www.perezrio.com/2007/12/15/como-instalar-y-configurar-openvpn/</link>
		<comments>http://www.perezrio.com/2007/12/15/como-instalar-y-configurar-openvpn/#comments</comments>
		<pubDate>Sat, 15 Dec 2007 14:47:30 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[openvpn]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/2007/12/15/como-instalar-y-configurar-openvpn/</guid>
		<description><![CDATA[OpenVPN es una implementacion de VPN SSL la cual usa las extensiones OSI layer 2 ó 3 para asegurar redes la cual usa los protocolos SSL/TLS, soporta diferentes medios de autenticacion como certificados, smart cards, y/o usuarios/contraseñas, y permite politicas de control de acceso para usaurios o grupos usando reglas de firewall aplicadas a las [...]]]></description>
			<content:encoded><![CDATA[<p>OpenVPN es una implementacion de VPN SSL la cual usa las extensiones OSI layer 2 ó 3 para asegurar redes la cual usa los protocolos SSL/TLS, soporta diferentes medios de autenticacion como certificados, smart cards, y/o usuarios/contraseñas, y permite politicas de control de acceso para usaurios o grupos usando reglas de firewall aplicadas a las interfaces virtuales de la VPN. OpenVPN 2.0 permite multiples clientes conectar a un solo servidor (proceso) OpenVPN sobre un simple puerto TCP o UDP.</p>
<p>Para seguir este documento se requieren conocimientos basicos de redes TCP/IP como , direcciones IP, DNS, netmasks, subnets, IP routing, routers, interfaces de red, LANs, gateways, y reglas de firewall.<br />
Formas de trabajo del OpenVPN</p>
<p>Aunque OpenVPN es muy sencillo de configurar e instalar, podemos dividir su forma de trabajo en 3 tipos:</p>
<p>1. <span style="font-weight: bold">Host a Host</span>: Es el método más simple, nos permite encriptar la comunicación entre dos PC las cuales deberán solamente tener conexión; es decir: ambas PC deben poderse enviar paquetes directamente ya sea porque estén conectadas en la misma red local, o porque ambas estén conectadas a la internet y sean alcanzables entre sí.<br />
2. <span style="font-weight: bold">Road Warrior</span>: Es una de las formas más utilizadas y solicitadas por los estudiantes. Es el permitir que una máquina de alguien que esté fuera de nuestra red (de forma temporal o permanente) pueda comunicarse con el servidor OpenVPN de nuestra red y una vez autenticado pueda entrar a ver y acceder los recursos de nuestra red local. En verdad es un caso especial de la conexión Red a Red que a continuación mencionamos:<br />
3. <span style="font-weight: bold">Red a Red</span>: Uno de los métodos más usados. Mediante ésta forma dos redes separadas en el espacio pueden comunicarse como si estuvieran unidas por un cable virtual (de ahi la V de VPN); la comunicación entre ambas redes viajará encriptada una vez salgan de los servidores de openvpn y hasta que lleguen a su otro extremo.</p>
<p><span style="font-weight: bold">Ventajas del uso de OpenVPN</span></p>
<p>OpenVPN es un sistema de creación y uso de vpn muy modesto y fácil de utilizar que nos permite implementar vpn que de otras formas sería muy molesto o dificultoso de realizar.</p>
<p>Las implementaciones IPSec, aunque supuestamente mejor elaboradas y soportadas por el kernel de linux, son muy difíciles de implementar en máquinas con Windows. En el caso de OpenVPN existen clientes y servidores tanto para linux como para windows y su implementación para redes o sistemas multiplataformas es muy sencilla de llevar a cabo.</p>
<p><span style="font-weight: bold">Instalación del OpenVPN</span></p>
<p>Instalar OpenVPN en nuestro linux CentOS es realmente fácil. Solamente debemos tener instalado el <a href="http://www.ecualug.org/?q=2006/03/30/comos/centos/c_mo_usar_el_repositorio_de_dag_en_nuestro_centos" class="bb-url">repositorio DAG</a> y emitir el comando:</p>
<pre class="bb-code-block">yum install openvpn</pre>
<p>Después de unos minutos, tendremos listo el paquete de OpenVPN</p>
<p>Una vez instalado, podemos proceder a la creación de las claves de encriptación en el servidor y cliente.</p>
<p><span style="font-weight: bold">Activando OpenVPN</span></p>
<p>Aunque <span style="font-weight: bold">todavía no es el momento de activarlo</span>, cuando hayamos configurado el openvpn podemos activarlo con:</p>
<pre class="bb-code-block">service openvpn start

chkconfig openvpn on</pre>
<p>Con estos dos simples comandos podemos arrancar el openvpn en ambos extremos.</p>
<p>Si necesitáramos reiniciarlo (para que lea de nuevo la configuración por ejemplo) podríamos hacerlo con:</p>
<pre class="bb-code-block">service openvpn restart</pre>
<pre class="bb-code-block">Fonte: <a href="http://www.ecualug.org/?q=2007/02/06/comos/centos/c_mo_instalar_y_configurar_openvpn" title="http://www.ecualug.org/?q=2007/02/06/comos/centos/c_mo_instalar_y_configurar_openvpn" target="_blank">http://www.ecualug.org</a></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2007/12/15/como-instalar-y-configurar-openvpn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JEdit, Editor para programadores</title>
		<link>http://www.perezrio.com/2007/12/15/jedit-editor-para-programadores/</link>
		<comments>http://www.perezrio.com/2007/12/15/jedit-editor-para-programadores/#comments</comments>
		<pubDate>Sat, 15 Dec 2007 14:41:20 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/2007/12/15/jedit-editor-para-programadores/</guid>
		<description><![CDATA[Generalmente cuando tengo que escribir codigo empleo Eclipse, pero cuando necesito tomar una nota rapida, o preparar una documentacion no empleo este entorno de desarrollo y prefiero usar un editor de texto mas liviano. Ultimamente he empezado a utilizar JEdit, es un editor de texto enfocado a programadores, pero tambien puede ser empleado por un [...]]]></description>
			<content:encoded><![CDATA[<p class="entry"><a href="http://ubuntulife.net/wordpress/wp-content/uploads/2007/12/jedit.jpg" title="jedit.jpg"><img src="http://ubuntulife.net/wordpress/wp-content/uploads/2007/12/jedit.jpg" alt="jedit.jpg" /></a></p>
<p>Generalmente cuando tengo que escribir codigo empleo <em>Eclipse</em>, pero cuando necesito tomar una nota rapida, o preparar una documentacion no empleo este entorno de desarrollo y prefiero usar un editor de texto mas liviano. Ultimamente he empezado a utilizar <a href="http://www.jedit.org/index.php">JEdit</a>, es un editor de texto enfocado a programadores, pero tambien puede ser empleado por un usuario normal, como sustituto a los editores de texto que vienen incorporados en el escritorio.</p>
<p>Soporta resaltado de <a href="http://www.jedit.org/index.php?page=features">sintaxis</a> para muchos lenguajes de programacion.</p>
<p>Me gusta pues es bastante extensible mediante Plugins. Hay plugins para formatear el texto, ejecutar SQL, e incluso para conectar y editar textos remotamente mediante FTP.</p>
<p>Nota: requiere de Java para que funcione en tu maquina. Para instalarlo realizamos los siguientes pasos:</p>
<p>Añadimos las siguientes lineas al fichero <strong>/etc/apt/sources.list </strong></p>
<pre>deb http://dl.sourceforge.net/sourceforge/jedit ./

deb-src http://dl.sourceforge.net/sourceforge/jedit ./</pre>
<p>Despues ejecutamos:</p>
<p><code>$ sudo apt-get update<br />
$ apt-get install jedit</code></p>
<p>Para iniciarlo ejecutamos:</p>
<p><code>$ jedit</code></p>
<p>No te olvides de añadir el plugin BufferTabs, te permite tener pestañas con todos los ficheros abiertos. Para añadirlo seleccionas la opcion: <strong>Plugins &gt; Plugin Manager &gt; Install </strong>y marcas para instalar la opcion “BufferTabs”.</p>
<p>Una vez instalado lo configuras desde  <strong>Plugins &gt; Plugins Options</strong>, por ejemplo cambiando la orientacion de las pestañas a la parte superior, por defecto aparecen en la parte inferior.</p>
<p><a href="http://www.jedit.org/index.php?page=screenshots">Pantallazos JEdit</a><br />
<a href="http://plugins.jedit.org/list.php">Listado de Plugins</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2007/12/15/jedit-editor-para-programadores/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuración de IPTABLES</title>
		<link>http://www.perezrio.com/2007/12/07/configuracion-de-iptables/</link>
		<comments>http://www.perezrio.com/2007/12/07/configuracion-de-iptables/#comments</comments>
		<pubDate>Fri, 07 Dec 2007 15:44:08 +0000</pubDate>
		<dc:creator>rubio</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[filtros]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[reglas]]></category>

		<guid isPermaLink="false">http://www.perezrio.com/2007/12/07/configuracion-de-iptables/</guid>
		<description><![CDATA[En la edición anterior, se explicó las bases de Netfilter/IPTables. En esta segunda entrega, se dará a conocer algo de teoría, tablas adicionales y la puesta en marcha de un servidor de Proxy Transparente. &#160; 1.1 Iptables-save / Iptables-restore Ya que es a veces “complicado” recordar las reglas que se anotan (y volverlas a anotar [...]]]></description>
			<content:encoded><![CDATA[<p> En la edición anterior, se explicó las bases de Netfilter/IPTables. En esta segunda entrega, se dará a conocer algo de teoría, tablas adicionales y la puesta en marcha de un servidor de Proxy Transparente.</p>
<p class="level2">&nbsp;</p>
<h3><a title="iptables-save_iptables-restore" name="iptables-save_iptables-restore" id="iptables-save_iptables-restore"></a>1.1 Iptables-save / Iptables-restore</h3>
<p class="level3">Ya que es a veces “complicado” recordar las reglas que se anotan (y volverlas a anotar a mano), existen dos scripts adicionales, llamados iptables-save e iptables-restore.</p>
<p>Su misión es volcar las reglas de IPTables, y volverlas a cargar, respectivamente. Su formato es de texto, algo complicado de leer al principio, pero entendible a la larga.</p>
<p>Por ejemplo:</p>
<pre class="code"># iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
DROP       icmp --  anywhere             anywhere
DROP       tcp  --  anywhere             anywhere            tcp dpt:www
DROP       tcp  --  192.168.1.1          anywhere            tcp dpt:ssh

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
DROP       icmp --  anywhere             anywhere</pre>
<pre class="code">
<span id="more-13"></span>Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
DROP       icmp --  anywhere             anywhere
# iptables-save
# Generated by iptables-save v1.2.9 on Thu May 27 11:17:22 2004
*filter
:INPUT ACCEPT [17884:23657771]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6079:461673]
-A INPUT -p icmp -j DROP
-A INPUT -p tcp -m tcp --dport 80 -j DROP
-A INPUT -s 192.168.1.1 -p tcp -m tcp --dport 22 -j DROP
-A FORWARD -p icmp -j DROP
-A OUTPUT -p icmp -j DROP
COMMIT
# Completed on Thu May 27 11:17:22 2004</pre>
<p>Para guardar las reglas, se puede volcar a un archivo de texto.</p>
<pre class="code"># iptables-save &gt; reglas.txt</pre>
<p>Para restaurar las reglas</p>
<pre class="code"># iptables -F
# cat reglas.txt | iptables-restore</pre>
<p>Algunas distribuciones, como RedHat y Debian, poseen dentro de sus scripts de inicio algunas ayudas para guardar las reglas.</p>
<p><strong>RedHat</strong></p>
<p>Primero, crear las reglas y luego</p>
<pre class="code"># /etc/init.d/iptables save</pre>
<p><strong>Debian</strong></p>
<p>Crear primero las reglas, luego crear el directorio /var/lib/iptables</p>
<pre class="code"># mkdir /var/lib/iptables</pre>
<p>La regla “inactive” es la regla inactiva (generalmente no tiene nada, y por defecto, habilitada para ACCEPT). La regla “ACTIVE” es la regla que se carga al momento del arranque.</p>
<pre class="code"># iptables -A INPUT ...
# iptables -A INPUT ...
# /etc/init.d/iptables save active
# iptables -F
# /etc/init.d/iptables save inactive</pre>
<p><strong>Otras distribuciones</strong></p>
<p>En caso de otras distribuciones, leer el archivo de arranque (/etc/init.d/iptables o similares)</p>
<h2><a title="tcp_ip" name="tcp_ip" id="tcp_ip"></a>2. TCP/IP</h2>
<p class="level2"> No voy a ponerme a hablar acerca de TCP/IP (ni de un curso práctico), ya que es ejercicio del lector entender las partes básicas de este protocolo. Sólo haré algunas reseñas necesarias para el buen entendimiento del artículo. 2.1 IP</p>
<p>Para que exista una comunicación entre hosts, es necesario que un paquete contenga tres elementos : dirección de origen, dirección de destino y los datos. Todo paquete de red, además, está escrito de forma MSBF (Most Significant Byte First) o también “Big Endian”.</p>
<p>Un paquete IP contiene una estructura, definida por “cabecera” y “datos”. Este paquete, en lenguaje C, podría escribirse como la siguiente estructura:</p>
<pre class="code">#typedef unsigned int uint;
#typedef unsigned char uchar;
struct ip_packet {
    uint version:4; // version, 4 bits
    uint header_len:4; // largo de la cabecera, 4 bits
    uint serve_type:8; // como servir, 8 bits
    uint packet_len:16; // largo del paquete en bytes, 16 bits
    uint ID:16; // identificador del paquete,16 bits
    uint _reserved:1; // reservado, siempre es 0
    uint dont_frag:1; // flag para fragmentacion, 1 bit
    uint more_frags:1; // flag para indicar que hay mas fragmentos, 1 bit
    uint frag_offset:13; // offset que sirve para reconstruccion
                         // de paquetes fragmentados, 13 bits
    uint time_to_live:8; // tiempo de vida del paquete, 8 bits
                         // tambien llamado numero de saltos de router
    uint protocol:8; // protocolo usado, 8 bits
    uint hdr_chksum:16; // suma de comprobacion de la cabecera
    uint IPv4_source:32; // direccion origen de la forma
                         // ABCDEF01 = AB.CD.EF.01
    uint IPv4_dest: 32; // direccion destino
    uchar options[]; // 40 bytes usados para opciones
    uchar data[]; // datos del paquete hasta 64 kbytes
};</pre>
<p>Algunos de los campos de la cabecera que realmente interesan son</p>
<ul>
<li class="level1">
<p class="li"> Version : número de versión del protocolo IP. Se usa “4” para definir IPv4 y “6” para IPv6.</p>
</li>
<li class="level2">
<p class="li"> ID : indica un numero “mágico” para diferenciar un paquete único de una comunicación (importante dentro de “connection tracking”). Este numero es usando principalmente para la reconstrucción de paquetes fragmentados</p>
</li>
<li class="level2">
<p class="li"> TTL (time to live) : antiguamente era el tiempo en segundos que un paquete podía “vivir” durante su tránsito por la red. Actualmente, se define como la cantidad de saltos máximos permitidos entre routers antes de descartar el paquete.</p>
</li>
</ul>
<h3><a title="icmp" name="icmp" id="icmp"></a>2.2 ICMP</h3>
<p class="level3"> ICMP (Internet Control Message Protocol) es una de las capas construidas sobre los paquetes básicos IP. Prácticamente todas las máquinas conectadas a Internet utilizan ICMP para mensajes (error y control). Generalmente es usado para diagnosticar conectividad entre dos puntos.</p>
<p>Una cabecera ICMP, puede definirse (en sintaxis C) como</p>
<pre class="code">#typedef unsigned char ui8;
#typedef unsigned short int ui16;
struct ICMP_header {
    ui8 type; // tipo de error
    ui8 code; // codigo de error
    ui16 checksum; // checksum
    uchar msg[];
};</pre>
<p>Cuando type y code son 0, significa que existe respuesta de eco (pong).</p>
<h3><a title="udp" name="udp" id="udp"></a>2.3 UDP</h3>
<p class="level3">UDP (User Datagram Protocol) se usa para las comunicaciones no orientadas a la conexión. Estas comunicaciones se realizan a diferentes destinos sin volver a crear los canales de comunicación (sockets) y es uno de los protocolos sin conexión más comunes.</p>
<p>Una cabecera UDP puede explicarse con la siguiente sintaxis de C</p>
<pre class="code">#typedef unsigned char ui8;
#typedef unsigned short int ui16;
struct UDP_header {
    ui16 src_port; // puerto origen
    ui16 dst_port; // puerto destino
    ui16 length; // tamaño del mensaje
    ui16 checksum; // suma comprobación
    uchar data[]; // datos
};</pre>
<h3><a title="tcp" name="tcp" id="tcp"></a>2.4 TCP</h3>
<p class="level3">TCP (Transmission Control Protocol) es el protocolo de sockets mas usado en Internet. Es totalmente orientado a la conexión, y requiere un canal de comunicación nuevo en cada nueva conexión.</p>
<p>Una cabecera TCP puede ser expresada en C como sigue:</p>
<pre class="code">typedef unsigned char ui8;
typedef unsigned short int ui16;
typedef unsigned int ui32;
typedef unsigned int uint;
struct TCP_header {
    ui16 src_port; // puerto de origen
    ui16 dst_port; // puerto de destino
    ui32 seq_num; // numero "magico" de secuencia
    ui32 ack_num; // numero de acuso de recibo (confirmacion)
    uint data_off:4; // offset de datos
    uint ___res:6; // reservado (6 bits)
    uint urg_flag:1; // bandera de estado urgente
    uint ack_flag:1; // bandera de acuso de recibo valido
    uint psh_flag:1; // prioridad
    uint rst_flag:1; // reiniciar la conexion debido a errores
    uint syn_flag:1; // bandera de inicio de apertura de conexion
    uint fin_flag:1; // bandera de conexion finalizada
    ui16 window; // cuantos bytes se esperan recibir
    ui16 checksum; // suma de comprobacion
    ui8 options[]; // opciones
    ui8 __padding[]; // necesitado para alinear data
    uchar data[]; // datos del mensaje
};</pre>
<p>Esta cabecera es de tamaño variable.</p>
<p>La cabecera TCP usa el mismo numero de puerto utilizado por UDP. Pero seq_num y ack_num permiten seguirle el rastro a la conexión. Cuando se envía cualquier mensaje por red, se asigna de manera automática un número de secuencia. El receptor responde con un número de acuse de recibo, que es superior a seq_num. Esto permite también que los paquetes de acuse de recibo también pueden transportar datos.</p>
<h3><a title="el_punto_de_vista_de_iptables" name="el_punto_de_vista_de_iptables" id="el_punto_de_vista_de_iptables"></a>2.5 El punto de vista de IPTables</h3>
<p class="level3"> Una vez explicado como funciona (a nivel de cabeceras) TCP/IP, se vuelve más simple explicar (y entender a la vez) el funcionamiento de IPTables.</p>
<p>Por ejemplo, en el articulo pasado se vio una regla para denegar el acceso al puerto 25</p>
<pre class="code"># iptables -A INPUT -i eth1 -p tcp --dport 25 -j DROP</pre>
<p>Del punto de vista de la cabecera TCP (la opción -p tcp) indica que dst_port es 25, ignorando los otros valores presentes.</p>
<p>Puede hacerse que el procesado sea mucho mas efectivo, por ejemplo, diciéndole que filtre el tráfico hacia el puerto 25, en la interfaz eth1, siempre que los paquetes vengan marcados con las banderas SYN y ACK al mismo tiempo</p>
<pre class="code"># iptables -A INPUT -i eth1 -p tcp --dport 25 --tcp-flags ALL SYN,ACK -j DROP</pre>
<p>La opción –tcp-flags requiere dos argumentos. El primero, los flags a examinar, y el segundo, los flags que deben estar en 1. En este caso, IPTables examina todos los flags, pero SYN y ACK deben estar en 1.</p>
<p>Mezclando los conceptos anteriores, mas el artículo pasado , tenemos</p>
<ul>
<li class="level1">
<p class="li"> Nivel de Dirección</p>
</li>
</ul>
<pre class="code"># iptables [...] -s [direccion] [...]
# iptables [...] -d [direccion] [...]
# iptables [...] -s [direccion] -d [direccion] ...</pre>
<ul>
<li class="level1">
<p class="li"> Nivel de Protocolo</p>
</li>
</ul>
<pre class="code"># iptables [...] -p [protocolo] [acciones especificas] [...]</pre>
<ul>
<li class="level1">
<p class="li"> Ambos Niveles</p>
</li>
</ul>
<pre class="code"># iptables [...] -s [direccion] -p [protocolo] [acciones especificas del protocolo] [...]</pre>
<h2><a title="mas_de_iptables" name="mas_de_iptables" id="mas_de_iptables"></a>3. Más de IPTables</h2>
<p class="level2">&nbsp;</p>
<h3><a title="extensiones" name="extensiones" id="extensiones"></a>3.1 Extensiones</h3>
<p class="level3">&nbsp;</p>
<h4><a title="log" name="log" id="log"></a>LOG</h4>
<p class="level4">Hemos visto algunas extensiones simples de IPTables, como ACCEPT, DROP y REJECT. Junto con ellas, existen extensiones adicionales, como la posibilidad de “loguear” las coincidencias. Para esto, se usa la extensión LOG, que envía los avisos de coincidencias encontradas hacia el servicio de logging del sistema (syslog).</p>
<p>Por ejemplo,</p>
<pre class="code"># iptables -A INPUT -i eth0 -p tcp --dport 25 -j LOG</pre>
<p>hará que cualquier conexión al puerto 25 por TCP sea logueada. En el log de sistema, aparecerá lo siguiente (en mi caso):</p>
<pre class="code">Feb 22 08:49:36 pumba kernel: IN=eth0 OUT= MAC=00:80:ad:71:fb:26:00:00:86:4d:d3:b2:08:00
SRC=192.168.1.2 DST=192.168.1.1 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=47613 DF PROTO=TCP
SPT=32771 DPT=25 WINDOW=5840 RES=0x00 SYN URGP=0</pre>
<p>Esto indica que se realizó, al menos, una conexión hacia el puerto 25. Nótese que además se indican las banderas TCP (SYN).</p>
<p>Se puede además agregar una leyenda adicional, generalmente usada para distinguir la regla, o bien para facilitar la lectura de los logs.</p>
<pre class="code"># iptables -A INPUT -i eth0 -p tcp --dport 25 -j LOG --log-prefix "Conexion al puerto 25"</pre>
<h4><a title="masquerade" name="masquerade" id="masquerade"></a>MASQUERADE</h4>
<p class="level4"> Otra, ya vista, fue MASQUERADE (o MASQ), usada para nat. Visto en el articulo pasado.</p>
<h4><a title="mark" name="mark" id="mark"></a>MARK</h4>
<p class="level4"> Esta extensión permite marcar los paquetes, permitiendo alterar el método de enrutamiento, pudiendo ser usado por otros subsistemas para cambiar su comportamiento.</p>
<h4><a title="tos" name="tos" id="tos"></a>TOS</h4>
<p class="level4"> Existe otra, llamada TOS (type of service). La orientación de esta extensión es proveer la alteración de paquetes (o sea, mangle) de acuerdo al servicio a prestar, priorizando el trafico proveniente de distintas partes. Por ejemplo, minimizar los tiempos de espera (Minimize Delay). Es usada con las cadenas PREROUTING y POSTROUTING.</p>
<p>Por ejemplo, para minimizar la demora en el servicio telnet</p>
<pre class="code"># iptables -t mangle -A PREROUTING -p tcp --dport telnet -j TOS --set-tos Minimize-Delay</pre>
<p>Los tipos de servicio pueden ser</p>
<ul>
<li class="level1">
<p class="li"> Minimizar los tiempos de espera (Minimize-Delay)</p>
</li>
<li class="level2">
<p class="li"> Maximizar el flujo de salida (Maximize-Throughput)</p>
</li>
<li class="level2">
<p class="li"> Maximizar la confiabilidad de la transmisión (Maximize-Reliability)</p>
</li>
<li class="level2">
<p class="li"> Minimizar los costos de la transmisión (Minimize-Cost)</p>
</li>
<li class="level2">
<p class="li"> Servicios normales (Normal-Service)</p>
</li>
</ul>
<h4><a title="redirect" name="redirect" id="redirect"></a>REDIRECT</h4>
<p class="level4">Otra extensión es REDIRECT (redirigir). Su misión es alterar los paquetes, de manera de cambiar el puerto de destino, pero sin modificar opciones adicionales, como en el caso de mangle.</p>
<p>Por ejemplo</p>
<pre class="code"># iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3200</pre>
<p>desvía los paquetes que llegan al puerto 80 para redirigirlos al puerto 3200. Es útil para Web servers, ya que se puede correr Apache en un puerto superior al 1024 (user ports) y desviar el tráfico desde el puerto 80 al puerto donde realmente está corriendo, de forma transparente.</p>
<h4><a title="snat_y_dnat" name="snat_y_dnat" id="snat_y_dnat"></a>SNAT y DNAT</h4>
<p class="level4"> Estas extensiones permiten realizar transformaciones de dirección (origen y destino, respectivamente) de los paquetes. DNAT indica que la dirección de destino debe ser modificada. SNAT, la dirección de origen.</p>
<p>Permiten, por ejemplo, redirigir el tráfico hacia un host específico</p>
<pre class="code"># iptables -t nat -A POSTROUTING -d 192.168.1.1 -p tcp --dport 80 -j SNAT --to 192.168.1.3</pre>
<p>O permitir que el tráfico desde Internet sea enviado a una máquina dentro de la LAN</p>
<pre class="code"># iptables -t nat -A PREROUTING -d 10.200.1.18 -j DNAT --to 192.168.1.8</pre>
<h4><a title="mirror" name="mirror" id="mirror"></a>MIRROR</h4>
<p class="level4"> La extensión MIRROR permite intercambiar el origen y el destino y retransmitir el paquete de vuelta al emisor.</p>
<p>Por ejemplo</p>
<pre class="code"># iptables -A INPUT -i eth0 -p tcp --dport 3128 -j MIRROR</pre>
<h4><a title="extensiones_adicionales_para_coincidencias" name="extensiones_adicionales_para_coincidencias" id="extensiones_adicionales_para_coincidencias"></a>Extensiones adicionales para coincidencias</h4>
<p class="level4"> De acuerdo al manual de IPTables, las extensiones para coincidencias (matches) pueden ser cargadas de dos maneras :</p>
<ul>
<li class="level1">
<p class="li"> por protocolo (-p)</p>
</li>
<li class="level2">
<p class="li"> por coincidencia (-m)</p>
</li>
</ul>
<p>Cada uno de ellos puede cargar módulos adicionales, en el caso que así sea, o soportar extensiones adicionales.</p>
<p>Por ejemplo</p>
<pre class="code"># iptables -A INPUT -m tcp -j ACCEPT</pre>
<p>es inválido.</p>
<p>Algunas de las extensiones por coincidencia (-m) son</p>
<ul>
<li class="level1">
<p class="li"> limit : este módulo permite hacer coincidir paquetes de acuerdo a una tasa limitada de transferencia</p>
</li>
<li class="level2">
<p class="li"> state : indica el estado de la transmisión (ver Inspección de Estado, a continuación)</p>
</li>
<li class="level2">
<p class="li"> ttl : tiempo de vida del paquete</p>
</li>
<li class="level2">
<p class="li"> owner : el propietario (UID, GID, PID) de la transmisión o paquete (solo usado en OUTPUT)</p>
</li>
<li class="level2">
<p class="li"> tos : tipo de servicio</p>
</li>
<li class="level2">
<p class="li"> length : largo del paquete</p>
</li>
<li class="level2">
<p class="li"> mark : marca del paquete</p>
</li>
<li class="level2">
<p class="li"> mac : MAC Address (dirección física de la tarjeta de red)</p>
</li>
<li class="level2">
<p class="li"> unclean (experimental) : verifica la “limpieza” del paquete</p>
</li>
</ul>
<p>Existen otras, pero son demasiado específicas (como ah y esp, usados específicamente con IPSec, otro paquete usado para enrutamiento).</p>
<h3><a title="inspeccion_de_estado" name="inspeccion_de_estado" id="inspeccion_de_estado"></a>3.2 Inspección de Estado</h3>
<p class="level3"> En el artículo anterior, se comentó acerca de la Inspección del Estado de la conexión. Ésta trata de interpretar todos los paquetes que provienen de una cierta conexión en particular, entendiendo así protocolos de alto nivel como NFS, <acronym title="Hyper Text Transfer Protocol">HTTP</acronym> y otros. Esta clase de comportamiento solo es posible examinando la cabecera de la información contenida dentro del paquete. Si, por ejemplo, un paquete es parte de una conexión, y calza con alguna de las coincidencias, entonces es procesado.</p>
<p>Las anteriores implementaciones no tenían esta característica. Así, por ejemplo, podía hacerse pasar un paquete como legítimo “a la fuerza”, siendo parte de una conexión arbitraria, como por ejemplo, Portscanning (”escaneo” o barrido de puertos).</p>
<p>Los estados en los cuales puede estar un paquete dentro de una transacción son</p>
<ul>
<li class="level1">
<p class="li"> NEW : un paquete que intenta iniciar una conexión</p>
</li>
<li class="level2">
<p class="li"> RELATED : un paquete que es parte de una conexión</p>
</li>
<li class="level2">
<p class="li"> INVALID : un paquete que no es parte de ninguna conexión</p>
</li>
<li class="level2">
<p class="li"> ESTABLISHED : un paquete que, además de ser parte de una conexión, indica que es parte de una conexión establecida exitosa.</p>
</li>
<li class="level2">
<p class="li"> RELATED+REPLY : un paquete que no es parte de alguna conexión existente, pero está relacionada con una. Generalmente asociados a ftp-data y ftp-control.</p>
</li>
</ul>
<p>Por ejemplo, para permitir el FORWARD entre dos interfaces, sólo por conexiones nuevas, ya establecidas y relacionadas:</p>
<pre class="code"># iptables -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT</pre>
<h3><a title="cadenas_de_usuario" name="cadenas_de_usuario" id="cadenas_de_usuario"></a>3.3 Cadenas de Usuario</h3>
<p class="level3"> En el articulo pasado dijimos que IPTables tenia 3 tablas (nat, filter y mangle), además de las cadenas INPUT, OUTPUT&#8230;.</p>
<p>Una de las utilidades mas prácticas es que se puede crear cadenas de usuario (user chains) para coincidencias mas complejas y ciertamente útiles.</p>
<p>Para un ejemplo simple, supongamos que se desea aceptar el tráfico para ssh desde dos hosts y denegar el resto. Se puede lograr con</p>
<pre class="code"># iptables -A INPUT -s [direccion1] -p tcp --dport ssh -j ACCEPT
# iptables -A INPUT -s [direccion2] -p tcp --dport ssh -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP</pre>
<p>Si se necesita una regla adicional, como por ejemplo, el puerto 80, para estos mismos hosts, son 3 comandos más. Así, suma y sigue cuando se requieren puertos adicionales bajo la misma regla.</p>
<p>Para ahorrar tecleos, se puede crear una regla de usuario, con un nombre arbitrario (menos los nombres de las cadenas ya existentes)</p>
<pre class="code"># iptables -N control
# iptables -A control -s [direccion1] -j ACCEPT
# iptables -A control -s [direccion2] -j ACCEPT
# iptables -A control -j DROP</pre>
<p>Y luego, para agregar a las reglas de entrada</p>
<pre class="code"># iptables -A INPUT -p tcp --dport ssh -j control</pre>
<p>La opción “-j control” permite que las cadena recién creada se ejecute al momento que la coincidencia ocurra. En este caso, permitir el trafico TCP por el puerto 22, pero la acción a realizar es la cadena de usuario “control”, verificando que se permita el trafico desde dos direcciones únicamente, denegando la conexión desde el resto.</p>
<p>Así, se puede tener reglas mas complejas, para mayor control.</p>
<h3><a title="acciones_por_defecto" name="acciones_por_defecto" id="acciones_por_defecto"></a>3.4 Acciones por defecto</h3>
<p class="level3"> Las cadenas básicas pueden tener acciones por defecto. Para eso se usa -P. No funciona con las cadenas de usuario.</p>
<p>Por ejemplo</p>
<pre class="code"># iptables -P INPUT DROP</pre>
<p>indica que todas las conexiones en la cadena INPUT serán descartadas.</p>
<h2><a title="firewalling" name="firewalling" id="firewalling"></a>4. Firewalling</h2>
<p class="level2"> Suena algo extraña la palabra <img src='http://www.perezrio.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  (eh, primer smiley en el documento).</p>
<p>NOTA : Esta parte del documento es meramente teórica.</p>
<p>Al momento de crear las reglas para Firewalls, existen dos formas de abordar el problema</p>
<ul>
<li class="level1">
<p class="li"> Cerrar todo, luego permitir</p>
</li>
<li class="level2">
<p class="li"> Permitir todo, luego cerrar</p>
</li>
</ul>
<p>Si bien ambos métodos son simples de entender, muchas veces es solamente aplicable uno de los dos métodos, ya que es más fácil que el otro.</p>
<p>Por ejemplo, si se desea permitir la conexión por <acronym title="Secure Shell">SSH</acronym> solamente</p>
<pre class="code"># iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# iptables -P INPUT DROP</pre>
<p>(Cerrar todo, permitir después)</p>
<p>o bien</p>
<pre class="code"># iptables -P INPUT ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# iptables -A INPUT -p tcp --dport 80 -j DROP
# iptables -A INPUT -p tcp --dport 110 -j DROP
# iptables -A INPUT -p tcp --dport 500 -j DROP

...</pre>
<p>(Permitir todo, luego cerrar)</p>
<p>Creo que quedo clara la idea. <img src='http://www.perezrio.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h3><a title="seguridad" name="seguridad" id="seguridad"></a>4.1 Seguridad</h3>
<p class="level3">En seguridad informática, cualquier dispositivo que ayude a incrementar la seguridad además minimiza los riesgos que eventualmente pudieran ocurrir (intrusiones, por ejemplo). Y debe cumplir ambos objetivos al mismo tiempo.</p>
<p>El asunto del costo que implica tener un dispositivo de seguridad (tiempo y recursos) se reduce de manera importante al usar soluciones <acronym title="Free/Libre and Open Source Software">FLOSS</acronym>, ya que es posible usar un humilde 486DX/16 <acronym title="Megabyte">MB</acronym> Ram para construir un cortafuego (otra cosa es el funcionamiento óptimo, que se incrementa a medida que aumenta el poder de proceso y almacenamiento), sobre Linux o sobre alguna variante de BSD.</p>
<p>(Esta parte es teoría pura. En la tercera parte, se aborda un script completo para cortafuegos).</p>
<p>Otro problema es “transparencia”. Es decir, las comunicaciones deben realizarse de manera simple, sin que los dispositivos de seguridad intervengan de manera de crear un problema, en vez de resolverlo. Es decir, es innecesario tener un cortafuego que no permita todas las comunicaciones desde la LAN hacia Internet. O bien, que simplemente no funcione. Sale más económico tirar del cable que tener un firewall.</p>
<p>Otro concepto importante es la necesidad de tener un dispositivo de seguridad. En el artículo anterior, se vio que es necesario para:</p>
<ul>
<li class="level1">
<p class="li"> Control de Trafico Entrante y Saliente, restringiendo que debe entrar y salir, así como también determinar qué es tráfico innecesario</p>
</li>
<li class="level2">
<p class="li"> Seguridad de Servicios de Red, permitiendo que conexiones no autorizadas tengan acceso a recursos que no corresponden</p>
</li>
<li class="level2">
<p class="li"> Observación del Trafico actual, para determinar el estado del tráfico y para la detección de anomalías de conexión</p>
</li>
</ul>
<p>Cualquier configuración necesaria debe ajustarse a cada una de las necesidades de organizaciones o personas. Además, el nivel de seguridad requerido depende de los activos que se quiera proteger.</p>
<h2><a title="puesta_en_marcha_de_un_servidor_de_proxy_transparente" name="puesta_en_marcha_de_un_servidor_de_proxy_transparente" id="puesta_en_marcha_de_un_servidor_de_proxy_transparente"></a>5. Puesta en Marcha de un Servidor de Proxy Transparente</h2>
<p class="level2"> Era demasiada cháchara, así que ahora a lo práctico. <img src='http://www.perezrio.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Es bastante común que se compartan las conexiones a Internet (una sola conexión para varios clientes). En el artículo anterior, se realizó a través de NAT.</p>
<p>A diferencia de NAT, un Proxy es un puente intermedio, solamente para conexiones <acronym title="Hyper Text Transfer Protocol">HTTP</acronym>. Es decir, un proxy “habla” en <acronym title="Hyper Text Transfer Protocol">HTTP</acronym>, que es un protocolo de alto nivel. Se le llama de alto nivel ya que la base del protocolo es en comandos, humanamente entendibles (como GET, por ejemplo). Además, permite tener un respaldo o caché de las páginas más visitadas, reduciendo la cantidad de ancho de banda utilizado para navegar en Web, evitando tráfico innecesario.</p>
<p>Se le llama “transparente” a esta puesta en marcha, ya que los clientes (Linux o Win) no requieren de configuración adicional en los navegadores, siendo transparente la forma de navegar en Internet.</p>
<p>Y lo último, un Proxy permite además crear reglas de control de acceso, para determinar que ver, y en que horarios. Muchas empresas utilizan este método, ya que así determinan que es lo que pueden ver sus trabajadores durante el horario de oficina. La productividad baja un resto cuando se pierde tiempo navegando en páginas pornográficas, por ejemplo. Así, determinar qué ver y cuándo ver, es tarea de un software, en vez de darle este trabajo a los usuarios.</p>
<h3><a title="como_funciona" name="como_funciona" id="como_funciona"></a>5.1 Como funciona</h3>
<p class="level3"> Un navegador de Internet realiza, por lo general, una conexión hacia el puerto 80 (http) hacia un servidor remoto, enviando una petición <acronym title="Hyper Text Transfer Protocol">HTTP</acronym>, por ejemplo</p>
<pre class="code">GET / HTTP/1.0</pre>
<p>y el servidor responde con el código de error respectivo y el recurso pedido. La mayoría de las veces el servidor <acronym title="Hyper Text Transfer Protocol">HTTP</acronym> informa del cierre de la conexión cuando la transacción esté completa.</p>
<p>Aunque la conversación entre navegador y servidor es mucho mas extensa, prefiero enfocarme en lo necesario.</p>
<p>Cuando existe un servidor Proxy de por medio, el navegador hace la petición hacia él, y luego el Proxy realiza la conexión al servidor indicado. (por ejemplo, cuando se configura el Proxy en el navegador).</p>
<p>Ahora, un Proxy transparente “intercepta” una conexión a un servidor remoto, realiza la petición, la entrega al usuario, sin que el navegador ni el usuario se den cuenta de esta intercepción.</p>
<h3><a title="materiales" name="materiales" id="materiales"></a>5.2 Materiales</h3>
<p class="level3"> Los materiales son exactamente los mismos que el artículo pasado : una máquina con Linux y otras máquinas con Win o Linux.</p>
<p>Se procede exactamente igual, con la salvedad que no se permite FORWARDING.</p>
<p>Algún servidor Proxy debe estar instalado. Recomiendo usar Squid, es un programa común dentro de las distribuciones de Linux.</p>
<h3><a title="puesta_en_marcha" name="puesta_en_marcha" id="puesta_en_marcha"></a>5.3 Puesta en Marcha</h3>
<p class="level3"> Suponiendo que Squid esta instalado y corriendo en la máquina Linux (que funcionará de puente entre Internet y la LAN), probar su funcionamiento con alguna otra máquina, conectándose manualmente al Proxy en las opciones del navegador. Por lo general, el puerto de Squid es el 3128. Otros, usan el 8080, dependiendo de la configuración utilizada.</p>
<p>Si funciona, entonces en la máquina Linux de puente:</p>
<pre class="code"># iptables -F</pre>
<p>para borrar todas las reglas anteriores</p>
<p>Desviar el tráfico desde la interfaz de la LAN que vaya por Web hacia el puerto que está corriendo Squid</p>
<pre class="code"># iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128</pre>
<p>y ya está.</p>
<p>Probar si funciona la conexión a Web, sin configurar manualmente el proxy.</p>
<p>Para permitir el IP Forward de algunas conexiones,</p>
<pre class="code"># echo 1 &gt; /proc/sys/net/ipv4/ip_forward</pre>
<p>Aunque la puesta en marcha es bastante simple, queda además agregar algo de seguridad a la máquina puente (nunca está demás), junto con agregar algunos puertos necesarios (como el de <acronym title="Domain Name Server">DNS</acronym> y HTTPS).</p>
<p>Permitir el trafico desde la LAN</p>
<pre class="code"># iptables -A INPUT -i eth1 -j ACCEPT
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT</pre>
<p>Para no recibir tráfico innecesario</p>
<pre class="code"># iptables -P INPUT DROP</pre>
<p>Para aceptar el tráfico desde la LAN</p>
<pre class="code"># iptables -A INPUT -i eth1 -j ACCEPT</pre>
<p>IMPORTANTE : la interfaz local también es necesaria</p>
<pre class="code"># iptables -A INPUT -i lo -j ACCEPT</pre>
<p>Para determinar si el paquete es parte de alguna conexión</p>
<pre class="code"># iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT</pre>
<p>Y para enmascarar puertos necesarios</p>
<pre class="code"># iptables -t nat -A POSTROUTING -p tcp --dport 53 -j MASQUERADE
# iptables -t nat -A POSTROUTING -p tcp --dport 443 -j MASQUERADE
# iptables -t nat -A POSTROUTING -p udp --dport 53 -j MASQUERADE
# iptables -t nat -A POSTROUTING -p udp --dport 443 -j MASQUERADE</pre>
<p>Este tipo de puesta en marcha es de tipo “cerrar, luego permitir”.</p>
<p class="level3">&nbsp;</p>
<p class="level3">Fuente: <a href="http://www.tux.cl/doku.php?id=articulos:redes:netfilter_ip" title="http://www.tux.cl" target="_blank">Tux.cl</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.perezrio.com/2007/12/07/configuracion-de-iptables/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

