<?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>El blog de Alejandro</title>
	<atom:link href="http://blog.mogaal.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.mogaal.com</link>
	<description></description>
	<lastBuildDate>Tue, 13 Apr 2010 01:18:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Películas favoritas</title>
		<link>http://blog.mogaal.com/?p=271</link>
		<comments>http://blog.mogaal.com/?p=271#comments</comments>
		<pubDate>Tue, 13 Apr 2010 01:12:11 +0000</pubDate>
		<dc:creator>Alejandro</dc:creator>
				<category><![CDATA[No se donde ponerlo]]></category>

		<guid isPermaLink="false">http://blog.mogaal.com/?p=271</guid>
		<description><![CDATA[El motivo de este post es presentar alguna de mis películas favoritas a la fecha. Como notarán soy fanático del cine europeo. ¿Algún comentario sobre alguna?

﻿Nueve reinas
 El mismo amor, la misma lluvia
La vida de los otros
Volver
El secreto de tus ojos
GoodBye Lenin
El lado oscuro del corazón II (The dark side of the heart II).
El lado oscuro del [...]]]></description>
			<content:encoded><![CDATA[<p>El motivo de este post es presentar alguna de mis películas favoritas a la fecha. Como notarán soy fanático del cine europeo. ¿Algún comentario sobre alguna?</p>
<ul>
<li>﻿Nueve reinas</li>
<li> El mismo amor, la misma lluvia</li>
<li>La vida de los otros</li>
<li>Volver</li>
<li>El secreto de tus ojos</li>
<li>GoodBye Lenin</li>
<li>El lado oscuro del corazón II (The dark side of the heart II).</li>
<li>El lado oscuro del corazón (The dark side of the heart).</li>
<li>Una mente brillante (A beautiful mind)</li>
<li>Irreversible (Irréversible).</li>
<li>Bailando en la oscuridad (Dancer in the dark)</li>
<li>La lista de Schindler (Schindler&#8217;s List)</li>
<li>Los abrazos rotos</li>
<li>Los girasoles ciegos (The Blind Sunflowers).</li>
<li>Quills.</li>
<li>Todo sobre mi madre (All about my mother).</li>
<li>Diario de un skin.</li>
<li>El laberinto del fauno (Pan&#8217;s labyrinth).</li>
<li>El crimen del padre amaro (The Crime of Padre Amaro).</li>
<li>Amelié (Amelié).</li>
<li>Hable con ella (talk to her).</li>
<li>Old boy.</li>
<li>Casablanca. (whitehouse)</li>
<li>Spun</li>
<li>Y tu mamá también (And your mother, too).</li>
<li>Requiem for a dream.</li>
<li>El curioso caso de Benjamin Button (The Curious Case of Benjamin Button).</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.mogaal.com/?feed=rss2&amp;p=271</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>debian/copyright</title>
		<link>http://blog.mogaal.com/?p=139</link>
		<comments>http://blog.mogaal.com/?p=139#comments</comments>
		<pubDate>Sun, 29 Nov 2009 05:50:31 +0000</pubDate>
		<dc:creator>Alejandro</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Software Libre y GNU/Linux]]></category>
		<category><![CDATA[copyright]]></category>
		<category><![CDATA[dep5]]></category>
		<category><![CDATA[empaquetamiento]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://blog.mogaal.com/?p=139</guid>
		<description><![CDATA[debian/copyright es uno de los archivos más importantes que posee un paquete. Permite corroborar y aseverar que lo incluido es realmente Software Libre y DFSG-complaint. Es por ello la exigencia de los ftp-masters, quienes rechazan paquetes hasta por tener el año del copyright incorrecto (me ha sucedido  .
Anteriormente, los ftp-masters recomendaban utilizar el template [...]]]></description>
			<content:encoded><![CDATA[<p>debian/copyright es uno de los archivos más importantes que posee un paquete. Permite corroborar y aseverar que lo incluido es realmente Software Libre y DFSG-complaint. Es por ello la exigencia de los <a title="Página web de ftp-master" href="http://ftp-master.debian.org/" target="_blank">ftp-masters</a>, quienes rechazan paquetes hasta por tener el año del copyright incorrecto (me ha sucedido <img src='http://blog.mogaal.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<p>Anteriormente, los ftp-masters recomendaban utilizar el <a title="Formato template sugerido por Joerg" href="http://lists.debian.org/debian-devel-announce/2006/03/msg00023.html">template sugerido por Joerg</a> el cual viene incorporado por defecto a dh-make, sin embargo tiene algunas limitaciones per se: la más relevante es que <strong>no</strong> es trivial hacerle un <em>parser</em> al archivo y extraer los campos de interés, lo que en estos momentos es de gran relevancia debido a las incompatibilidades entre licencias (por ejemplo GPL-2 y GPl-3 o quizás <a title="Incompatibilidad de OpenSSL y GPL" href="http://www.gnome.org/~markmc/openssl-and-the-gpl.html" target="_blank">GPL y OpenSSL</a>). Asimismo no obligatorio seguir el esquema del template, normalmente sirve para darte una idea sobre que campos debe incluír el debian/copyright pero las personas terminan haciéndolo como te da la gana.</p>
<p>Así surge la necesidad de buscar una alternativa y nace <a href="http://dep.debian.net/deps/dep5/" target="_blank">&#8220;Machine-readable debian/copyright&#8221;</a>, que aunque aún <a href="http://dep.debian.net/" target="_self">no es oficial</a> si es utilizada por varios mantenedores y casi obligatoria para algunos grupos de debian.  Puntos varios surgen cuando se empaquetan aplicaciones de gran tamaño y desarrolladas por varias personas, donde cada una tiene su derecho respectivo derecho sobre el <em>src</em>.</p>
<p>Aquí les dejo el URL de un módulo Perl que empaqueté unos meses:</p>
<p>http://packages.debian.org/changelogs/pool/main/libn/libnet-dri-perl/libnet-dri-perl_0.95-1/libnet-dri-perl.copyright</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mogaal.com/?feed=rss2&amp;p=139</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tux en facebook</title>
		<link>http://blog.mogaal.com/?p=136</link>
		<comments>http://blog.mogaal.com/?p=136#comments</comments>
		<pubDate>Wed, 02 Sep 2009 00:17:31 +0000</pubDate>
		<dc:creator>Alejandro</dc:creator>
				<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Software Libre y GNU/Linux]]></category>
		<category><![CDATA[cumpleaños]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[tux]]></category>

		<guid isPermaLink="false">http://blog.mogaal.com/?p=136</guid>
		<description><![CDATA[Para lo que utilizan nuestra mascotica en facebook:

]]></description>
			<content:encoded><![CDATA[<p>Para lo que utilizan nuestra mascotica en facebook:</p>
<p><a href="http://blog.mogaal.com/wp-content/uploads/2009/09/cumpleanos.png"><img class="size-full wp-image-135 alignleft" title="cumpleanos" src="http://blog.mogaal.com/wp-content/uploads/2009/09/cumpleanos.png" alt="cumpleanos" width="674" height="478" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mogaal.com/?feed=rss2&amp;p=136</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tips de FlightGear</title>
		<link>http://blog.mogaal.com/?p=111</link>
		<comments>http://blog.mogaal.com/?p=111#comments</comments>
		<pubDate>Sat, 25 Oct 2008 20:50:25 +0000</pubDate>
		<dc:creator>Alejandro</dc:creator>
				<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Software Libre y GNU/Linux]]></category>
		<category><![CDATA[debian flightgear]]></category>

		<guid isPermaLink="false">http://blog.mogaal.com/?p=111</guid>
		<description><![CDATA[Les dejo los tips que he aprendido sobre FlighGear. Para los que deseen este magnífico simulador de vuelo y usen Debian:
aptitude install flightgear fgfs-base
.Si se encuentran sobre otra plataforma ingresen en la página oficial del proyecto y descarguen las fuentes o binarios.
Una de las primeras necesidades (o caprichos) cuando instalé el simulador fue volar sobre [...]]]></description>
			<content:encoded><![CDATA[<p>Les dejo los tips que he aprendido sobre <a title="Página web de FlightGear" href="http://flightgear.org" target="_blank">FlighGear</a>. Para los que deseen este magnífico simulador de vuelo y usen Debian:</p>
<pre class="brush: bash;">aptitude install flightgear fgfs-base</pre>
<p>.Si se encuentran sobre otra plataforma ingresen en la página oficial del proyecto y descarguen las fuentes o binarios.</p>
<p>Una de las primeras necesidades (o caprichos) cuando instalé el simulador fue volar sobre Caracas, Venezuela y muchos otros lugares del mundo que llamaban mi atención. FlightGear, en su instalación por defecto, sólo incluye los mapas topográficos de San Francisco (específicamente de la bahía). Todos los escenarios de FlightGear se encuentran replicados en varios sitios (mirrors), pero tienes <a title="Escenario de FlightGear" href="http://flightgear.org/Downloads/scenery-1.0.0.html" target="_blank">una interfaz gráfica con el planeta</a> dividido en cuadros de 10&#215;10 grados, para descargarlo haces click en el recuadro que represente al escenario y para instalarlo:</p>
<ul>
<li>Ir al directorio raíz de FlightGear (en Debian <em>/usr/share/games/FlightGear</em>) e ingresar al directorio <em>Scenery</em>. Corrobora que tengas dos subdirectorios: <em>Objects</em> y <em>Terrain</em>.</li>
<li>En esencia debes incluir el mapa topográfico descargado dentro de estos subdirectorios, basta con hacer un:</li>
</ul>
<pre class="brush: bash;"> tar xvzf /RUTA-DONDE-HAYAS-DESCARGADO/w070n00.tgz</pre>
<ul>
<li>Corroborar (ej. con ls) que dentro de los subdirectorios <em>Objects</em> y <em>Terrain</em> se haya agregado el escenario.</li>
</ul>
<p>Para listar los aviones instalados y disponibles para volar:</p>
<pre class="brush: bash;">$ /usr/games/fgfs --show-aircraft</pre>
<p>Para iniciar el simulador con alguno de los aviones listados:</p>
<pre class="brush: bash;">$ /usr/games/fgfs --aircraft=AVION</pre>
<p>Para descargar más aviones ingresamos a la <a title="Descargar aviones" href="http://flightgear.org/Downloads/aircraft/" target="_blank">sección de descarga de aviones</a> y elegimos el que nos guste, lo descomprimimos y desempaquetamos para finalmente guardarlo en el subdirectorio<em> Aircraft</em> dentro del directorio raiz de FlightGear (de nuevo: en Debian <em>/usr/share/games/FlightGear</em>). Para corroborar que se incluyó al avión utilizamos el comando para listar los aviones disponibles.</p>
<p>Siempre que estemos volando no incomoda un mapa que indique nuestra posición, la ubicación de aeropuertos y radio-ayudas, así nos guiamos y orientamos en vuelo . Existe una aplicación, no incluida dentro de FlighGear pero si en Debian, llamada <a href="http://atlas.sourceforge.net/">Atlas</a> (<em>aptitude install fgfs-atlas</em>). Esta permite generar mapas con las elevaciones y en diferentes resoluciones de los escenarios que tenemos instalados.</p>
<p>Lo primero que debemos hacer es generar los mapas de los escenarios que poseemos instalados:</p>
<pre class="brush: bash;">$ /usr/games/Map --atlas=/opt/FlightGear/mapa-atlas/</pre>
<p>Se generarán todos los mapas en<em> /opt/FlightGear/mapa-atlas/ </em>(pueden escoger cualquier ruta). Ahora podemos observar el mapa utilizando Atlas:</p>
<pre class="brush: bash;">$ /usr/games/Atlas --path=/opt/FlightGear/mapa-atlas/</pre>
<p>El argumento <em>&#8211;path</em> debe ser la ruta donde guardaron los mapas generados. Una imagen ilustrativa:</p>
<p style="text-align: center;"><a href="http://blog.mogaal.com/wp-content/uploads/2008/10/atlas.png"><img class="size-medium wp-image-112 aligncenter" title="Atlas aplication" src="http://blog.mogaal.com/wp-content/uploads/2008/10/atlas-300x235.png" alt="" width="350" height="274" /></a></p>
<p>Esta es la forma de ejecutarlo individualmente, la idea es hacerlo junto con FlightGear para que muestre la posición de de nuestro avión y otras cosas más. Atlas trabaja bajo la arquitectura cliente servidor, por ende le debemos decir a FlighGear que inicie y envíe toda la la información relacionada con el vuelo usando el protocolo NMEA (Jojo, los GPS leen este protocolo <img src='http://blog.mogaal.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ) a través de algún puerto. Posteriormente le indicamos a Atlas que lea el flujo de datos a través del puerto y &#8220;grafique&#8221; dicha información en un mapa.</p>
<p>Iniciamos FlightGear:</p>
<pre class="brush: bash;">$ fgfs --aircraft=787-ANA --airport=SVMI --flight-plan=/tmp/SVMI-SVMD.pln --nmea=socket,out,0.5,127.0.0.1,8000,udp</pre>
<p>Ahora iniciamos Atlas y le indicamos como argumento que escuchará en el puerto 8000 UDP:</p>
<pre>$ /usr/games/Atlas --path=/opt/FlightGear/mapa-atlas/ <strong>--udp=8000 \
</strong>    --airport=SVMI --glutfonts --square</pre>
<p>Con esto ya deberíamos tener el mapa con nuestro : )</p>
<p>Otra características para jugar FlighGear es su modo <strong>multijugador</strong>, no necesitamos instalar nada, sólo ejecutarlo con los siguientes argumentos:</p>
<pre class="brush: bash;">$ fgfs --aircraft=b1900d --airport=KSFO --flight-plan=/tmp/KSFO-SVMD.pln --nmea=socket,out,0.5,127.0.0.1,8000,udp --callsign=NICK --multiplay=in,10,TU-DIRECCIÓN-IP,5000 --multiplay=out,10,mpserver02.flightgear.org,5000</pre>
<p>Donde <em>mpserver02.flightgear.org</em> es el servidor que utilizaremos, ¿Por qué uso mpserver02.flightgear.org y <a href="http://wiki.flightgear.org/index.php?title=Multiplayer_Howto#Using_the_Windows_launcher_.2F_fgrun" target="_self">no otro</a>? Porque es uno de los pocos que mantiene mi<a title="El tracker de vuelo de FlighGear" href="http://fgfs.i-net.hu/modules/fgtracker/"> <em>tracker</em> de vuelo</a>, así puedo tener registro de la cantidad de horas de vuelo (jugando multijugador, por supuesto), un mapa (utilizando google Maps) de las rutas que he seguido, mi altitud, velocidad, etc.</p>
<p>Una vez que iniciamos el simulador de vuelo con alguno de los servidores (no importa cual) podemos ver directamente nuestro avión junto con las demás personas que utilizan el modo multijugador desde googleMaps, esto ingresando mediante HTTP al servidor al cual nos hemos conectado (siguiendo el ejemplo sería <em>http://mpserver02.flightgear.org</em><em> )<br />
</em></p>
<p><strong>¿Cómo creo las rutas o planos de vuelo?</strong> Básicamente encontré una aplicación llamada <a class="l" onmousedown="return rwt(this,'','','res','1','AFQjCNE_QB-xZnUd22lxAV1O3hjpMIk0dQ','&amp;sig2=Z3ba_-dpYxokjIPl550V_Q')" href="http://sourceforge.net/projects/fgflightplanner/">Kelpie Flight Planner<em><em></em></em><em><em> </em></em>for FlightGear</a><span class="l"><em> </em></span>(hecha en Java :-/) que permite crear los planos de vuelo (.pln). Una vez generado el plan de vuelo le decimos al simulador mediante el argumento <em>&#8211;flight-plan</em> que los incluya.</p>
<p><strong>¿Qué no he logrado aún?</strong> Estoy buscando la forma de graficar sobre Atlas la<strong> ruta a seguir</strong> (sólo muestra la ruta seguida por el avión, más no la que debe seguir) según algún plan de vuelo especificado. Aún no lo he logrado, si alguien tiene idea de como hacerlo estaría muy agradecido : )</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mogaal.com/?feed=rss2&amp;p=111</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>OpenLDAP con TLS/SSLv3 y GNUTLS en Debian Lenny</title>
		<link>http://blog.mogaal.com/?p=105</link>
		<comments>http://blog.mogaal.com/?p=105#comments</comments>
		<pubDate>Mon, 08 Sep 2008 05:14:17 +0000</pubDate>
		<dc:creator>Alejandro</dc:creator>
				<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Software Libre y GNU/Linux]]></category>
		<category><![CDATA[SSL TLS OpenLDAP Debian GNUTLS]]></category>

		<guid isPermaLink="false">http://blog.mogaal.com/?p=105</guid>
		<description><![CDATA[Ya es una tendencia la implantación de GNUTLS para el uso de SSLv3 y TLS (&#62;1.0), se está intentando dejar de lado OpenSSL por todo aquello del célebre bug y sobre todo: por su respectiva licencia, considerada no gnu-compatible. Si el grupo de OpenSSL no cambia su licencia [0]  (específicamente su sexta sentencia) es probable [...]]]></description>
			<content:encoded><![CDATA[<p>Ya es una tendencia la implantación de <a title="Página oficial de GNUTLS" href="http://www.gnu.org/software/gnutls/" target="_blank">GNUTLS</a> para el uso de SSLv3 y TLS (&gt;1.0), se está intentando dejar de lado OpenSSL por todo aquello del <a title="Bug OpenSSL Debian" href="http://lists.debian.org/debian-security-announce/2008/msg00152.html" target="_blank">célebre bug</a> y sobre todo: por su respectiva <a title="Licencia OpenSSL" href="http://www.openssl.org/source/license.html" target="_blank">licencia</a>, considerada no <em>gnu-compatible</em>. Si el grupo de OpenSSL no cambia su licencia [0]  (específicamente su sexta sentencia) es probable que gran parte de los servicios comiencen a implantar GNUTLS y no OpenSSL.</p>
<p>Traigo el tema acotación porque hace pocos días tuve que instalar un servidor OpenLDAP + SSL/TLS y me tope con la sorpresa que en Debian lenny/SID este servicio (a partir de la versión 2.4.7) <a title="GNUTLS en OpenLDAP" href="http://bugs.debian.org/462588" target="_blank">utiliza GNUTLS y no OpenSSL</a>. Me di cuenta porque sucedía algo extraño al hacer uso de la típicas suites de <a title="ciphers" href="http://en.wikipedia.org/wiki/Cipher" target="_blank">cipher</a>&#8217;s que pose OpenSSL; no le daba la gana de iniciar al OpenLDAP, me retornaba con un error [1].</p>
<p><a title="Crear certificados con GNUTLS" href="http://blog.mogaal.com/?p=100" target="_blank">Hice un post</a> sobre como crear llaves y certificados con GNUTLS. Es bastante sencillo, de hecho me parece más simple crear certificados y llaves con GNUTLS que con OpenSSL. Apenas hay documentación sobre GNUTLS en la internet, aunque <strong>todo</strong> lo que podrías necesitar se encuentra en la <a title="Documentación oficial de GNUTLS" href="http://www.gnu.org/software/gnutls/manual/gnutls.html" target="_blank">documentación oficial</a>. ¿Entonces si poseo un OpenLDAP y lo actualizo a 2.4.7 no funcionará las conexiones seguras ni los certificados que poseía? Sí funcionan, lo único que debes cambiar son las cipher&#8217;s, para incluir las de GNUTLS, tampoco es tan trágico <img src='http://blog.mogaal.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' /> . Sin embargo, yo preferí crear mis certificados de nuevo.</p>
<p>Mi archivo de configuración quedó muy parecido al anterior:</p>
<pre class="brush: plain;">TLSCipherSuite TLS_RSA_AES_256_CBC_SHA
TLSCACertificateFile /etc/gnutls/CA/mogaalCA-cert.pem
TLSCertificateFile /etc/gnutls/ftp-cert.pem
TLSCertificateKeyFile /etc/gnutls/ftp-key.pem
TLSVerifyClient try</pre>
<p>Notar que lo único que cambia es el cipher y para saber todos los que podríamos utilizar:</p>
<pre class="brush: bash;"># gnutls-cli -l | grep -E &quot;^TLS&quot; | cut -d\  -f1 | xargs echo</pre>
<p>Para saber como crear los certificados y llaves con GNUTLS ver el post anterior.</p>
<p><strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</strong></p>
<p>[0] O se incluyen en las aplicaciones el <a title="Texto a incluír en los programas que usen SSL para considerarlos libres" href="http://lists.debian.org/debian-legal/2004/05/msg00595.html" target="_blank">respectivo texto</a> haciendo referencia a esa reestricción declarada en la licencia.</p>
<pre>[1] TLS: could not set cipher list HIGH:MEDIUM:+SSLv3:RSA.</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.mogaal.com/?feed=rss2&amp;p=105</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creación de certificados con GNUTLS</title>
		<link>http://blog.mogaal.com/?p=100</link>
		<comments>http://blog.mogaal.com/?p=100#comments</comments>
		<pubDate>Mon, 08 Sep 2008 04:44:14 +0000</pubDate>
		<dc:creator>Alejandro</dc:creator>
				<category><![CDATA[Software Libre y GNU/Linux]]></category>
		<category><![CDATA[GNUTLS Debian OpenSSL]]></category>

		<guid isPermaLink="false">http://blog.mogaal.com/?p=100</guid>
		<description><![CDATA[En muchos servicios se está comenzando a implantar el uso de GNUTLS. OpenSSL se esta dejando a un lado por todo aquello de su licencia y el célebre bug. Mientras OpenSSL no cambie su licencia se considerará no gnu-compatible (con algunas excepciones).
Esta pequeña guía sobre como crear certificados y llaves fue originalmente escrita para implementarla [...]]]></description>
			<content:encoded><![CDATA[<p>En muchos servicios se está comenzando a implantar el uso de <a title="Página oficial de GNUTLS" href="http://www.gnu.org/software/gnutls/" target="_blank">GNUTLS</a>. OpenSSL se esta dejando a un lado por todo aquello de <a title="Licencia OpenSSL" href="http://www.openssl.org/source/license.html" target="_blank">su licencia</a> y el <a title="Bug OpenSSL Debian" href="http://lists.debian.org/debian-security-announce/2008/msg00152.html" target="_blank">célebre bug</a>. Mientras OpenSSL no cambie su licencia se considerará no gnu-compatible (<a href="http://lists.debian.org/debian-legal/2004/05/msg00595.html" target="_blank">con algunas excepciones</a>).</p>
<p>Esta pequeña guía sobre como crear certificados y llaves fue originalmente escrita para implementarla sobre  OpenLDAP. Sin embargo realicé la misma prueba con los mismos certificados bajo apache2 y no ocurrió ningún problema, funcionó perfectamente.</p>
<p>Está demás acotar que debe estar instalada la herramienta. Opcional a esta instalaré su documentación, la cual me fue muy útil y recomiendo ojearla.</p>
<pre class="brush: bash;"># aptitude install gnutls-bin gnutls-doc</pre>
<p>Primero crearemos el directorio para almacenar todo lo relacionado a GNUTLS: llaves, certificados, etc. Arbitrariamente escogí trabajar bajo /etc/gnutls.</p>
<pre class="brush: bash;"># mkdir /etc/gnutls
# cd /etc/gnutls
# mkdir CA
# cd CA</pre>
<p>Utilizaremos la herramienta <em>certtool</em>, incluida en el paquete gnutls-bin y utilizada para generar llaves, certificados y muchas otras cosas más.</p>
<p>Primero que nada crearemos la llave y certificado para nuestra agente autorizadora (CA/Certificate Authority). Comenzaremos con la llave:</p>
<pre class="brush: bash;"># certtool  --generate-privkey --outfile mogaalCA-key.pem
Generating a 2048 bit RSA private key...</pre>
<p>Hemos creado la llave privada de la CA. Por defecto se genera con 2048 bits pero puede cambiarse utilizando la opción &#8211;bits (<em>man certtool</em> para más información)</p>
<p>Ahora debemos crear el certificado de la agente autorizadora y responder las respectivas preguntas, donde se indica &#8220;&lt;VACIO&gt;&#8221; no colocaremos nada y &#8220;&lt;POR DEFECTO&gt;&#8221; dejaremos el valor por defecto, que es lo mismo que presionar ENTER</p>
<pre class="brush: plain;">

# certtool --generate-self-signed --load-privkey mogaalCA-key.pem --outfile mogaalCA-cert.pem

Generating a self signed certificate...
Please enter the details of the certificate's distinguished name. Just press enter to ignore a field.
Country name (2 chars): VE
Organization name: Organizacion mogaal
Organizational unit name: Unidad de informatica
Locality name: Caracas
State or province name: Distrito Capital
Common name: mogaalCA
UID: &lt;VACIO&gt;
This field should not be used in new certificates.
E-mail: &lt;VACIO&gt;
Enter the certificate's serial number in decimal (default: 1220810245): &lt;POR DEFECTO&gt;

Activation/Expiration time.
The certificate will expire in (days): 3650

Extensions.
Does the certificate belong to an authority? (y/N): y
Path length constraint (decimal, -1 for no constraint): &lt;POR DEFECTO&gt;
Is this a TLS web client certificate? (y/N): N
Is this also a TLS web server certificate? (y/N): N
Enter the e-mail of the subject of the certificate: &lt;VACIO&gt;
Will the certificate be used to sign other certificates? (y/N): y
Will the certificate be used to sign CRLs? (y/N): y
Will the certificate be used to sign code? (y/N): y
Will the certificate be used to sign OCSP requests? (y/N): y
Will the certificate be used for time stamping? (y/N): y
Enter the URI of the CRL distribution point: &lt;VACIO&gt;
X.509 Certificate Information:
Version: 3
Serial Number (hex): 48c41605
Validity:
Not Before: Sun Sep 07 17:57:26 UTC 2008
Not After: Wed Sep 05 17:57:30 UTC 2018
Subject: C=VE,O=Organizacion mogaal,OU=Unidad de informática,L=Caracas,ST=Distrito Capital,CN=mogaalCA
Subject Public Key Algorithm: RSA
Modulus (bits 2048):
ae:d0:eb:9d:48:01:71:9f:cc:8a:eb:7f:45:40:59:56
2e:a7:87:e2:24:0c:d2:09:99:d0:8e:59:5f:c8:b5:e5
0c:b0:b2:28:c1:cd:51:15:37:5b:91:56:70:ab:12:a1
87:a2:be:42:3b:88:c9:0d:98:34:e9:8d:2e:47:ce:c7
e8:a3:d8:36:18:c7:7a:38:88:f0:da:54:58:71:8d:f9
56:16:a9:a3:2b:d2:95:07:8d:1e:e0:34:38:37:0c:2e
b9:ea:43:30:92:d5:01:40:eb:8a:1b:fd:b3:de:02:ec
d7:85:fc:49:6a:ad:71:c9:e9:a5:f4:65:db:d6:8d:2d
46:3f:77:04:d9:54:a0:24:aa:69:9b:6f:67:4b:ff:db
ef:2c:cd:10:d9:f6:5d:7a:4f:be:6d:79:fe:6e:b5:ed
ea:7b:33:8c:6d:2a:fd:67:7a:02:0c:72:62:68:64:d6
f7:b2:a2:c9:5c:70:d2:87:c9:86:56:bc:38:56:8c:f4
e3:d5:7a:82:01:6d:a6:7e:64:07:e4:86:44:3e:8f:a5
ab:dd:a3:dc:b5:40:1d:3d:9d:6b:f6:07:7c:d9:12:41
83:56:3e:8e:95:30:66:51:43:d3:f7:d3:e0:42:c2:f9
dd:df:bf:9a:b8:7f:68:2f:b4:3d:ef:41:11:2d:54:d9
Exponent:
01:00:01
Extensions:
Basic Constraints (critical):
Certificate Authority (CA): TRUE
Key Purpose (not critical):
Code signing.
OCSP signing.
Time stamping.
Key Usage (critical):
Certificate signing.
CRL signing.
Subject Key Identifier (not critical):
7064c80d3159e3b6c13e88d9330fd5a3fa3ed82d
Other Information:
Public Key Id:
7064c80d3159e3b6c13e88d9330fd5a3fa3ed82d

Is the above information ok? (Y/N): Y

Signing certificate...
</pre>
<p>Algo bastante interesante de certtool es que genera los certificados con los permisos correctos: 600 para la llave y 644 para el certificado, se puede corroborar con &#8220;ls -l&#8221;.</p>
<p>Ya terminamos con todo lo referente a la CA, es momento de ocuparnos de las llaves y los certificados para los servicios donde queramos implementarlos. A manera de información: para este tutorial se desea crear un certificado y llave para un servicio de OpenLDAP sobre Debian.</p>
<p>Procedemos a crear la llave privada:</p>
<pre class="brush: bash;"># cd /etc/gnutls
# certtool --generate-privkey --bits 2048 --outfile ldap-key.pem
Generating a 2048 bit RSA private key...</pre>
<p>Notar que para ser más ilustrativo decidí colocar manualmente la opción &#8211;bits. Ahora procedemos a generar el certificado asociado a la llave creada anteriormente.</p>
<pre class="brush: plain;">
# certtool --generate-certificate --load-privkey ldap-key.pem --outfile ldap-cert.pem --load-ca-certificate CA/mogaalCA-cert.pem --load-ca-privkey CA/mogaalCA-key.pem

Generating a signed certificate...
Please enter the details of the certificate's distinguished name. Just press enter to ignore a field.
Country name (2 chars): VE
Organization name: Organizacion mogaal
Organizational unit name: Informatic Unit
Locality name: Caracas
State or province name: Distrito Capital
Common name: ldap.mogaal.com (PENDIENTE AQUÍ, DEBE SER EL FQDN CORRECTO)
UID: &lt;VACIO&gt;
This field should not be used in new certificates.
E-mail: &lt;VACIO&gt;
Enter the certificate's serial number in decimal (default: 1220818030): &lt;POR DEFECTO&gt;

Activation/Expiration time.
The certificate will expire in (days): 365

Extensions.
Does the certificate belong to an authority? (y/N): N
Is this a TLS web client certificate? (y/N): N
Is this also a TLS web server certificate? (y/N): N
Enter the e-mail of the subject of the certificate:  &lt;VACIO&gt;
Will the certificate be used for signing (required for TLS)? (y/N): N
Will the certificate be used for encryption (not required for TLS)? (y/N): N
X.509 Certificate Information:
Version: 3
Serial Number (hex): 48c4346e
Validity:
Not Before: Sun Sep 07 20:07:10 UTC 2008
Not After: Mon Sep 07 20:07:14 UTC 2009
Subject: C=VE,O=Organizacion mogaal,OU=Informatic Unit,L=Caracas,ST=Distrito Capital,CN=ldap.mogaal.com
Subject Public Key Algorithm: RSA
Modulus (bits 2048):
c2:15:10:74:9d:28:8c:ca:0a:24:dc:55:ed:fe:4b:2e
42:00:64:c5:78:5b:85:f8:4c:5b:33:12:8c:50:33:48
2b:d6:e4:de:97:9b:31:42:14:8d:72:ee:e0:bc:8a:c0
40:4f:38:14:ee:1d:e4:e4:69:b3:75:a0:3a:9e:bd:5c
c7:e3:d4:84:fe:91:88:d9:4e:75:eb:70:4f:3a:c6:0f
67:04:9a:46:d0:17:b1:5d:68:f7:82:58:23:b6:2b:b6
43:84:ba:7c:93:64:54:9d:ce:f7:38:e2:f9:76:b0:b3
53:ed:33:f8:df:6e:00:cb:4e:b4:41:f3:e1:e6:00:8a
72:87:da:ec:b8:f2:82:da:f5:5e:71:24:fb:ef:8f:cc
99:92:32:53:b4:5b:96:63:81:81:f1:a0:a1:37:cf:5d
9b:0c:8d:87:be:08:b1:da:a0:36:93:65:38:c9:75:54
b2:98:d6:0f:b0:b9:a3:41:61:5c:96:c6:a8:52:80:8f
97:25:62:61:40:5d:02:66:ac:b7:c2:7e:5a:fb:d1:4e
23:3c:01:90:5d:b3:4c:d8:ca:1a:b1:3a:20:d3:4d:6d
8e:44:22:94:9b:a8:5a:33:8a:67:5d:99:3f:24:1e:14
1a:58:a5:3f:8e:5d:ec:9a:f7:62:ef:12:3d:3c:44:a7
Exponent:
01:00:01
Extensions:
Basic Constraints (critical):
Certificate Authority (CA): FALSE
Subject Key Identifier (not critical):
c31e0109afaf9942bf6cbdcad245efe96cb1f650
Authority Key Identifier (not critical):
0f0a96a7a9b3562a3c3b1d50f6c05dd98013d3e3
Other Information:
Public Key Id:
c31e0109afaf9942bf6cbdcad245efe96cb1f650

Is the above information ok? (Y/N): Y

Signing certificate...
</pre>
<p>Con esto concluye la creación de la llave y certificado para nuestro servidor. Debemos tener dos archivos:</p>
<ul>
<li><strong>ldap-key.pem</strong>: Es la llave, es generada con los permisos correctos (600: lectura y escritura para el propietario) mas no pertenece al usuario asociado al servicio (en nuestro caso openldap, o el que hayamos definido). Esto último es muy importante, normalmente creamos el certificado y la llave con el usuario root y nos desentenemos de los permisos: recomiendo estar muy pendiente de establecer el propietario la llave al terminar de generarla, ya que sino el servicio no podrá ni siquiera leerla.</li>
<li><strong>ldap-cert.pem</strong>: Este es el certificado, el cual distribuimos a los clientes.</li>
</ul>
<p>Para ver toda la información referente a nuestro certificado y corroborar su veracidad de la misma:</p>
<pre class="brush: plain;">
# certtool --certificate-info --infile ldap-cert.pem

X.509 Certificate Information:
Version: 3
Serial Number (hex): 48c4346e
Issuer: C=VE,O=Organizacion mogaal,OU=Unidad de informática,L=Caracas,ST=Distrito Capital,CN=mogaalCA
Validity:
Not Before: Sun Sep 07 20:07:10 UTC 2008
Not After: Mon Sep 07 20:07:14 UTC 2009
Subject: C=VE,O=Organizacion mogaal,OU=Informatic Unit,L=Caracas,ST=Distrito Capital,CN=ldap.mogaal.com
Subject Public Key Algorithm: RSA
Modulus (bits 2048):
c2:15:10:74:9d:28:8c:ca:0a:24:dc:55:ed:fe:4b:2e
42:00:64:c5:78:5b:85:f8:4c:5b:33:12:8c:50:33:48
2b:d6:e4:de:97:9b:31:42:14:8d:72:ee:e0:bc:8a:c0
40:4f:38:14:ee:1d:e4:e4:69:b3:75:a0:3a:9e:bd:5c
c7:e3:d4:84:fe:91:88:d9:4e:75:eb:70:4f:3a:c6:0f
67:04:9a:46:d0:17:b1:5d:68:f7:82:58:23:b6:2b:b6
43:84:ba:7c:93:64:54:9d:ce:f7:38:e2:f9:76:b0:b3
53:ed:33:f8:df:6e:00:cb:4e:b4:41:f3:e1:e6:00:8a
72:87:da:ec:b8:f2:82:da:f5:5e:71:24:fb:ef:8f:cc
99:92:32:53:b4:5b:96:63:81:81:f1:a0:a1:37:cf:5d
9b:0c:8d:87:be:08:b1:da:a0:36:93:65:38:c9:75:54
b2:98:d6:0f:b0:b9:a3:41:61:5c:96:c6:a8:52:80:8f
97:25:62:61:40:5d:02:66:ac:b7:c2:7e:5a:fb:d1:4e
23:3c:01:90:5d:b3:4c:d8:ca:1a:b1:3a:20:d3:4d:6d
8e:44:22:94:9b:a8:5a:33:8a:67:5d:99:3f:24:1e:14
1a:58:a5:3f:8e:5d:ec:9a:f7:62:ef:12:3d:3c:44:a7
Exponent:
01:00:01
Extensions:
Basic Constraints (critical):
Certificate Authority (CA): FALSE
Subject Key Identifier (not critical):
c31e0109afaf9942bf6cbdcad245efe96cb1f650
Authority Key Identifier (not critical):
0f0a96a7a9b3562a3c3b1d50f6c05dd98013d3e3
Signature Algorithm: RSA-SHA
Signature:
a0:3a:7e:65:51:6a:dc:0d:f1:1a:6e:e7:12:4b:7e:9c
48:8e:44:80:85:6e:4c:cf:58:65:af:4f:38:a3:46:b1
5f:f8:5a:86:55:20:59:f4:3b:cb:55:8c:07:9e:49:e6
71:07:00:82:09:05:06:5a:df:67:19:3f:b8:65:b3:45
9d:96:c7:d4:af:5b:dc:3d:40:d4:0e:fb:4b:3f:43:5d
51:af:0c:e0:4d:7f:47:9b:d2:0f:94:18:fd:0d:85:45
6f:fa:17:bd:0c:01:23:79:de:a6:3b:87:b4:56:be:1a
27:08:bf:0a:61:44:90:4a:f3:f7:8c:05:3a:a2:60:fb
38:a3:82:b8:4b:2a:3d:b3:ef:9b:6a:98:ca:ff:00:76
51:64:70:c8:aa:63:60:ba:fc:f1:36:e0:e3:e2:24:63
3c:45:56:7c:dd:b6:cd:45:d0:3c:88:a6:4e:77:00:13
53:c5:b7:ec:84:bf:1c:24:fe:67:40:aa:7a:f6:2c:08
36:d2:af:dc:fb:3b:38:a1:ed:96:35:79:ee:6b:c9:ee
db:29:3f:44:d1:36:a9:bf:d1:95:bf:7f:de:f1:19:8d
9a:2f:e2:63:c6:aa:96:55:8f:9c:b9:82:f1:b6:ab:b3
94:9e:12:ad:70:45:97:e0:f6:18:c0:06:98:18:65:8f
Other Information:
MD5 fingerprint:
06fd2a41364496645842a54ba10ed74a
SHA-1 fingerprint:
ceb2aafb5590762b3e678f82f373ac4f89db720a
Public Key Id:
c31e0109afaf9942bf6cbdcad245efe96cb1f650

-----BEGIN CERTIFICATE-----
MIID4TCCAsugAwIBAgIESMQ0bjALBgkqhkiG9w0BAQUwgYwxCzAJBgNVBAYTAlZF
MRwwGgYDVQQKExNPcmdhbml6YWNpb24gbW9nYWFsMR8wHQYDVQQLDBZVbmlkYWQg
ZGUgaW5mb3Jtw6F0aWNhMRAwDgYDVQQHEwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0
cml0byBDYXBpdGFsMREwDwYDVQQDEwhtb2dhYWxDQTAeFw0wODA5MDcyMDA3MTBa
Fw0wOTA5MDcyMDA3MTRaMIGMMQswCQYDVQQGEwJWRTEcMBoGA1UEChMTT3JnYW5p
emFjaW9uIG1vZ2FhbDEYMBYGA1UECxMPSW5mb3JtYXRpYyBVbml0MRAwDgYDVQQH
EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMRgwFgYDVQQDEw9s
ZGFwLm1vZ2FhbC5jb20wggEfMAsGCSqGSIb3DQEBAQOCAQ4AMIIBCQKCAQDCFRB0
nSiMygok3FXt/ksuQgBkxXhbhfhMWzMSjFAzSCvW5N6XmzFCFI1y7uC8isBATzgU
7h3k5GmzdaA6nr1cx+PUhP6RiNlOdetwTzrGD2cEmkbQF7FdaPeCWCO2K7ZDhLp8
k2RUnc73OOL5drCzU+0z+N9uAMtOtEHz4eYAinKH2uy48oLa9V5xJPvvj8yZkjJT
tFuWY4GB8aChN89dmwyNh74IsdqgNpNlOMl1VLKY1g+wuaNBYVyWxqhSgI+XJWJh
QF0CZqy3wn5a+9FOIzwBkF2zTNjKGrE6INNNbY5EIpSbqFozimddmT8kHhQaWKU/
jl3smvdi7xI9PESnAgMBAAGjUDBOMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFMMe
AQmvr5lCv2y9ytJF7+lssfZQMB8GA1UdIwQYMBaAFA8Klqeps1YqPDsdUPbAXdmA
E9PjMAsGCSqGSIb3DQEBBQOCAQEAoDp+ZVFq3A3xGm7nEkt+nEiORICFbkzPWGWv
TzijRrFf+FqGVSBZ9DvLVYwHnknmcQcAggkFBlrfZxk/uGWzRZ2Wx9SvW9w9QNQO
+0s/Q11RrwzgTX9Hm9IPlBj9DYVFb/oXvQwBI3nepjuHtFa+GicIvwphRJBK8/eM
BTqiYPs4o4K4Syo9s++bapjK/wB2UWRwyKpjYLr88Tbg4+IkYzxFVnzdts1F0DyI
pk53ABNTxbfshL8cJP5nQKp69iwINtKv3Ps7OKHtljV57mvJ7tspP0TRNqm/0ZW/
f97xGY2aL+JjxqqWVY+cuYLxtquzlJ4SrXBFl+D2GMAGmBhljw==
-----END CERTIFICATE-----
</pre>
<p>También es frecuente que queramos la llave y el certificado en un solo archivo, para eso ejecutamos:</p>
<pre class="brush: bash;"># cat ldap-cert.pem ldap-key.pem &gt; ldap.pem</pre>
<p>Si deseas implementar GNUTLS con apache:</p>
<pre class="brush: bash;"># aptitude install libapache2-mod-gnutls</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.mogaal.com/?feed=rss2&amp;p=100</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>De un .deb de i386/686 a un .deb de AMD64</title>
		<link>http://blog.mogaal.com/?p=94</link>
		<comments>http://blog.mogaal.com/?p=94#comments</comments>
		<pubDate>Mon, 08 Sep 2008 04:12:46 +0000</pubDate>
		<dc:creator>Alejandro</dc:creator>
				<category><![CDATA[Software Libre y GNU/Linux]]></category>
		<category><![CDATA[alien i386 AMD64 debian]]></category>

		<guid isPermaLink="false">http://blog.mogaal.com/?p=94</guid>
		<description><![CDATA[Hola, aquí les dejo un interesante truquillo: supongamos que descargaste un paquete/programa para Debian/Ubuntu (un .deb para acortar), está compilado para i386 y nuestra computadora es de arquitectura AMD64. Me sucedió esto con el paquete kompozer (lo que era antes NVU) y me dio mucha pereza compilarlo, entonces: ¿Qué hacer si no queremos bajarnos las [...]]]></description>
			<content:encoded><![CDATA[<p>Hola, aquí les dejo un interesante truquillo: supongamos que descargaste un paquete/programa para Debian/Ubuntu (un .deb para acortar), está compilado para i386 y nuestra computadora es de arquitectura AMD64. Me sucedió esto con el paquete kompozer (lo que era antes NVU) y me dio mucha pereza compilarlo, entonces: ¿Qué hacer si no queremos bajarnos las fuentes y compilar el programa?</p>
<p>Muy simple, debemos tener instalada la herramienta alien (aptitude install alien) y ejecutar lo siguiente:</p>
<p><code> # <strong>alien --to-tgz kompozer-0.7.10-i386.deb</strong><br />
kompozer-0.7.10.tgz generated</code></p>
<p><code> # <strong>alien --to-deb kompozer-0.7.10.tgz</strong><br />
kompozer_0.7.10-2_all.deb generated<br />
</code><br />
<code> # <strong>dpkg -i kompozer_0.7.10-2_all.deb</strong><br />
Selecting previously deselected package kompozer.<br />
(Reading database ... 186500 files and directories currently installed.)<br />
Unpacking kompozer (from kompozer_0.7.10-2_all.deb) ...<br />
Setting up kompozer (0.7.10-2) ...<br />
Processing triggers for man-db ...</code></p>
<p>Con esto ya tenemos nuestro paquete instalado y listo para poder funcionar. Creo que los comandos ejecutados son bastantes explícitos por si mismos para estar explicándolos</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mogaal.com/?feed=rss2&amp;p=94</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Virtualización completa en Debian/Ubuntu. (a.k.a KVM in Debian)</title>
		<link>http://blog.mogaal.com/?p=81</link>
		<comments>http://blog.mogaal.com/?p=81#comments</comments>
		<pubDate>Sun, 29 Jun 2008 06:03:52 +0000</pubDate>
		<dc:creator>Alejandro</dc:creator>
				<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Software Libre y GNU/Linux]]></category>

		<guid isPermaLink="false">http://blog.mogaal.com/?p=81</guid>
		<description><![CDATA[Recientemente adquirí una nueva computadora (HP Pavilion DV2840se) y esta me trajo Pacífica (de AMD): tecnología a nivel de procesador para virtualización completa/Nativa. Es mi primera computadora con esta característica, y como un niño con su nuevo juguete: la estoy aprovechando al máximo.
Para la mayoría de las nuevas tecnologías: si queremos utilizarlas en Linux es [...]]]></description>
			<content:encoded><![CDATA[<p>Recientemente adquirí una nueva computadora (<a href="http://www.google.co.ve/search?hl=es&amp;q=DV2840se&amp;btnG=Buscar&amp;meta=" target="_blank">HP Pavilion DV2840se</a>) y esta me trajo <a href="http://en.wikipedia.org/wiki/X86_virtualization" target="_blank">Pacífica</a> (de AMD): tecnología a nivel de procesador para<a href="http://es.wikipedia.org/wiki/Virtualizaci%C3%B3n" target="_blank"> virtualización completa/Nativa</a>. Es mi primera computadora con esta característica, y como un niño con su nuevo juguete: la estoy aprovechando al máximo.</p>
<p>Para la mayoría de las nuevas tecnologías: si queremos utilizarlas en Linux es frecuente que debamos compilar su respectivo módulo en el kernel para darle soporte. <a href="http://es.wikipedia.org/wiki/Kernel-based_Virtual_Machine" target="_blank">KVM (Kernel-based Virtual Machine)</a> es un módulo para el kernel que permite utilizar tecnologías de Virtualización VanderPool y Pacífica, de Intel y AMD respectivamente. Las últimas versiones del kernel (&gt; 2.6.20) traen el módulo incorporado. Los kernels precompilados para Debian también traen incluido el módulo KVM.</p>
<p><em>¿Cómo verificar que tenemos -soporte- para virtualización en nuestro procesador?</em></p>
<pre style="padding-left: 30px;"><strong>egrep '^flags.*(vmx|svm)' /proc/cpuinfo</strong></pre>
<p>(son comillas <strong>simples</strong>, no esas que coloca el blog&#8230;)</p>
<p>Si nos retorna vacío: lamentablemente nuestro procesador no soporta Virtualización completa. La mayoría de las computadoras traen desactivado el soporte para virtualización (por ejemplo la mía), por lo que no debemos olvidar activarlo en el BIOS, sino obtendremos un error [1] cargando el módulo de KVM.</p>
<p>Ahora debemos compilar el módulo de KVM para nuestro kernel. Como mencioné: muchos de los kernels precompilados traen KVM, sin embargo prefiero compilarlo desde las fuentes (muy sencillo con module-assistant). Si optamos por la última disyuntiva no olvidemos eliminar el módulo que ya posee nuestro kernel para KVM, sino entrará en conflicto con el que compilemos y nos generará error [1].</p>
<pre style="padding-left: 30px;"><strong> </strong>#<strong> rmmod kvm</strong></pre>
<p>Ahora instalamos las fuentes de KVM y las compilamos (recordar que para compilar cualquier módulo debes tener las headers de tu kernel y module-assistand):</p>
<pre style="padding-left: 30px;">#<strong> aptitude install linux-headers-`uname -r` module-assistant</strong></pre>
<pre style="padding-left: 30px;">#<strong> aptitude install kvm-source</strong></pre>
<pre style="padding-left: 30px;">#<strong> m-a a-i kvm</strong></pre>
<p>Si no hemos obtenido error alguno la compilación e instalación de KVM tuvo éxito. Lo podemos corroborar esto verificando si se agregaron los tres típicos módulos al kernel:</p>
<pre style="padding-left: 30px;"># <strong>modprobe -l | grep kvm</strong></pre>
<pre style="padding-left: 30px;">/lib/modules/2.6.25-2-amd64/misc/kvm.ko</pre>
<pre style="padding-left: 30px;">/lib/modules/2.6.25-2-amd64/misc/kvm-intel.ko</pre>
<pre style="padding-left: 30px;">/lib/modules/2.6.25-2-amd64/misc/kvm-amd.ko</pre>
<p>Tengo tres módulos, de los cuales haré uso de dos (kvm-intel es para computadoras con VenderPool: intel). Por último debemos instalar el paquete KVM: Realmente es un qemu para x86 con otro nombre. Instalamos el paquete kvm y cargamos los respectivos módulos</p>
<pre style="padding-left: 30px;">#<strong> aptitude install kvm</strong></pre>
<pre style="padding-left: 30px;"># <strong>modprobe kvm kvm-amd</strong></pre>
<p>Este es todo el proceso, si hemos llegado hasta aquí sin ningún problema: ya podemos hacer uso de KVM.</p>
<h3 style="text-align: center;">¿Cómo usarlo?</h3>
<p>Igual que usamos qemu. No les metí cuando le dije que era un qemu para x86 con otro nombre haciendo uso de /dev/kvm. Primero creamos nuestra imagen que contendrá el sistema operativo:</p>
<pre style="padding-left: 30px;"><strong>kvm-img create -f qcow mi-debian.img 2G</strong></pre>
<p>Seguidamente buscamos nuestro CD de Debian/Fedora/Distro que queramos instalar, lo colocamos en la unidad de CDROM y ejecutamos:</p>
<pre style="padding-left: 30px;"><strong>kvm -hda mi-debian.img -cdrom /dev/cdrom -boot d -m 256</strong></pre>
<p>Si carecemos del CD con el sistema operativo, pero tenemos una imagen .iso:</p>
<pre style="padding-left: 30px;"><strong>kvm -hda mi-debian.img -cdrom /ruta/de/mi/iso/debian.iso -boot d -m 256</strong></pre>
<p>Si quieren más información busquen un tutorial de qemu, es el mismo qemu renombrado a KVM.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
[1] Este error aplica para cuando no tenemos activado el soporte para virtualización en el BIOS y para cuando entran en conflicto el módulo que ya trae el kernel y el que compilamos nosotros:</p>
<p><em>FATAL: Error inserting kvm_amd<br />
(/lib/modules/2.6.25-2-amd64/misc/kvm-amd.ko): Unknown symbol in<br />
module, or unknown parameter (see dmesg)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mogaal.com/?feed=rss2&amp;p=81</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Instalando Care2x en Debian.</title>
		<link>http://blog.mogaal.com/?p=80</link>
		<comments>http://blog.mogaal.com/?p=80#comments</comments>
		<pubDate>Sat, 28 Jun 2008 21:35:20 +0000</pubDate>
		<dc:creator>Alejandro</dc:creator>
				<category><![CDATA[Software Libre y GNU/Linux]]></category>
		<category><![CDATA[care2x]]></category>

		<guid isPermaLink="false">http://blog.mogaal.com/?p=80</guid>
		<description><![CDATA[Care2x es una aplicación médica que integra datos, funciones y flujo de tareas en un entorno de cuidados de la salud, un típico sistema de información para los hospitales. Es bastante antigua y está desarrollada para ser usada con PHP4, apache1.X (funciona también con apache2) y MySQL 3.2x &#8211; 4.0.x (también es factible utilizar PostgreSQL).
Instalarla [...]]]></description>
			<content:encoded><![CDATA[<p>Care2x es una aplicación médica que integra datos, funciones y flujo de tareas en un entorno de cuidados de la salud, un típico sistema de información para los hospitales. Es bastante antigua y está desarrollada para ser usada con PHP4, apache1.X (funciona también con apache2) y MySQL 3.2x &#8211; 4.0.x (también es factible utilizar PostgreSQL).</p>
<p>Instalarla en Debian fue bastante tedioso porque no encontraba alternativa al gran <a href="http://www.mail-archive.com/care2002-developers@lists.sourceforge.net/msg03700.html" target="_blank">bug</a> que genera una violación de segmento post-instalación y hace a la aplicación inutilizable (ni siquiera se puede ver el<em> index.php </em>de la aplicación principal). Por eso les explicaré como son los pasos para instalar la aplicación.</p>
<p>La última versión (2.5-RC2) es la que posee el bug mencionado anteriormente, por lo que nos olvidaremos de ella. Tendremos que utilizar una versión un poco más vieja: la <span style="text-decoration: underline;">2.4-RC2</span> a mi me funcionó bien. Para descargarla nos vamos a la <a title="Página del proyecto Care2x" href="http://sourceforge.net/projects/care2002/" target="_blank">página del proyecto</a> y buscamos el instalador para Linux (de la versión 2.4-RC2 obviamente). No utilizaremos el paquete para Debian porque es aún más viejo (miren la fecha de release y la versión, data de hace casi 5 años).</p>
<p>Debemos tener instalados todos los requerimientos del sistema que mencioné al comienzo:</p>
<pre class="brush: bash;"># aptitude install apache2 libapache2-mod-php4 php4 php4-mysql php4-gd mysql-server-4.1</pre>
<p>Una vez hecho eso no olvidemos asignarle clave al usuario administrador del MySQL, para esto:</p>
<pre class="brush: bash;">mysqladmin -u root password 'TU-CLAVE'</pre>
<p>Sea donde hayamos guardado la el instalador para Linux de Care2x sólo falta ejecutarlo:</p>
<pre class="brush: plain;"> ./care2x_v2.4_RC2-Linux-x86-Install --prefix /var/www

This will install Care2x-HIS on your computer.  Continue? [n/Y] Y

Where do you want to install Care2x-HIS? [/var/www] &lt;ENTER&gt;

Installing Care2x-HIS...
Installing Program Files...
Installation complete.</pre>
<p>Podemos corroborar la instalación listando el directorio /var/www. No olvidar asignar los respectivos usuarios y grupos bajo/var/www:</p>
<pre class="brush: bash;"># chown -R www-data.www-data /var/www/</pre>
<p>Una vez hecho esto nos dirigimos a un navegador y abrimos:</p>
<pre class="brush: bash;">http://MAQUINA-DONDE-LO-INSTALAMOS/installer</pre>
<p>Finalmente respondemos el formulario de preguntas.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mogaal.com/?feed=rss2&amp;p=80</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Cambio&#8221; para Brain Age 2 en nintendo DS</title>
		<link>http://blog.mogaal.com/?p=79</link>
		<comments>http://blog.mogaal.com/?p=79#comments</comments>
		<pubDate>Mon, 04 Feb 2008 04:37:18 +0000</pubDate>
		<dc:creator>Alejandro</dc:creator>
				<category><![CDATA[No se donde ponerlo]]></category>
		<category><![CDATA[monedas cambio brain age 2 nintendo ds]]></category>

		<guid isPermaLink="false">http://blog.mogaal.com/?p=79</guid>
		<description><![CDATA[Esta navidad le regalaron a mi hermanita un Nintendo DS, en lo poco que lo he jugado he notado que es una consola orientada más para adultos/jovenes que para niños, especialmente por la dinámica de los juegos. Sin mucho que detallar uno de mis juegos favoritos es Brain Age 2, y para las personas que [...]]]></description>
			<content:encoded><![CDATA[<p>Esta navidad le regalaron a mi hermanita un Nintendo DS, en lo poco que lo he jugado he notado que es una consola orientada más para adultos/jovenes que para niños, especialmente por la dinámica de los juegos. Sin mucho que detallar uno de mis juegos favoritos es Brain Age 2, y para las personas que les confunda el valor de las monedas en &#8220;Devuelve cambio&#8221; aquí les dejo la chuleta:</p>
<p><a href="http://blog.mogaal.com/wp-content/uploads/2008/02/brainage2.jpg" title="Screenshot Brain Age 2"><img src="http://blog.mogaal.com/wp-content/uploads/2008/02/brainage2.jpg" alt="Screenshot Brain Age 2" /></a></p>
<ul>
<li>La moneda superior izquierda: 25 centavos</li>
<li>La moneda superior derecha: 10 centavos</li>
<li>La moneda inferior izquierda: 5 centavos</li>
<li>La moneda inferior derech: 1 centavo</li>
</ul>
<p>Espero que les sirva.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mogaal.com/?feed=rss2&amp;p=79</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>
