<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>La Bitácora de Gabriel</title>
	<atom:link href="http://labitacoradegabriel.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://labitacoradegabriel.wordpress.com</link>
	<description>Diario de un Informático</description>
	<lastBuildDate>Wed, 25 Jan 2012 02:25:48 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='labitacoradegabriel.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/54391a3a1ec4799bffe619ee8f491e75?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>La Bitácora de Gabriel</title>
		<link>http://labitacoradegabriel.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://labitacoradegabriel.wordpress.com/osd.xml" title="La Bitácora de Gabriel" />
	<atom:link rel='hub' href='http://labitacoradegabriel.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Instalación de Teambox en openSUSE</title>
		<link>http://labitacoradegabriel.wordpress.com/2011/05/04/instalacion-de-teambox-en-opensuse/</link>
		<comments>http://labitacoradegabriel.wordpress.com/2011/05/04/instalacion-de-teambox-en-opensuse/#comments</comments>
		<pubDate>Wed, 04 May 2011 19:01:52 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[Gestion de Proyectos]]></category>
		<category><![CDATA[Herramienta Web]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[Teambox]]></category>

		<guid isPermaLink="false">http://labitacoradegabriel.wordpress.com/?p=1461</guid>
		<description><![CDATA[En mi búsqueda de una herramienta web que permitiese gestionar nuestros objetivos, actividades, inversión de horas de trabajo, etc. he encontrado y probado Teambox. Esta es una excelente herramienta para la gestión de proyectos de desarrollo colaborativo, cuenta con una interfaz simple orientado a redes sociales, su principal función es la administración de tareas entre [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=1461&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">En mi búsqueda de una herramienta web que permitiese gestionar nuestros objetivos, actividades, inversión de horas de trabajo, etc. he encontrado y probado <strong>Teambox</strong>.</p>
<p style="text-align:justify;">Esta es una excelente herramienta para la gestión de proyectos de desarrollo colaborativo, cuenta con una interfaz simple orientado a redes sociales, su principal función es la administración de tareas entre los miembros del equipo de trabajo, mantener registro de la duración de tiempo de las actividades, permite crear wiki&#8217;s, compartir archivos, realizar comentarios, entre otras funcionalidades muy útiles. Para conocer más información sobre la misma pueden visitar <strong><a href="http://teambox.com/es/quienes-somos" target="_blank">este enlace</a></strong>.</p>
<h2 style="text-align:justify;">Requisitos de Instalación</h2>
<ol style="text-align:justify;">
<li>Debemos tener instalados una serie de paquetes que son fundamentales para poder ejecutar la aplicación web, entre ellos se destacan los paquetes relacionados con el lenguaje de programación <strong>Ruby</strong>, su sistema de gestión de dependencias y el módulo para <strong>Apache</strong>. El comando de instalación es el siguiente:
<pre><strong><span style="color:#ff0000;">fireserver:~ #</span> zypper install libxml2 libxml2-devel libxslt libxslt-devel mysql-community-server libmysqld-devel sqlite3 sqlite3-devel postgresql-devel apache2 apache2-devel apache2-prefork libcurl-devel ImageMagick ImageMagick-devel git gcc gcc-c++ ruby rubygems rubygem-passenger rubygem-passenger-apache2 rubygem-passenger-nginx</strong></pre>
</li>
<li><strong>Teambox</strong> soporta múltiples bases de datos, sin embargo, para este ejemplo he utilizado <strong>MySQL</strong> instalado en el mismo servidor. La guía de pasos de instalación y configuración de <strong>MySQL</strong> para <strong>openSUSE</strong> se encuentra documentada en <a href="http://labitacoradegabriel.wordpress.com/2010/04/02/mysql-y-phpmyadmin-en-opensuse/" target="_blank"><strong>este artículo</strong></a>.</li>
</ol>
<h2 style="text-align:justify;">Instalación y Configuración de la Herramienta Teambox</h2>
<ol style="text-align:justify;">
<li>Para este ejemplo la instalación de la herramienta web <strong>Teambox</strong> se va a llevar a cabo en el directorio <strong>/opt</strong>, para ello nos debemos ubicar en dicho directorio.
<pre><strong><span style="color:#ff0000;">fireserver:~ #</span> cd /opt/</strong>
<span style="color:#ff0000;"><strong>fireserver:/opt #</strong></span></pre>
</li>
<li>Obtenemos el código fuente y las dependencias clonando el proyecto a partir de <a href="https://github.com/" target="_blank"><strong>Github</strong></a>.
<pre><strong><span style="color:#ff0000;">fireserver:/opt #</span> git clone git://github.com/teambox/teambox.git</strong></pre>
</li>
<li>Una vez concluida la descarga accedemos al directorio <strong>teambox </strong>creado en el paso anterior.
<pre><strong><span style="color:#ff0000;">fireserver:/opt #</span> cd teambox/</strong>
<span style="color:#ff0000;"><strong>fireserver:/opt/teambox #</strong></span></pre>
</li>
<li>Dentro del directorio <strong>teambox</strong> debemos elegir la rama de desarrollo que queremos instalar, ya que el código fuente dispone dos opciones, una rama estable llamada <strong>master</strong> ideal para entornos de producción y otra rama más inestable en estado de desarrollo pero con las últimas funcionalidades llamada <strong>dev</strong>. En esta guía voy a utilizar la rama <strong>master </strong>que es la que mejor se adecua a nuestras necesidades laborales, a nuestro entorno de producción:
<pre><strong><span style="color:#ff0000;">fireserver:/opt/teambox #</span> git checkout master</strong></pre>
</li>
<li>Necesitamos instalamos la aplicación <strong>bundler</strong> mediante el gestor de paquetes de <strong>Ruby</strong> llamado <strong>gem</strong>:
<pre><strong><span style="color:#ff0000;">fireserver:/opt/teambox #</span> gem install bundler</strong></pre>
</li>
<li>Pasamos a instalar todas las <strong>gemas ruby</strong> que requiere la herramienta <strong>Teambox</strong> para su funcionamiento (<em>dependiencias</em>), esto lo realizamos ejecutando el siguiente comando:
<pre><strong><span style="color:#ff0000;">fireserver:/opt/teambox #</span> bundle install --deployment</strong></pre>
</li>
<li>El siguiente paso es dirigirnos al directorio <strong>/opt/teambox/config</strong> y crear el archivo con las especificaciones necesarias para la configuración de la base de datos llamado <strong>database.yml</strong> a partir del archivo plantilla llamado <strong>database.example.yml</strong>.
<pre><strong><span style="color:#ff0000;">fireserver:~ #</span> cd /opt/teambox/config/</strong>
<strong><span style="color:#ff0000;">fireserver:/opt/teambox/config #</span> cp database.example.yml database.yml</strong></pre>
</li>
<li>Luego procedemos a editar el nuevo archivo <strong>database.yml</strong>:
<pre><strong><span style="color:#ff0000;">fireserver:/opt/teambox/config #</span> vi database.yml</strong></pre>
<p>y configuramos la directiva <strong>password</strong> para la sección <strong>production</strong>, debería quedar similar a lo que sigue:</p>
<pre><strong>production:</strong>
<strong> adapter: mysql</strong>
<strong> host: localhost</strong>
<strong> username: root</strong>
<strong> password: <span style="color:#ff0000;">contraseña_usuario_root</span></strong>
<strong> database: teambox2_production</strong></pre>
</li>
<li>Ahora procedemos a crear la base de datos y sus respectivas tablas para la herramienta<strong> Teambox</strong> en <strong>MySQL</strong> (<em>que debe estar ejecutándose, lista para usarse</em>), esto lo hacemos ejecutando el siguiente comando en el directorio <strong>/opt/teambox</strong>.
<pre><strong><span style="color:#ff0000;">fireserver:~ #</span> cd /opt/teambox</strong>
<strong><span style="color:#ff0000;">fireserver:/opt/teambox #</span> bundle exec rake db:create db:schema:load RAILS_ENV=production</strong></pre>
</li>
<li>Luego pasamos a configurar la propia herramienta <strong>Teambox</strong> mediante su archivo de configuración <strong>teambox.yml</strong> ubicado en el directorio <strong>/opt/teambox/config</strong>. Primero editamos el archivo de configuración:
<pre><strong><span style="color:#ff0000;">fireserver:~ #</span> vi /opt/teambox/config/teambox.yml</strong></pre>
<p>Una vez dentro del archivo configuramos las siguientes directivas:</p>
<pre><strong>app_domain: <span style="color:#ff0000;">teambox.mi_dominio.local</span></strong>
<strong>time_zone: <span style="color:#ff0000;">Georgetown</span></strong>
<strong>default_locale: <span style="color:#ff0000;">:es</span></strong>
<strong>smtp_settings:</strong>
<strong> :domain: <span style="color:#ff0000;">gmail.com</span></strong>
<strong> :address: <span style="color:#ff0000;">smtp.gmail.com</span></strong>
<strong> :port: <span style="color:#ff0000;">587</span></strong>
<strong> :authentication: :plain</strong>
<strong> :user_name: <span style="color:#ff0000;">nombre_usuario@gmail.com</span></strong>
<strong> :password: <span style="color:#ff0000;">contraseña_usuario</span></strong>
<strong> :enable_starttls_auto: <span style="color:#ff0000;">true</span></strong></pre>
<p>Entre las configuraciones más importantes se destacan la directiva <strong>app_domain</strong> y las configuraciones de las subdirectivas <strong>smtp_settings</strong>, esta últimas permiten definir el servidor <strong>smtp</strong> mediante el cual la herramienta enviará las notificaciones por correo electrónico. Finalmente guardamos los cambios y salimos del archivo de configuración con lo cual culminamos con la configuración de la herramienta <strong>Teambox</strong>.</li>
</ol>
<h2 style="text-align:justify;">Configuración de Apache</h2>
<ol style="text-align:justify;">
<li>Lo primero que debemos hacer es habilitar el módulo <strong>passenger</strong> de <strong>Ruby</strong> para que<strong> Apache</strong> pueda ejecutar la herramienta web <strong>Teambox</strong>, para ello editamos el archivo <strong>/etc/sysconfig/apache2</strong>:
<pre><strong><span style="color:#ff0000;">fireserver:~ #</span> vi /etc/sysconfig/apache2</strong></pre>
</li>
<li>Una vez en el archivo de configuración buscamos la directiva <strong>APACHE_MODULES</strong>  y al final de la lista le agregamos el módulo <strong>passenger</strong>, debería quedar similar a lo que sigue:
<pre><strong>APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl userdir php5 <span style="color:#ff0000;">passenger</span>"</strong></pre>
</li>
</ol>
<h3 style="text-align:justify;">Acceso mediante hosts virtuales</h3>
<p style="text-align:justify;">Si deseamos que <strong>Apache</strong> sirva el sitio web de <strong>Teambox</strong> a través de un nombre de dominio totalmente cualificado (<em>FQDN: Fully Qualified Domain Name</em>) resuelto a través de servidores de nombres (<em>DNS</em>) internos o externos podemos configurar un host virtual para dicho fin. Para ello podemos seguir los siguientes pasos:</p>
<ol style="text-align:justify;">
<li>Nos dirigimos al directorio <strong>/etc/apache2/vhosts.d</strong> y creamos un nuevo archivo llamado <strong>vhost.conf</strong>:
<pre><strong><span style="color:#ff0000;">fireserver:~ #</span> cd /etc/apache2/vhosts.d</strong>
<strong><span style="color:#ff0000;">fireserver:/etc/apache2/vhosts.d #</span> touch vhost.conf</strong></pre>
</li>
<li>Editamos el archivo con nuestro editor de texto preferido..
<pre><strong><span style="color:#ff0000;">fireserver:/etc/apache2/vhosts.d #</span> vi vhost.conf</strong></pre>
<p>Y luego agregamos las siguientes directivas:</p>
<pre># -- ES NECESARIO DEFINIR LA DIRECTIVA NameVirtualHost CUANDO
# SE CONFIGURAN HOSTS VIRTUALES BASADOS EN NOMBRES.
<strong>NameVirtualHost *:80</strong>

# -- CONFIGURACION DEL HOST VIRTUAL POR DEFECTO, QUE APUNTA
# A LA RUTA TRADICIONAL.
<strong>&lt;VirtualHost *:80&gt;</strong>
<strong>    ServerName <span style="color:#ff0000;">fireserver</span></strong>
<strong>    ServerAlias <span style="color:#ff0000;">fireserver *.fireserver</span></strong>
<strong>    DocumentRoot /srv/www/htdocs</strong>
<strong>&lt;/VirtualHost&gt;</strong>

# -- CONFIGURACION DEL VIRTUAL HOST PARA TEAMBOX
<strong>&lt;VirtualHost *:80&gt;</strong>
<strong>    Options +Indexes</strong>
<strong>    ServerAdmin <span style="color:#ff0000;">nombre_usuario@gmail.com</span></strong>
<strong>    ServerName <span style="color:#ff0000;">teambox</span></strong>
<strong>    ServerAlias <span style="color:#ff0000;">teambox.mi_dominio.local *.teambox.mi_dominio.local teambox *.teambox</span></strong>
<strong>    DocumentRoot <span style="color:#ff0000;">/opt/teambox/public</span></strong>
<strong>    RailsEnv production</strong>

<strong>    &lt;Directory "<span style="color:#ff0000;">/opt/teambox/public</span>"&gt;</strong>
<strong>        Options Indexes FollowSymLinks</strong>
<strong>        AllowOverride All</strong>
<strong>        Order allow,deny</strong>
<strong>        Allow from all</strong>
<strong>        Options -MultiViews</strong>
<strong>    &lt;/Directory&gt;</strong>
<strong>&lt;/VirtualHost&gt;</strong></pre>
</li>
<li>Con esto ya tenemos el servidor web configurado con soporte virtual host.</li>
</ol>
<h3 style="text-align:justify;">Acceso mediante subdirectorio</h3>
<p style="text-align:justify;">Una opción alternativa a la configuración de host virtual de <strong>Apache</strong> para desplegar <strong>Teambox</strong> es utilizar una configuración más tradicional definiendo el acceso a dicha herramienta a través de un subdirectorio posterior al dominio o dirección IP de nuestro servidor web.</p>
<ol style="text-align:justify;">
<li>Como primer paso, nos dirigimos al directorio <strong>/etc/apache2/conf.d</strong> y creamos un nuevo archivo llamado <strong>teambox.conf</strong>:
<pre><strong><span style="color:#ff0000;">fireserver:~ #</span> cd /etc/apache2/conf.d</strong>
<strong><span style="color:#ff0000;">fireserver:/etc/apache2/conf.d #</span> touch teambox.conf</strong></pre>
</li>
<li>Editamos el archivo<strong> teambox.conf</strong>:
<pre><strong><span style="color:#ff0000;">fireserver:/etc/apache2/conf.d #</span> vi teambox.conf</strong></pre>
<p>Y le agregamos la siguiente configuración:</p>
<pre># -- ALIAS DEL SUBDIRECTORIO APUNTANDO A LA RUTA REAL DE
# LA HERRAMIENTA TEAMBOX.
<strong>Alias <span style="color:#ff0000;">/teambox /opt/teambox/public</span></strong>

# -- DEFINICION DEL ENTORNO RAILS.
<strong>RailsEnv production</strong>
<strong>RailsBaseURI <span style="color:#ff0000;">/teambox</span></strong>

# -- CONFIGURACIONES DEL DIRECTORIO DE TRABAJO.
<strong>&lt;Directory "<span style="color:#ff0000;">/opt/teambox/public</span>"&gt;</strong>
<strong>    Options -MultiViews +FollowSymLinks +SymLinksIfOwnerMatch</strong>
<strong>    AllowOverride All</strong>
<strong>    Order allow,deny</strong>
<strong>    Allow from all</strong>
<strong>&lt;/Directory&gt;</strong></pre>
</li>
<li>Creamos un enlace simbólico del directorio <strong>/opt/teambox/public</strong> al directorio <strong>/srv/www/htdocs</strong>:
<pre><strong><span style="color:#ff0000;">fireserver:/etc/apache2/conf.d #</span> ln -s /opt/teambox/public/ /srv/www/htdocs/teambox</strong></pre>
</li>
<li>Para utilizar este método debemos ajustar la configuración de la herramienta web <strong>Teambox</strong>, específicamente la directiva <strong>app_domain</strong> del archivo <strong>/opt/teambox/config/teambox.yml</strong> deberá ser configurada con el dominio basado en subdirectorios. Para ello editamos nuevamente el archivo <strong>/opt/teambox/config/teambox.yml</strong>:
<pre><strong><span style="color:#ff0000;">fireserver:/etc/apache2/conf.d #</span> vi /opt/teambox/config/teambox.yml</strong></pre>
<p>y configuramos la directiva <strong>app_domain </strong>de forma parecida a lo que se muestra a continuación<strong>:</strong></p>
<pre><strong>app_domain: ip_o_nombre_dominio_servidor/teambox/</strong></pre>
<p>Guardamos los cambios y salimos del archivo para continuar con otras configuraciones.</li>
</ol>
<h3 style="text-align:justify;">Configuración de los niveles de ejecución y arranque del servicio web Apache:</h3>
<ol style="text-align:justify;">
<li>Activamos los niveles de ejecución para el servicio <strong>apache2</strong> de la siguiente manera:
<pre><strong><span style="color:#ff0000;">fireserver:~ #</span> chkconfig --add apache2</strong></pre>
</li>
<li>Luego procedemos a iniciar (<em>o reiniciar si ya se estaba ejecutando</em>) el servicio <strong>apache2</strong> con el siguiente comando:
<pre><strong><span style="color:#ff0000;">fireserver:~ #</span> service apache2 start</strong></pre>
</li>
</ol>
<h2 style="text-align:justify;">Configuración del Cortafuegos</h2>
<ol style="text-align:justify;">
<li>Para que podamos acceder a la herramienta desde otro equipo remoto necesitamos abrir los puertos <strong>HTTP (80)</strong> y <strong>HTTPS (443)</strong> en el firewall del servidor<strong>, </strong>para ello editamos el archivo <strong>SuSEfirewall2</strong> del directorio <strong>/etc/sysconfig</strong>:
<pre><strong><span style="color:#ff0000;">fireserver:~ #</span> vi /etc/sysconfig/SuSEfirewall2</strong></pre>
<p>y le asignamos los servicios <strong>apache2</strong> y <strong>apache2-ssl</strong> a la directiva <strong>FW_CONFIGURATIONS_EXT</strong> como se muestra a continuación:</p>
<pre><strong>FW_CONFIGURATIONS_EXT="sshd <span style="color:#ff0000;">apache2 apache2-ssl</span>"</strong></pre>
</li>
<li>Luego reiniciamos el cortafuegos para que la nueva configuración tome efecto, lo realizamos con el siguiente comando:
<pre><strong><span style="color:#ff0000;">fireserver:~ #</span> rcSuSEfirewall2 restart</strong></pre>
</li>
</ol>
<h2 style="text-align:justify;">Acceso a Teambox</h2>
<ol style="text-align:justify;">
<li>Si para acceder a la herramienta<strong></strong> <strong>Teambox</strong> hemos configurado el servicio <strong>Apache</strong> con virtual hosts, debemos utilizar el nombre de dominio totalmente cualificado que hemos definido y que debe ser correctamente resueltos por algún servidor <strong>DNS</strong> o mediante alguna entrada al archivo <strong>/etc/hosts</strong> en la máquina cliente que se trata de conectar a la herramienta. Como ejemplo podríamos tener la siguiente <strong>URL</strong>:
<pre><strong>http://teambox.mi_dominio.local</strong></pre>
</li>
<li>Si en el caso contrario hemos configurado el acceso a la herramienta <strong>Teambox</strong> mediante un subdirectorio en <strong>Apache</strong>, la <strong>URL </strong>deberá ser similar a la siguiente:
<pre><strong>http://ip_o_nombre_dominio_servidor/teambox</strong></pre>
</li>
<li>A continuación les dejo con una captura de pantalla de la herramienta <strong>Teambox</strong> en plena ejecución:<br />
<a href="http://labitacoradegabriel.files.wordpress.com/2011/05/teambox.jpg" target="_blank"><img class="size-full wp-image-1488 aligncenter" title="teambox" src="http://labitacoradegabriel.files.wordpress.com/2011/05/teambox.jpg?w=630" alt=""   /></a></li>
</ol>
<h2 style="text-align:justify;">Artículos Relacionados</h2>
<ul style="text-align:justify;">
<li><strong><a href="http://labitacoradegabriel.wordpress.com/2010/04/02/mysql-y-phpmyadmin-en-opensuse/" target="_blank">Instalación y configuración de MySQL y phpMyAdmin<br />
</a></strong></li>
</ul>
<h2 style="text-align:justify;">Fuentes</h2>
<ul style="text-align:justify;">
<li><a href="https://github.com/teambox/teambox/wiki/Installing-locally" target="_blank"><strong>https://github.com/teambox/teambox/wiki/Installing-locally</strong></a></li>
<li><a href="https://github.com/teambox/teambox/wiki/Installing-on-Ubuntu" target="_blank"><strong>https://github.com/teambox/teambox/wiki/Installing-on-Ubuntu</strong></a></li>
<li><a href="http://wiki.mediatemple.net/w/%28ve%29:Install_Teambox" target="_blank"><strong>http://wiki.mediatemple.net/w/(ve):Install_Teambox</strong></a></li>
<li><strong><a href="http://www.stephenierodiaconou.com/blog_Installing_Teambox_-_A_Full_Guide_For_Debian" target="_blank">http://www.stephenierodiaconou.com/blog_Installing_Teambox_-_A_Full_Guide_For_Debian</a></strong></li>
</ul>
<h2 style="text-align:justify;">Enlaces Externos</h2>
<ul style="text-align:justify;">
<li><strong><a href="http://teambox.com/es" target="_blank">Teambox</a></strong></li>
<li><a href="https://github.com/" target="_blank"><strong>Github</strong></a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/labitacoradegabriel.wordpress.com/1461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/labitacoradegabriel.wordpress.com/1461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/labitacoradegabriel.wordpress.com/1461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/labitacoradegabriel.wordpress.com/1461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/labitacoradegabriel.wordpress.com/1461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/labitacoradegabriel.wordpress.com/1461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/labitacoradegabriel.wordpress.com/1461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/labitacoradegabriel.wordpress.com/1461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/labitacoradegabriel.wordpress.com/1461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/labitacoradegabriel.wordpress.com/1461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/labitacoradegabriel.wordpress.com/1461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/labitacoradegabriel.wordpress.com/1461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/labitacoradegabriel.wordpress.com/1461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/labitacoradegabriel.wordpress.com/1461/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=1461&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://labitacoradegabriel.wordpress.com/2011/05/04/instalacion-de-teambox-en-opensuse/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd8d25d32f536246603dea6e5608a00b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yodygkw</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2011/05/teambox.jpg" medium="image">
			<media:title type="html">teambox</media:title>
		</media:content>
	</item>
		<item>
		<title>Problemas con el arranque de un openSUSE virtualizado</title>
		<link>http://labitacoradegabriel.wordpress.com/2011/04/29/problemas-con-el-arranque-de-un-opensuse-virtualizado/</link>
		<comments>http://labitacoradegabriel.wordpress.com/2011/04/29/problemas-con-el-arranque-de-un-opensuse-virtualizado/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 20:00:53 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[fstab]]></category>
		<category><![CDATA[Grub]]></category>
		<category><![CDATA[menu.lst]]></category>
		<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[VirtualBox]]></category>

		<guid isPermaLink="false">http://labitacoradegabriel.wordpress.com/?p=1403</guid>
		<description><![CDATA[Les comento brevemente como viene la mano con este caso, estos días estuve preparando en el trabajo una instalación estándar de openSUSE 11.4 en VirtualBox para pruebas de configuración. La idea fue crear una copia de seguridad de esa instalación básica antes de jugar con ella para que en el momento en que necesite una [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=1403&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Les comento brevemente como viene la mano con este caso, estos días estuve preparando en el trabajo una instalación estándar de <strong>openSUSE 11.4</strong> en <strong>VirtualBox</strong> para pruebas de configuración. La idea fue crear una copia de seguridad de esa instalación básica antes de jugar con ella para que en el momento en que necesite una instalación limpia para realizar otras configuraciones que requieran un entorno nuevo pudiera generar rápidamente a partir de ella una nueva máquina virtual<strong></strong><strong> </strong>sin realizar todo el tedioso trabajo de instalar desde cero el sistema operativo.</p>
<p style="text-align:justify;">Para crear la copia de seguridad utilicé el asistente <strong>Exportar servicio virtualizado</strong> de <strong>VirtualBox</strong> cuyo proceso finalizó correctamente, el problema surgió durante el arranque del sistema operativo luego de haberlo importado a partir de la copia de seguridad con el asistente <strong>Importar servicio virtualizado</strong> de <strong>VirtualBox</strong>, tarea que por cierto trascurrió sin problemas.</p>
<p style="text-align:justify;">El problema lo podrán apreciar en la siguiente captura:</p>
<p style="text-align:center;"><a href="http://labitacoradegabriel.files.wordpress.com/2011/04/opensuse-error_arranque.jpg" target="_blank"><img class="size-medium wp-image-1404 aligncenter" title="opensuse-error_arranque" src="http://labitacoradegabriel.files.wordpress.com/2011/04/opensuse-error_arranque.jpg?w=300&#038;h=245" alt="" width="300" height="245" /></a></p>
<h2 style="text-align:justify;">Identificación del Problema</h2>
<p style="text-align:justify;">Por alguna extraña razón el proceso de arranque del sistema operativo fue incapaz de ubicar las particiones del sistema operativo para continuar con el arranque normal, por lo cual me puse a investigar el origen de dicho problema. Luego de indagar &#8220;des-organizadamente&#8221; por la web y de realizar múltiples pruebas con el asistente de recuperación y con un LiveCD de la propia distribución pude llegar a la conclusión (<em>muy personal por cierto, que quede claro</em>) que durante el proceso de importación, la herramienta <strong>VirtualBox</strong> creó el disco duro virtual con un <strong>ID</strong> totalmente distinto al de la instalación original, con lo cual las referencias que utilizaba el sistema operativo quedaron inválidas, ya que apuntaban a un dispositivo que había cambiado de nombre.</p>
<p style="text-align:justify;">En mi caso, el <strong>ID</strong> del disco duro virtual de la instalación original en <strong>VirtualBox</strong> era <strong>ata-VBOX_HARDDISK_VB4fbf3510-08771d94</strong> haciéndose referencia al mismo en los archivos <strong>menu.lst</strong> del grub y <strong>fstab</strong><strong></strong>. Sin embargo, en la instalación importada desde la copia de seguridad el <strong>ID</strong> del disco duro virtual cambió a <strong>ata-VBOX_HARDDISK_VBd2522280-a69b1bab</strong>, con lo cual las referencias de los archivos <strong>menu.lst</strong> y <strong>fstab</strong> ya no servían para nada, dando como resultado el error que ya apreciaron en la imagen superior.</p>
<h2 style="text-align:justify;">Solución del Problema</h2>
<p style="text-align:justify;">Los pasos para solucionar este problema fueron elaborados íntegramente por mí como resultado de la intensa investigación y la gran pérdida de tiempo que supuso encontrarla jaja, así que no esperen demasiados fundamentos elaborados que justifiquen que este es el mejor método para solucionar el inconveniente. Otra cosa que quisiera dejar en claro es que para la reparación de este problema he utilizado la herramienta de rescate que viene con el <strong>DVD</strong> de instalación de <strong>openSUSE</strong>, también puede funcionar utilizando un <strong>LiveCD</strong>, los pasos son los mismos.</p>
<p style="text-align:justify;">Hechas las aclaraciones correspondientes comenzamos con la secuencia de pasos para arreglar este problema:</p>
<ol style="text-align:justify;">
<li>Lo primero que tenemos que hacer es tratar de arrancar la máquina virtual con el DVD de instalación de la distribución, en mi caso <strong>openSUSE 11.4 i586</strong>. Esto lo hacemos agregando el ISO del DVD en el apartado <strong>Almacenamiento</strong> de las configuraciones de la máquina virtual afectada o colocando el DVD físico en la lectora del host anfitrión y configurando ésta como origen para la lectora virtual.<br />
<a href="http://labitacoradegabriel.files.wordpress.com/2011/04/virtualbox_almacenamiento.jpg" target="_blank"><img class="size-thumbnail wp-image-1405 aligncenter" title="virtualbox_almacenamiento" src="http://labitacoradegabriel.files.wordpress.com/2011/04/virtualbox_almacenamiento.jpg?w=150&#038;h=110" alt="" width="150" height="110" /></a></li>
<li>Luego debemos verificar que en el orden de arranque de la lectora virtual esté en primer lugar, esto se configura en el apartado <strong>Sistema</strong> de la ventana de configuraciones:<br />
<a href="http://labitacoradegabriel.files.wordpress.com/2011/04/virtualbox_sistema.jpg" target="_blank"><img class="size-thumbnail wp-image-1406 aligncenter" title="virtualbox_sistema" src="http://labitacoradegabriel.files.wordpress.com/2011/04/virtualbox_sistema.jpg?w=150&#038;h=110" alt="" width="150" height="110" /></a></li>
<li>Procedemos a arrancar la máquina virtual y en el cargador de arranque del DVD de instalación seleccionamos la opción <strong>Sistema de Rescate</strong>.<br />
<a href="http://labitacoradegabriel.files.wordpress.com/2011/04/opensuse_sistema_rescate.jpg" target="_blank"><img class="size-thumbnail wp-image-1407 aligncenter" title="opensuse_sistema_rescate" src="http://labitacoradegabriel.files.wordpress.com/2011/04/opensuse_sistema_rescate.jpg?w=150&#038;h=125" alt="" width="150" height="125" /></a></li>
<li>Una vez iniciado el <strong>modo rescate</strong> nos conectamos con el usuario<strong> root</strong>:
<pre><strong>Rescue login: root</strong>
<strong>Rescue:~ #</strong></pre>
</li>
<li>Luego procedemos a montar las particiones del disco duro virtual que tienen los directorios <strong>/boot</strong> y <strong>/etc</strong>. En mi caso tenía solo dos particiones en el disco duro virtual, una para la partición <strong>swap</strong> y otra para el <strong>/</strong> (<em>root</em>), con lo cual la instancia del asistente de rescate identificó dos unidades del dispositivo <strong>sda</strong>, la partición <strong>sda1</strong> correspondiente a <strong>swap</strong> y la partición <strong>sda2</strong> <strong></strong>correspondiente a la raíz.
<pre><strong>Rescue:~ # ls /dev/sda*</strong>
/dev/sda   /dev/sda1   /dev/sda2
<strong>Rescue:~ #</strong></pre>
<p>Para este caso solo necesité montar la partición <strong>sda2</strong>, ya que en la misma se encuentran los directorios y archivos que se necesitan modificar.</p>
<pre><strong>Rescue:~ # mount /dev/sda2 /mnt</strong></pre>
<p>Como se podrá apreciar la partición <strong>sda2</strong> fue montada en el directorio <strong>/mnt</strong> del sistema de archivos del asistente de rescate.<br />
<strong>OBS:</strong> En el caso de que tengan particiones específicas para el directorio <strong>/boot</strong> y <strong>/</strong> deberán montar ambas particiones para realizar los ajustes.</li>
<li>Una vez montada la partición, editamos el archivo de configuración <strong>fstab</strong> <strong></strong>para realizar las correcciones:
<pre><strong>Rescue:~ # vi /mnt/etc/fstab</strong></pre>
<p>Al editarlo por primera vez su configuración fue la siguiente:</p>
<pre><strong><span style="color:#ff0000;">/dev/disk/by-id/ata-VBOX_HARDDISK_VB4fbf3510-08771d94-part1</span> swap                 swap       defaults              0 0 </strong>
<strong><span style="color:#ff0000;">/dev/disk/by-id/ata-VBOX_HARDDISK_VB4fbf3510-08771d94-part2</span> /                    ext4       acl,user_xattr        1 1 </strong>
<strong>proc                 /proc                proc       defaults              0 0 </strong>
<strong>sysfs                /sys                 sysfs      noauto                0 0 </strong>
<strong>debugfs              /sys/kernel/debug    debugfs    noauto                0 0 </strong>
<strong>usbfs                /proc/bus/usb        usbfs      noauto                0 0 </strong>
<strong>devpts               /dev/pts             devpts     mode=0620,gid=5       0 0</strong></pre>
<p>Como se observa, los dispositivos <strong>ata-VBOX_HARDDISK_VB4fbf3510-08771d94-part1</strong> y <strong>ata-VBOX_HARDDISK_VB4fbf3510-08771d94-part2</strong> en el directorio <strong>/dev/disk/by-id</strong> son las particiones correspondientes a las unidades <strong>swap</strong> y <strong>/</strong> respectivamente, si los tratamos de buscar en el directorio <strong>/mnt/dev/disk/by-id</strong> nos daremos cuenta que ni siquiera se encuentra accesible la carpeta <strong>disk</strong>, al menos desde el asistente de rescate.</p>
<p>En realidad lo que sucede es que los dispositivos <strong>ata-VBOX_HARDDISK_VB4fbf3510-08771d94-part1</strong> y <strong>ata-VBOX_HARDDISK_VB4fbf3510-08771d94-part2</strong> del directorio <strong>/dev/disk/by-id</strong> son meros enlaces a los dispositivos <strong>/dev/sda1</strong> y<strong> /dev/sda2</strong> (<em>esto lo veremos más adelante</em>) respectivamente, por lo cual podemos reemplazar ambas referencias en el archivo <strong>fstab</strong> con las referencias a los dispositivos <strong>sda1</strong> y <strong>sda2</strong>, quedando la configuración similar a lo que sigue:</p>
<pre><strong><span style="color:#ff0000;">/dev/sda1</span>            swap                 swap       defaults              0 0</strong>
<strong><span style="color:#ff0000;">/dev/sda2</span>            /                    ext4       acl,user_xattr        1 1</strong>
<strong>proc                 /proc                proc       defaults              0 0</strong>
<strong>sysfs                /sys                 sysfs      noauto                0 0</strong>
<strong>debugfs              /sys/kernel/debug    debugfs    noauto                0 0</strong>
<strong>usbfs                /proc/bus/usb        usbfs      noauto                0 0</strong>
<strong>devpts               /dev/pts             devpts     mode=0620,gid=5       0 0 </strong></pre>
<p>Con esto ya tenemos corregido este archivo, guardamos los cambios y volvemos al <strong>promp</strong> para continuar con las demás correcciones.</li>
<li>El siguiente paso consiste en realizar los mismos cambios en el archivo de configuración <strong>menu.lst</strong> del gestor de arranque <strong>grub</strong>, para ello editamos el archivo <strong>menu.lst</strong> ubicado en el directorio <strong>/mnt/boot/grub</strong>:
<pre><strong>Rescue:~ # vi /mnt/boot/grub/menu.lst</strong></pre>
<p>La configuración que tenía en mi caso fue la siguiente:</p>
<pre># Modified by YaST2. Last modification on lun abr 25 17:32:14 PYT 2011
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader

<strong>default 0 timeout 8</strong>
##YaST - generic_mbr
<strong>gfxmenu (hd0,1)/boot/message</strong>
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
<strong>title openSUSE 11.4 - 2.6.37.1-1.2 root (hd0,1) kernel /boot/vmlinuz-2.6.37.1-1.2-default root=<span style="color:#ff0000;">/dev/disk/by-id/ata-VBOX_HARDDISK_VB4fbf3510-08771d94-part2</span> resume=<span style="color:#ff0000;">/dev/disk/by-id/ata-VBOX_HARDDISK_VB4fbf3510-08771d94-part1</span> splash=silent quiet showopts vga=0x317 initrd /boot/initrd-2.6.37.1-1.2-default</strong>

###Don't change this comment - YaST2 identifier: Original name: failsafe###
<strong>title Failsafe -- openSUSE 11.4 - 2.6.37.1-1.2 root (hd0,1) kernel /boot/vmlinuz-2.6.37.1-1.2-default root=<span style="color:#ff0000;">/dev/disk/by-id/ata-VBOX_HARDDISK_VB4fbf3510-08771d94-part2</span> showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317 initrd /boot/initrd-2.6.37.1-1.2-default</strong>

###Don't change this comment - YaST2 identifier: Original name: floppy###
<strong>title Disquete rootnoverify (fd0) chainloader +1</strong></pre>
<p>Al igual que en el archivo <strong>fstab</strong> debemos reemplazar las referencias de los dispositivos <strong>ata-VBOX_HARDDISK_VB4fbf3510-08771d94-part1</strong> y <strong>ata-VBOX_HARDDISK_VB4fbf3510-08771d94-part2</strong> por los dispositivos <strong>sda1</strong> y <strong>sda2</strong> respectivamente<strong></strong>, el archivo corregido quedó como se muestra a continuación:</p>
<pre># Modified by YaST2. Last modification on lun abr 25 17:32:14 PYT 2011
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader

<strong>default 0 timeout 8</strong>
##YaST - generic_mbr
<strong>gfxmenu (hd0,1)/boot/message</strong>
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
<strong>title openSUSE 11.4 - 2.6.37.1-1.2 root (hd0,1) kernel /boot/vmlinuz-2.6.37.1-1.2-default root=<span style="color:#ff0000;">/dev/sda2</span> resume=<span style="color:#ff0000;">/dev/sda1</span> splash=silent quiet showopts vga=0x317 initrd /boot/initrd-2.6.37.1-1.2-default</strong>

###Don't change this comment - YaST2 identifier: Original name: failsafe###
<strong>title Failsafe -- openSUSE 11.4 - 2.6.37.1-1.2 root (hd0,1) kernel /boot/vmlinuz-2.6.37.1-1.2-default root=<span style="color:#ff0000;">/dev/sda2</span> showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317 initrd /boot/initrd-2.6.37.1-1.2-default</strong>

###Don't change this comment - YaST2 identifier: Original name: floppy###
<strong>title Disquete rootnoverify (fd0) chainloader +1</strong></pre>
<p>Corregidos los dispositivos podemos salir del archivo guardando previamente los cambios.</li>
<li>Por último solo resta reiniciar la máquina virtual para salir del modo rescate.
<pre><strong>Rescue:~ # reboot</strong></pre>
</li>
</ol>
<p style="text-align:justify;">Con estos pasos el problema debería quedar solucionado y al iniciar nuevamente la máquina virtual el sistema operativo debería arrancar con total normalidad.</p>
<p style="text-align:justify;">Una vez iniciado el sistema operativo podremos verificar que los<strong> ID&#8217;s</strong> de las particiones del disco duro virtual ya no son los mismos que los <strong>ID&#8217;s</strong> de la instalación original. Esto lo podemos hacer listando el contenido del directorio <strong>/dev/disk/by-id </strong>(<em>que ahora si ya estará disponible</em>) y compararlos con los <strong>ID</strong> originales como se muestra a continuación:</p>
<pre><strong><span style="color:#ff0000;">fireserver:~ #</span> ls -l /dev/disk/by-id/</strong>
total 0
lrwxrwxrwx 1 root root  9 Apr 29 08:18 ata-VBOX_CD-ROM_VB2-01700376 -&gt; ../../sr0
lrwxrwxrwx 1 root root  9 Apr 29 08:18 ata-VBOX_HARDDISK_VBd2522280-a69b1bab -&gt; ../../sda
lrwxrwxrwx 1 root root 10 Apr 29 08:18 ata-VBOX_HARDDISK_VBd2522280-a69b1bab-part1 -&gt; ../../sda1
lrwxrwxrwx 1 root root 10 Apr 29 08:18 ata-VBOX_HARDDISK_VBd2522280-a69b1bab-part2 -&gt; ../../sda2
lrwxrwxrwx 1 root root  9 Apr 29 08:18 scsi-SATA_VBOX_HARDDISK_VBd2522280-a69b1bab -&gt; ../../sda
lrwxrwxrwx 1 root root 10 Apr 29 08:18 scsi-SATA_VBOX_HARDDISK_VBd2522280-a69b1bab-part1 -&gt; ../../sda1
lrwxrwxrwx 1 root root 10 Apr 29 08:18 scsi-SATA_VBOX_HARDDISK_VBd2522280-a69b1bab-part2 -&gt; ../../sda2
<span style="color:#ff0000;"><strong>fireserver:~ #</strong></span></pre>
<p style="text-align:justify;">Como se puede observar arriba, estas unidades son enlaces a los dispositivos <strong>sda</strong>, <strong>sda1</strong> y <strong>sda2</strong>. Comparando los nombres de los dispositivos que se encontraban en los archivos <strong>menu.lst</strong> y <strong>fstab</strong> previa modificación y los nombres reales de los dispositivos del directorio <strong>/dev/disk/by-id</strong> tenemos las siguientes claras diferencias que dieron origen a todo este problema.</p>
<pre><strong>En menu.lst y fstab:</strong> ata-VBOX_HARDDISK_VB<span style="color:#ff0000;">4fbf3510-08771d94</span>-part1
<strong>En /dev/disk/by-id/:</strong> ata-VBOX_HARDDISK_VB<span style="color:#ff0000;">d2522280-a69b1bab</span>-part1

<strong>En menu.lst y fstab:</strong> ata-VBOX_HARDDISK_VB<span style="color:#ff0000;">4fbf3510-08771d94</span>-part2
<strong>En /dev/disk/by-id/:</strong> ata-VBOX_HARDDISK_VB<span style="color:#ff0000;">d2522280-a69b1bab</span>-part2</pre>
<p style="text-align:justify;">En fin, esto se volvió a hacer largo, será hasta la próxima..</p>
<h2 style="text-align:justify;">Datos de los programas utilizados:</h2>
<ul style="text-align:justify;">
<li><strong>VirtualBox v4.0.4 r70112</strong></li>
<li><strong>openSUSE 11.4 i586</strong></li>
</ul>
<h2 style="text-align:justify;">Enlaces Externos:</h2>
<ul>
<li style="text-align:justify;"><a href="http://www.virtualbox.org/" target="_blank"><strong>VirtualBox</strong></a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/labitacoradegabriel.wordpress.com/1403/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/labitacoradegabriel.wordpress.com/1403/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/labitacoradegabriel.wordpress.com/1403/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/labitacoradegabriel.wordpress.com/1403/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/labitacoradegabriel.wordpress.com/1403/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/labitacoradegabriel.wordpress.com/1403/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/labitacoradegabriel.wordpress.com/1403/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/labitacoradegabriel.wordpress.com/1403/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/labitacoradegabriel.wordpress.com/1403/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/labitacoradegabriel.wordpress.com/1403/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/labitacoradegabriel.wordpress.com/1403/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/labitacoradegabriel.wordpress.com/1403/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/labitacoradegabriel.wordpress.com/1403/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/labitacoradegabriel.wordpress.com/1403/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=1403&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://labitacoradegabriel.wordpress.com/2011/04/29/problemas-con-el-arranque-de-un-opensuse-virtualizado/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd8d25d32f536246603dea6e5608a00b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yodygkw</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2011/04/opensuse-error_arranque.jpg?w=300" medium="image">
			<media:title type="html">opensuse-error_arranque</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2011/04/virtualbox_almacenamiento.jpg?w=150" medium="image">
			<media:title type="html">virtualbox_almacenamiento</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2011/04/virtualbox_sistema.jpg?w=150" medium="image">
			<media:title type="html">virtualbox_sistema</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2011/04/opensuse_sistema_rescate.jpg?w=150" medium="image">
			<media:title type="html">opensuse_sistema_rescate</media:title>
		</media:content>
	</item>
		<item>
		<title>Problemas en openSUSE con Impresoras USB Epson LX-300</title>
		<link>http://labitacoradegabriel.wordpress.com/2011/03/16/problemas-en-opensuse-con-impresoras-usb-epson-lx-300/</link>
		<comments>http://labitacoradegabriel.wordpress.com/2011/03/16/problemas-en-opensuse-con-impresoras-usb-epson-lx-300/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 03:00:07 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[Guías]]></category>
		<category><![CDATA[Informática]]></category>
		<category><![CDATA[Cups]]></category>
		<category><![CDATA[Impresoras]]></category>
		<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://labitacoradegabriel.wordpress.com/?p=1093</guid>
		<description><![CDATA[En realidad no es solo un problema de openSUSE, sino de la librería libusb y del backend usb de cups ubicado en el directorio /usr/lib/cups/backend. El problema consiste en que al conectar dos impresoras similares, en este caso impresoras de la marca Epson con puertos USB (en mi caso LX 300+II),  se genera un conflicto [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=1093&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">En realidad no es solo un problema de <strong>openSUSE</strong>, sino de la librería <strong>libusb</strong> y del <strong>backend usb</strong> de <strong>cups</strong> ubicado en el directorio <strong>/usr/lib/cups/backend</strong>. El problema consiste en que al conectar dos impresoras similares, en este caso impresoras de la marca <strong>Epson</strong> con puertos <strong>USB</strong> (<em>en mi caso </em><em>LX 300+II</em>), <strong></strong> se genera un conflicto asociado a la dirección a donde apuntan ambas impresoras al configurarlas con el asistente de <strong>Yast</strong>, ambas impresoras quedan asociadas al mismo recurso.</p>
<p style="text-align:justify;">Si configuramos ambas impresoras por <strong>Yast</strong> y luego verificamos el archivo <strong>/etc/cups/printers.conf</strong> nos daremos cuenta que la directiva <strong>DeviceURI </strong>para ambas impresoras será la mismo, algo similar a lo que sigue:</p>
<pre><strong>DeviceURI usb://EPSON/LX-300+</strong></pre>
<p style="text-align:justify;">Esto se debe a que el <strong>backend usb</strong> de <strong>cups es incapaz de obtener el ID de cada dispositivo</strong>, o mejor dicho, de cada hardware o impresora para definir cual es el dispositivo físico que se encuentra asociado al dispositivo lógico configurado en <strong>cups</strong>.</p>
<p style="text-align:justify;">Si ejecutamos el <strong>backend</strong> de <strong>cups &#8220;usb&#8221;</strong> directamente en la consola nos aparecerá la siguiente respuesta:</p>
<pre><strong><span style="color:#ff0000;">linux:~ #</span> cd /usr/lib/cups/backend/
<span style="color:#ff0000;">linux:/usr/lib/cups/backend #</span> ./usb
</strong><em>direct usb://EPSON/LX-300+ "EPSON LX-300+" "EPSON LX-300+" "MFG:EPSON;CMD:ESCP9,PRPII9,BDC,D4;MDL:LX-300+;CLS:PRINTER;DES:EPSON LX-300+;" ""
direct usb://EPSON/LX-300+ "EPSON LX-300+" "EPSON LX-300+"  "MFG:EPSON;CMD:ESCP9,PRPII9,BDC,D4;MDL:LX-300+;CLS:PRINTER;DES:EPSON  LX-300+;" ""
</em><span style="color:#ff0000;"><strong>linux:/usr/lib/cups/backend #</strong></span></pre>
<p style="text-align:justify;">El motivo del que no permite identificar adecuadamente entre las dos impresoras se explica en el punto <strong>4.4.3</strong> de <a href="http://tldp.org/HOWTO/Printing-HOWTO/kernel.html" target="_blank"><strong>este artículo</strong></a>, pero lo podríamos resumir que para obtener el ID del hardware el fabricante utiliza métodos propietarios y no mediante métodos estándares que son los utilizados por el <strong>backend</strong> de <strong>cups</strong>.</p>
<h2 style="text-align:justify;">Solución del Problema</h2>
<p style="text-align:justify;">La mejor forma de solucionar este problema sería que en vez de conectar ambas impresoras con cables <strong>USB</strong>, conectemos una de las impresoras con un cable <strong>paralelo</strong> y la otra con un cable <strong>USB</strong>, lo que no generaría ningún problema en la identificación de ambas impresora.</p>
<p style="text-align:justify;">Sin embargo, si lo mencionado anteriormente no es posible y <strong>solo disponemos de cables USB</strong> o placas madres sin puerto paralelo, podemos solucionarlo de una forma algo menos convencional y no muy recomendable siguiendo los pasos que van a continuación:</p>
<ol style="text-align:justify;">
<li>Enchufar ambas impresoras en los puertos USB disponibles y <strong>encenderlas</strong>.</li>
<li>Configurar las impresoras con <strong>YAST</strong>.</li>
<li><strong>Reiniciar la PC</strong> para que la secuencia de arranque se encargue de asignar a las impresoras su identificador de dispositivo lógico en el directorio <strong>/dev</strong>, esto lo recomiendo porque los puertos USB se encuentran enumerados y se van detectando en forma secuencial. Por ejemplo, si nuestra placa madre tiene 6 puertos USB los mismos van enumerados (<em>según tengo entendido</em>) del 0 (<em>cero</em>) al 5, si conectamos la primera <strong>impresora &#8220;A&#8221; al puerto USB2</strong> y la otra <strong>impresora &#8220;B&#8221; al puerto USB3</strong> y dejamos que la secuencia de arranque del sistema operativo detecte los dispositivos, sabremos perfectamente que en el directorio <strong>/dev</strong> la unidad lógica <strong>usblp0</strong> corresponderá a la <strong>impresora &#8220;A&#8221;</strong> y que la unidad <strong>usblp1</strong> corresponderá a la <strong>impresora &#8220;B&#8221;</strong> porque durante el arranque el sistema operativo habrá verificado primero el <strong>puerto USB2</strong> y luego el <strong>puerto USB3</strong>.</li>
<li>Ahora sabiendo perfectamente en que unidades lógicas se encuentra cada impresora, en el archivo <strong>/etc/cups/printers.conf</strong> debemos modificar la directiva <strong>DeviceURI</strong> de ambas impresoras y asignarles las <strong>URI</strong> que corresponden a sus unidades lógicas ubicadas en el directorio <strong>/dev</strong> mencionadas en el punto anterior. Primero editamos el archivo:
<pre><strong><span style="color:#ff0000;">linux:~ #</span> vi /etc/cups/printers.conf</strong></pre>
<p>Modificamos su contenido y debería quedar similar a lo que sigue (<em>la directiva DeviceURI se encuentra resaltada en rojo</em>):</p>
<pre><em># Printer configuration file for CUPS v1.4.4
# Written by cupsd on 2010-12-13 14:33
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
# Printer configuration file for CUPS v1.4.4
# Written by cupsd on 2010-12-13 14:33
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
# Printer configuration file for CUPS v1.4.4
# Written by cupsd on 2010-12-13 14:33
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
</em><strong>&lt;Printer epson0&gt;
Info ONE EPSON LX-300+
Location linux
MakeModel IBM ProPrinterII Foomatic/ibmpro (recommended)
<span style="color:#ff0000;">DeviceURI file:///dev/usblp0
</span>State Idle
StateTime 1292251254
Type 8388612
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
&lt;/Printer&gt;

&lt;Printer epson1&gt;
Info TWO EPSON LX-300
Location linux
MakeModel IBM ProPrinterII Foomatic/ibmpro (recommended)
<span style="color:#ff0000;">DeviceURI file:///dev/usblp1
</span>State Idle
StateTime 1292248513
Type 8388612
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
&lt;/Printer&gt;</strong></pre>
</li>
<li>Si queremos o necesitamos compartir las impresoras (<em>como sucedió en mi caso</em>), configuramos el servicio <strong>Samba</strong> para que levante todas las impresoras y definimos que la directiva <strong>printcap name = cups</strong> (<em>si se utiliza <strong>/etc/printcap</strong> no va a funcionar</em>).
<pre><strong><span style="color:#ff0000;">linux:~ #</span> vi /etc/samba/smb.conf</strong></pre>
<pre><em># smb.conf is the main Samba configuration file. You find a full commented
# version at /usr/share/doc/packages/samba/examples/smb.conf.SUSE if the
# samba-doc package is installed.
# Date: 2010-07-05
</em><strong>[global]
        workgroup = informatica
        passdb backend = tdbsam
        printing = cups
        printcap name = cups
        printcap cache time = 750
        cups options = raw
        map to guest = Bad User
        include = /etc/samba/dhcp.conf
        logon path = \\%L\profiles\.msprofile
        logon home = \\%L\%U\.9xprofile
        logon drive = P:
        usershare allow guests = Yes
        add machine script = /usr/sbin/useradd  -c Machine -d /var/lib/nobody -s /bin/false %m$
        domain logons = No
        domain master = No
        netbios name = linux
        security = user
        usershare max shares = 100
        wins support = No

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = Yes
        guest ok = Yes</strong></pre>
</li>
<li>Activamos los <strong>niveles de ejecución</strong> para los servicios <strong>Cups</strong> y <strong>Samba</strong> si aún no lo hemos hecho:
<pre><strong><span style="color:#ff0000;">linux:~ #</span> chkconfig --add cups
<span style="color:#ff0000;">linux:~ #</span> chkconfig --add smb</strong></pre>
</li>
<li>Y por último <strong>reiniciamos ambos servicio</strong> para que se carguen las nuevas configuraciones y con eso ya debería quedar funcionando todo.
<pre><strong><span style="color:#ff0000;">linux:~ #</span> service cups restart
<span style="color:#ff0000;">linux:~ #</span> service smb restart</strong></pre>
</li>
<h3>Observaciones:</h3>
<p>Quisiera aclarar algo muy importante, tienen que tener en cuenta que si desconectan una impresora y la enchufan en otro puerto una vez iniciada la PC, o que hayan apagado ambas impresoras y luego las volvieron a encender en una secuencia incorrecta, es probable que el orden en que el sistema operativo monte las impresoras sea incorrecto. Esto se debe a que cuando el sistema operativo (<em>ya arrancado</em>) detecta la primera impresora que se enchufa la va a montar en la unidad lógica <strong>usblp0</strong> sin importar en que puerto <strong>USB</strong> haya sido.</p>
<p>Nuevamente pasamos a un ejemplo para aclarar esta situación: Si arrancamos el sistema operativo y desenchufamos ambas impresoras de los puertos <strong>USB</strong> nos daremos cuenta que en el directorio <strong>/dev</strong> no existirán unidades lógicas de las impresoras. Ahora si enchufamos el <strong>cable USB</strong> de la <strong>impresora &#8220;B&#8221;</strong> en el mismo puerto <strong>USB3</strong> que mencionamos antes, nos daremos cuenta que el OS <strong>creará una unidad lógica</strong> en el directorio <strong>/dev</strong>, pero en vez de que el nombre de la unidad sea <strong>usblp1</strong> será <strong>usblp0</strong> porque es la primera impresora que se conecta. Luego si conectamos el <strong>cable USB de la impresora &#8220;A&#8221;</strong> al mismo puerto anterior <strong>USB2</strong> tendremos que se montará la unidad lógica en el directorio <strong>/dev</strong> como <strong>usblp1</strong> al ser la segunda impresora que se ha conectado. Lo interesante es que con esto logramos que todas las impresiones que antes enviamos a la <strong>impresora &#8220;A&#8221;</strong> a través de la unidad lógica <strong>/dev/usblp0</strong> ahora lo estaremos enviando la <strong>impresora &#8220;B&#8221;</strong> y viceversa.</p>
<p>Podemos comprender como el orden de conexión de los cables va a afectar la creación de las unidades, y como es muy tedioso andar configurando el <strong>DeviceURI</strong> cada vez que sucede esto, es fundamental prestarle mucha atención al orden de la secuencia de conexión o mejor dejar siempre que durante el arranque del sistema operativo detecte y monte las unidades lógicas de las impresoras con la secuencia correspondiente como se había sugerido en el tercer punto de los pasos antes mencionados.</ol>
<h2 style="text-align:justify;">Enlaces Externos</h2>
<ul>
<li style="text-align:justify;"><a href="http://tldp.org/HOWTO/Printing-HOWTO/kernel.html" target="_blank"><strong>http://tldp.org/HOWTO/Printing-HOWTO/kernel.html</strong></a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/labitacoradegabriel.wordpress.com/1093/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/labitacoradegabriel.wordpress.com/1093/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/labitacoradegabriel.wordpress.com/1093/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/labitacoradegabriel.wordpress.com/1093/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/labitacoradegabriel.wordpress.com/1093/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/labitacoradegabriel.wordpress.com/1093/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/labitacoradegabriel.wordpress.com/1093/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/labitacoradegabriel.wordpress.com/1093/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/labitacoradegabriel.wordpress.com/1093/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/labitacoradegabriel.wordpress.com/1093/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/labitacoradegabriel.wordpress.com/1093/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/labitacoradegabriel.wordpress.com/1093/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/labitacoradegabriel.wordpress.com/1093/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/labitacoradegabriel.wordpress.com/1093/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=1093&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://labitacoradegabriel.wordpress.com/2011/03/16/problemas-en-opensuse-con-impresoras-usb-epson-lx-300/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd8d25d32f536246603dea6e5608a00b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yodygkw</media:title>
		</media:content>
	</item>
		<item>
		<title>Gráficos para Interfaces Web</title>
		<link>http://labitacoradegabriel.wordpress.com/2011/01/04/graficos-a-partir-de-trafico-ntop/</link>
		<comments>http://labitacoradegabriel.wordpress.com/2011/01/04/graficos-a-partir-de-trafico-ntop/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 12:00:01 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[Charts]]></category>
		<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Graficos]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://labitacoradegabriel.com/?p=558</guid>
		<description><![CDATA[Con la necesidad de realizar gráficos que necesiten ser actualizados constantemente, surgió la idea de buscar aplicaciones ya construidas para generar gráficos y con la condición de que los mismos sean para una interfaz web, buscando me encontré con este sitio que resumía 10 librerías para generación de tráfico mediante php, probé varias pero la [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=558&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Con la necesidad de realizar gráficos que necesiten ser actualizados constantemente, surgió la idea de buscar aplicaciones ya construidas para generar gráficos y con la condición de que los mismos sean para una interfaz web, buscando me encontré <a href="http://craftyman.net/top-10-librerias-graficos-php/" target="_blank"><strong>con este</strong></a> sitio que resumía 10 librerías para generación de tráfico mediante <strong>php</strong>, probé varias pero la que más me ha gustado por su simplicidad de instalación, configuración, uso y menor cantidad de restricciones es la librería <a href="http://www.amcharts.com/" target="_blank"><strong>amCharts</strong></a></p>
<p style="text-align:justify;">Permite generar gráficos en flash muy interesantes y de diversos tipos, la datos estadísticos para generar los gráficos se suele guardar en archivos de <strong>texto plano</strong> o archivos <strong>xml </strong>bajo una estructura definida desde donde son interpretados por la aplicación flash.</p>
<p style="text-align:justify;">Si bien esta librería permite generar gráficos muy potentes en <strong>Flash</strong>, tengo que decir que según mi experiencia no conviene crear gráficos que tengan un archivo de entrada muy extenso, ya que esto hace que el gráfico sea muy pesado y que la experiencia del usuario utilizando estos gráficos sea bastante mala.</p>
<p style="text-align:justify;"><a href="http://labitacoradegabriel.files.wordpress.com/2010/12/amcharts-donut_chart.png"><img class="aligncenter size-full wp-image-1126" title="amCharts-Donut_Chart" src="http://labitacoradegabriel.files.wordpress.com/2010/12/amcharts-donut_chart.png?w=630" alt=""   /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/labitacoradegabriel.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/labitacoradegabriel.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/labitacoradegabriel.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/labitacoradegabriel.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/labitacoradegabriel.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/labitacoradegabriel.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/labitacoradegabriel.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/labitacoradegabriel.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/labitacoradegabriel.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/labitacoradegabriel.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/labitacoradegabriel.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/labitacoradegabriel.wordpress.com/558/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/labitacoradegabriel.wordpress.com/558/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/labitacoradegabriel.wordpress.com/558/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=558&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://labitacoradegabriel.wordpress.com/2011/01/04/graficos-a-partir-de-trafico-ntop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd8d25d32f536246603dea6e5608a00b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yodygkw</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/12/amcharts-donut_chart.png" medium="image">
			<media:title type="html">amCharts-Donut_Chart</media:title>
		</media:content>
	</item>
		<item>
		<title>Los números de 2010</title>
		<link>http://labitacoradegabriel.wordpress.com/2011/01/02/los-numeros-de-2010/</link>
		<comments>http://labitacoradegabriel.wordpress.com/2011/01/02/los-numeros-de-2010/#comments</comments>
		<pubDate>Sun, 02 Jan 2011 22:37:38 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Bitácora]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Estadísticas]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://labitacoradegabriel.wordpress.com/?p=1190</guid>
		<description><![CDATA[Hola, con esta entrada quiero publicar el correo que he recibido de WordPress.com, el cual presenta algunos datos estadísticos sobre los movimientos realizados en mi bitácora durante el año 2010, realmente en cantidad de post es bastante pobre, pero como esta bitácora NO está enfocada a eso y por el tipo de contenido de los [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=1190&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><em>Hola, con esta entrada quiero publicar el correo que he recibido de <strong>WordPress.com</strong>, el cual presenta algunos datos estadísticos sobre los movimientos realizados en mi bitácora durante el año 2010, realmente en cantidad de post es bastante pobre, pero como esta bitácora NO está enfocada a eso y por el tipo de contenido de los post y los usos que yo mismo le doy luego de haber publicado ya hace tiempo los artículos significa que la información contenida es útil para mi y para otros también, y lo seguirá siendo durante algún tiempo.</em></p>
<p style="text-align:justify;"><em>El contenido del correo va a continuación,  saludos..</em></p>
<p style="text-align:center;">&#8211;</p>
<p>Los duendes de estadísticas de WordPress.com han analizado el desempeño de este blog en 2010 y te presentan un resumen de alto nivel de la salud de tu blog:</p>
<p><img class="aligncenter" style="border:1px solid #ddd;background:#f5f5f5;padding:20px;" src="http://s0.wp.com/i/annual-recap/meter-healthy5.gif" alt="Healthy blog!" width="250" height="183" /></p>
<p>El <em>Blog-Health-o-Meter™</em> indica: Wow.</p>
<h2>Números crujientes</h2>
<p><a href="http://labitacoradegabriel.files.wordpress.com/2008/11/yast_firewall2.png"><img style="max-height:230px;float:right;border:1px solid #ddd;background:#fff;margin:0 0 1em 1em;padding:6px;" src="http://labitacoradegabriel.files.wordpress.com/2008/11/yast_firewall2.png?w=288" alt="Imagen destacada" /></a></p>
<p>Alrededor de 3 millones de personas visitan el Taj Mahal cada año. Este blog fue visto cerca de <strong>30,000</strong> veces en 2010. Si el blog fuera el Taj Mahal, se necesitarían alrededor de 4 días para visitarlo.</p>
<p>En 2010, publicaste <strong>11</strong> entradas nueva, haciendo crecer el arquivo para 40 entradas. Subiste <strong>58</strong> imágenes, ocupando un total de 8mb. Eso son alrededor de 1 imágenes por semana.</p>
<p>The busiest day of the year was 25 de noviembre with <strong>165</strong> views. The most popular post that day was <a style="color:#08c;" href="http://labitacoradegabriel.wordpress.com/2008/03/25/manual-para-configurar-un-servidor-ftp-con-vsftpd-en-opensuse-103/">Manual para configurar un Servidor FTP con Vsftpd en openSUSE</a>.</p>
<h2>¿De dónde vienen?</h2>
<p>Los sitios de referencia más populares en 2010 fueran <strong>search.conduit.com</strong>, <strong>google.com.mx</strong>, <strong>google.es</strong>, <strong>google.com.co</strong> y <strong>google.com.pe</strong>.</p>
<p>Algunos visitantes buscan tu blog, sobre todo por <strong>linux para usb</strong>, <strong>piren</strong>, <strong>mexanime.org</strong>, <strong>openvas</strong> y <strong>servidor ftp suse</strong>.</p>
<h2>Lugares de interés en 2010</h2>
<p>Estas son las entradas y páginas con más visitas en 2010.</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">1</div>
<p><a style="margin-right:10px;" href="http://labitacoradegabriel.wordpress.com/2008/03/25/manual-para-configurar-un-servidor-ftp-con-vsftpd-en-opensuse-103/">Manual para configurar un Servidor FTP con Vsftpd en openSUSE</a> <span style="color:#999;font-size:8pt;">marzo, 2008</span><br />
78 comentários</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">2</div>
<p><a style="margin-right:10px;" href="http://labitacoradegabriel.wordpress.com/2008/03/17/seleccion-de-fuentes-y-estilos-para-impresoras-matriciales/">Seleccion de Fuentes y Estilos para Impresoras Matriciales</a> <span style="color:#999;font-size:8pt;">marzo, 2008</span><br />
69 comentários</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">3</div>
<p><a style="margin-right:10px;" href="http://labitacoradegabriel.wordpress.com/2008/08/01/configuracion-del-servicio-vnc-en-redhat-el/">Configuración del servicio VNC en RedHat EL</a> <span style="color:#999;font-size:8pt;">agosto, 2008</span><br />
24 comentários</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">4</div>
<p><a style="margin-right:10px;" href="http://labitacoradegabriel.wordpress.com/2008/05/30/manual-para-configurar-subversion-apache-ssl-en-opensuse/">Manual para configurar Subversion + Apache + SSL en openSUSE</a> <span style="color:#999;font-size:8pt;">mayo, 2008</span><br />
17 comentários</p>
<div style="clear:left;float:left;font-size:24pt;line-height:1em;margin:-5px 10px 20px 0;">5</div>
<p><a style="margin-right:10px;" href="http://labitacoradegabriel.wordpress.com/2008/04/06/distribucion-gnulinux-para-crear-un-live-usb/">Distribución GNU/Linux para crear un Live USB</a> <span style="color:#999;font-size:8pt;">abril, 2008</span><br />
10 comentários</p>
<p>Algunas de tus entradas más populares fueran publicadas antes de 2010. ¡Tus escritos permanecen! Considera escribir sobre eses temas de nuevo.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/labitacoradegabriel.wordpress.com/1190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/labitacoradegabriel.wordpress.com/1190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/labitacoradegabriel.wordpress.com/1190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/labitacoradegabriel.wordpress.com/1190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/labitacoradegabriel.wordpress.com/1190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/labitacoradegabriel.wordpress.com/1190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/labitacoradegabriel.wordpress.com/1190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/labitacoradegabriel.wordpress.com/1190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/labitacoradegabriel.wordpress.com/1190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/labitacoradegabriel.wordpress.com/1190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/labitacoradegabriel.wordpress.com/1190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/labitacoradegabriel.wordpress.com/1190/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/labitacoradegabriel.wordpress.com/1190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/labitacoradegabriel.wordpress.com/1190/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=1190&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://labitacoradegabriel.wordpress.com/2011/01/02/los-numeros-de-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd8d25d32f536246603dea6e5608a00b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yodygkw</media:title>
		</media:content>

		<media:content url="http://s0.wp.com/i/annual-recap/meter-healthy5.gif" medium="image">
			<media:title type="html">Healthy blog!</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2008/11/yast_firewall2.png?w=288" medium="image">
			<media:title type="html">Imagen destacada</media:title>
		</media:content>
	</item>
		<item>
		<title>Comandos ESC/POS para Impresoras Matriciales Epson</title>
		<link>http://labitacoradegabriel.wordpress.com/2010/12/30/comandos-escpos-para-impresoras-matriciales-epson/</link>
		<comments>http://labitacoradegabriel.wordpress.com/2010/12/30/comandos-escpos-para-impresoras-matriciales-epson/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 12:00:03 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[comandos]]></category>
		<category><![CDATA[ESC/POS]]></category>
		<category><![CDATA[Impresoras]]></category>
		<category><![CDATA[Matriciales]]></category>

		<guid isPermaLink="false">http://labitacoradegabriel.wordpress.com/?p=1157</guid>
		<description><![CDATA[He preparado un PDF con una lista de comandos ESC/POS bastante completa, estos comandos los he obtenido a partir de un viejo manual de una impresora Epson LX-300, si bien este manual ya tiene sus años, es el único que tiene una buena lista de comandos para las impresoras LX 300 y equipos similares en [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=1157&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">He preparado un <strong>PDF</strong> con una lista de comandos <strong>ESC/POS</strong> bastante completa, estos comandos los he obtenido a partir de un viejo manual de una impresora <strong>Epson LX-300</strong>, si bien este manual ya tiene sus años, es el único que tiene una buena lista de comandos para las impresoras <strong>LX 300</strong> y equipos similares en comparación con los nuevos manuales que no suelen traer gran cosa, incluso nada en muchos casos.</p>
<p style="text-align:justify;">El <strong>PDF</strong> pesa unos <strong>2,24 Mb</strong> y posee solo 8 páginas, las imágenes fueron escaneadas con una muy buena calidad para que sea bien legible, espero que les sea de ayuda y que sirva para todos aquellos que tengan que trabajar con este tipo de impresoras.</p>
<pre>
<h3 style="text-align:center;"><a href="http://labitacoradegabriel.files.wordpress.com/2008/03/comandos_escpos_epson_lx300.pdf" target="_blank">PDF - Comandos ESC/POS Epson LX-300</a></h3>
</pre>
<h4><span style="text-decoration:underline;">Artículos Relacionados:</span></h4>
<ul>
<li><strong><a href="http://labitacoradegabriel.wordpress.com/2008/03/17/seleccion-de-fuentes-y-estilos-para-impresoras-matriciales/" target="_blank">Seleccion de Fuentes y Estilos para Impresoras Matriciales</a></strong></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/labitacoradegabriel.wordpress.com/1157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/labitacoradegabriel.wordpress.com/1157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/labitacoradegabriel.wordpress.com/1157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/labitacoradegabriel.wordpress.com/1157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/labitacoradegabriel.wordpress.com/1157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/labitacoradegabriel.wordpress.com/1157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/labitacoradegabriel.wordpress.com/1157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/labitacoradegabriel.wordpress.com/1157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/labitacoradegabriel.wordpress.com/1157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/labitacoradegabriel.wordpress.com/1157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/labitacoradegabriel.wordpress.com/1157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/labitacoradegabriel.wordpress.com/1157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/labitacoradegabriel.wordpress.com/1157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/labitacoradegabriel.wordpress.com/1157/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=1157&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://labitacoradegabriel.wordpress.com/2010/12/30/comandos-escpos-para-impresoras-matriciales-epson/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd8d25d32f536246603dea6e5608a00b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yodygkw</media:title>
		</media:content>
	</item>
		<item>
		<title>Scripts y Herramientas para gestión QoS en Linux</title>
		<link>http://labitacoradegabriel.wordpress.com/2010/12/28/scripts-y-herramientas-para-gestion-qos-en-linux/</link>
		<comments>http://labitacoradegabriel.wordpress.com/2010/12/28/scripts-y-herramientas-para-gestion-qos-en-linux/#comments</comments>
		<pubDate>Tue, 28 Dec 2010 12:00:03 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[FreeSoftware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[QoS]]></category>

		<guid isPermaLink="false">http://labitacoradegabriel.com/?p=562</guid>
		<description><![CDATA[A continuación les dejo con una serie de enlaces a scripts, herramientas, manuales, etc. relacionadas a la configuración de políticas de calidad de servicio en Linux. Scripts: Prometheus QoS. Wondershaper RShaper Programas: Mastershaper Manuales y Tutoriales Online: Linux Advanced Routing &#38; Traffic Control (Versión en Español) How To Accelerate Your Internet http://www.etxea.net/docu/qos/qos.html Rshaper: http://blografia.net/vicm3/docs/nucleo.html Distribuciónes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=562&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">A continuación les dejo con una serie de enlaces a scripts, herramientas, manuales, etc. relacionadas a la configuración de políticas de <strong>calidad de servicio</strong> en <strong>Linux</strong>.</p>
<p><span style="text-decoration:underline;">Scripts:</span></p>
<ul>
<li><a href="http://gpl.arachne.cz/" target="_blank"><strong>Prometheus QoS</strong></a>.</li>
<li><strong><a href="http://lartc.org/wondershaper/" target="_blank">Wondershaper</a></strong></li>
<li><strong><a href="http://ar.linux.it/software/#rshaper" target="_blank">RShaper</a><br />
</strong></li>
</ul>
<p><span style="text-decoration:underline;">Programas:</span></p>
<ul>
<li><strong><a href="http://www.mastershaper.org/index.php/Main_Page" target="_blank">Mastershaper</a><br />
</strong></li>
</ul>
<p><span style="text-decoration:underline;">Manuales y Tutoriales Online:</span></p>
<ul>
<li><a href="http://www.etxea.net/docu/qos/qos.html" target="_blank"><strong></strong></a><strong><a href="http://lartc.org/" target="_blank">Linux Advanced Routing &amp; Traffic Control</a> (<a href="http://www.gulic.org/almacen/lartc/lartc.pdf" target="_blank"><em>Versión en Español</em></a>)</strong></li>
<li><a href="http://bwmo.net/" target="_blank"><strong>How To Accelerate Your Internet</strong></a></li>
<li><a href="http://www.etxea.net/docu/qos/qos.html" target="_blank"><strong></strong><strong>http://www.etxea.net/docu/qos/qos.html</strong></a></li>
<li><a href="http://blografia.net/vicm3/docs/nucleo.html" target="_blank"><strong>Rshaper: http://blografia.net/vicm3/docs/nucleo.html</strong></a></li>
</ul>
<p><span style="text-decoration:underline;">Distribuciónes Linux Especializadas:</span></p>
<ul>
<li> <a href="http://www.ipcop.org/index.php" target="_blank"><strong>IPCop</strong></a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/labitacoradegabriel.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/labitacoradegabriel.wordpress.com/562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/labitacoradegabriel.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/labitacoradegabriel.wordpress.com/562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/labitacoradegabriel.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/labitacoradegabriel.wordpress.com/562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/labitacoradegabriel.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/labitacoradegabriel.wordpress.com/562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/labitacoradegabriel.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/labitacoradegabriel.wordpress.com/562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/labitacoradegabriel.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/labitacoradegabriel.wordpress.com/562/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/labitacoradegabriel.wordpress.com/562/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/labitacoradegabriel.wordpress.com/562/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=562&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://labitacoradegabriel.wordpress.com/2010/12/28/scripts-y-herramientas-para-gestion-qos-en-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd8d25d32f536246603dea6e5608a00b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yodygkw</media:title>
		</media:content>
	</item>
		<item>
		<title>Instalación y configuración de Ntop en openSUSE</title>
		<link>http://labitacoradegabriel.wordpress.com/2010/12/24/instalacion-y-configuracion-de-ntop-en-opensuse/</link>
		<comments>http://labitacoradegabriel.wordpress.com/2010/12/24/instalacion-y-configuracion-de-ntop-en-opensuse/#comments</comments>
		<pubDate>Fri, 24 Dec 2010 22:06:19 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[Guías]]></category>
		<category><![CDATA[Informática]]></category>
		<category><![CDATA[Monitoreo]]></category>
		<category><![CDATA[Ntop]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[Redes]]></category>

		<guid isPermaLink="false">http://labitacoradegabriel.com/?p=554</guid>
		<description><![CDATA[Ntop es una herramienta que nos permite analizar el tráfico de nuestra red en detalle, a diferencia de MRTG y aplicaciones similares, Ntop analiza los paquetes de la red y los agrupa según las direcciones MAC o IP (según como esté configurado) de origen y destino e inclusive agrupando el tráfico según los protocolos establecidos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=554&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><strong>Ntop</strong> es una herramienta que nos permite analizar el tráfico de nuestra red en detalle, a diferencia de <strong>MRTG</strong> y aplicaciones similares, <strong>Ntop</strong> analiza los paquetes de la red y los agrupa según las direcciones <strong>MAC</strong> o <strong>IP</strong> (<em>según como esté configurado</em>) de origen y destino e inclusive agrupando el tráfico según los protocolos establecidos en la <strong>capa transporte</strong> presente en el <strong>Modelo TCP/IP</strong>. Esta herramienta es muy interesante porque nos permite conocer:</p>
<ul style="text-align:justify;">
<li><strong><span style="font-size:13px;">Que equipos están traficando.</span></strong></li>
<li><strong><span style="font-size:13px;">De donde y hacia donde van los paquetes.</span></strong></li>
<li><strong><span style="font-size:13px;">La cantidad de paquetes y sus respectivos tamaños.</span></strong></li>
<li><strong><span style="font-size:13px;">Total de paquetes TCP, UDP y otros.</span></strong></li>
<li><strong><span style="font-size:13px;">Lo enviado y lo recibido.</span></strong></li>
<li><strong><span style="font-size:13px;">Los tipos de servicio utilizados.</span></strong></li>
<li><strong><span style="font-size:13px;">Los puertos a los cuales se ha conectado una u otra máquina.</span></strong></li>
<li><strong><span style="font-size:13px;">etc. </span></strong></li>
</ul>
<p style="text-align:justify;"><span style="font-weight:normal;font-size:13px;">Para mayor información sobre la misma pueden visitar <strong><a href="http://es.wikipedia.org/wiki/Ntop" target="_blank">este artículo</a></strong> en Wikipedia.</span></p>
<h2 style="text-align:center;"><span style="text-decoration:underline;">Requisitos e Instalación de Ntop<br />
</span></h2>
<p style="text-align:justify;">Necesitamos tener añadido el repositorio <strong>OSS</strong> a nuestro gestor de paquetes, si no lo tenemos añadido lo podemos hacer con el siguiente comando, en este caso para la versión <strong>11.3 </strong>de<strong> openSUSE</strong>:</p>
<blockquote><p><strong><span style="color:#ff0000;">fireserver:~ #</span> zypper ar -c -n &#8216;OSS &#8211; Open Source Software Repo&#8217; http://download.opensuse.org/distribution/11.3/repo/oss/ OSS</strong></p></blockquote>
<p style="text-align:justify;">Para instalar la herramienta<strong> Ntop</strong> en <strong>openSUSE</strong> lo podemos hacer con el siguiente comando:</p>
<blockquote><p><strong><span style="color:#ff0000;">fireserver:~ #</span></strong> <strong>zypper install ntop</strong></p></blockquote>
<h2 style="text-align:center;"><span style="text-decoration:underline;">Configuración de la Herramienta Ntop</span></h2>
<p style="text-align:justify;">Si bien las configuraciones que trae la herramienta por defecto luego de instalarla permiten realizar análisis básicos, es importante realizar ciertos ajustes en sus archivos de configuración y conocer algunas funcionalidades extras para que no tengamos problemas a la hora de analizar la información resultante.</p>
<p style="text-align:justify;">Mi experiencia con la herramienta fue frustrante durante el principio, <strong>cuando trataba de comparar la información recabada de la herramienta con las pruebas de tráfico que había preparado para analizar si la misma realmente funcionaba correctamente encontré muchas inconsistencias que no comprendía</strong> hasta el punto de querer reemplazar la herramienta por otra, sin embargo, <strong>el problema no se encontraba en la herramienta, si no en su configuración</strong>.</p>
<p style="text-align:justify;">Como esta herramienta era indispensable para recolectar la información para mi proyecto de <strong>Tesis</strong>, encontrar las configuraciones correctas llevó buen tiempo de investigación, afectando en parte al cumplimiento de los plazos establecidos, cuota de fracaso que aportó para la cancelación del proyecto, ahora me arrepiento de no haber leído el <strong>man </strong>de la herramienta jeje.</p>
<p style="text-align:justify;">A continuación se citarán los pasos para configurar la herramienta <strong>Ntop</strong>:</p>
<ol>
<li style="text-align:justify;">Para comenzar necesitamos dirigirnos al directorio <strong>/etc/sysconfig</strong> y editar el archivo <strong>ntop</strong>:<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> cd /etc/sysconfig/</strong><br />
<strong><span style="color:#ff0000;"> fireserver:/etc/sysconfig #</span> vi ntop</strong></p>
</blockquote>
</li>
<li style="text-align:justify;">Una vez editado el archivo buscamos la directiva <strong>NTOPD_IFACE</strong> para configurar el nombre de la interfaz por la cual se estarán capturando los paquetes, si nuestro equipo cuenta con varias interfaces de red podemos destinar una exclusivamente para la captura de tráfico de red y destinar otra para la gestión remota y acceso a los servicios de nuestra red local, todo depende de las necesidades y de lo que tratamos de analizar, en mi caso la directiva quedó configurada como sigue:<br />
<blockquote>
<p style="text-align:left;"><strong>NTOPD_IFACE=&#8221;<span style="color:#ff0000;">eth1</span>&#8220;</strong><strong> </strong></p>
</blockquote>
</li>
<li style="text-align:justify;">La siguiente directiva a configurar es <strong>NTOPD_PORT</strong> y permite limitar el acceso remoto como así también especificar el puerto para acceder a la interfaz web de la herramienta <strong>Ntop</strong> a través de nuestro navegador preferido, por defecto la configuración es <strong>127.0.0.1:3000</strong> pero la misma limita a que solo se pueda acceder a la interfaz web desde el equipo donde se encuentra instalada la herramienta y no remotamente, si tenemos un servidor dedicado para estas tareas en una sala aparte y, por comodidad y otros temas, deseamos tener acceso remoto a través del protocolo <strong>http</strong> (<em>protocolo sin encriptación</em>), podemos configurar la directiva especificando solamente el puerto y nada más como se muestra a continuación:<br />
<blockquote>
<p style="text-align:left;"><strong>NTOPD_PORT=&#8221;<span style="color:#ff0000;">3000</span>&#8220;</strong></p>
</blockquote>
</li>
<li style="text-align:justify;">Pasamos a la directiva <strong>NTOPD_SSL_PORT</strong>, que al igual que la directiva <strong>NTOPD_PORT</strong> permite limitar el acceso remoto como especificar el puerto para el acceso a la interfaz web de la herramienta <strong>Ntop</strong> pero específicamente para el protocolo de navegación segura <strong>https</strong>, mi configuración para esta directiva fue la siguiente:<br />
<blockquote>
<p style="text-align:left;"><strong>NTOPD_SSL_PORT=&#8221;<span style="color:#ff0000;">3</span><span style="color:#ff0000;">001</span>&#8220;</strong></p>
</blockquote>
</li>
<li style="text-align:justify;">La directiva <strong>NTOP_USER</strong> permite definir con que usuario del sistema operativo se va a ejecutar el servicio <strong>Ntop</strong>, por defecto en las nuevas versiones de <strong>openSUSE</strong> se encuentra configurado el usuario de sistema <strong>ntop</strong>, en versiones anteriores el usuario que aparecía por defecto era el usuario de sistema <strong>wwwrun</strong>, que como saben es el usuario encargado de la ejecución del servicio <strong>Apache</strong>, yo recomiendo dejar la configuración por defecto:<br />
<blockquote><p><strong>NTOP_USER=&#8221;<span style="color:#ff0000;">ntop</span>&#8220;</strong></p></blockquote>
</li>
<li style="text-align:justify;">La directiva final que recomiendo configurar es <strong>NTOP_ARGS</strong>, la misma permite agregar una serie de funcionalidades a la herramienta <strong>Ntop</strong> mediante la especificación de varios argumentos consecutivos separados por espacios a la directiva. Los argumentos son todos opcionales y la lista de argumentos válidos está disponible en el man de la herramienta <strong>Ntop</strong>, son los mismos argumentos que se puede pasar a la herramienta <strong>Ntop</strong> si la queremos ejecutar manualmente desde la linea de comandos. En mi caso está directiva la tengo configurado de la siguiente forma:<br />
<blockquote>
<p style="text-align:left;"><strong>NTOP_ARGS=&#8221;<span style="color:#ff0000;">-o -c -r 300 -p /etc/ntop/protocol_list.txt -m 192.168.2.0/24</span>&#8220;</strong></p>
</blockquote>
<h3 style="text-align:center;"><strong><br />
</strong><span style="text-decoration:underline;">Aclaración de Argumentos:</span></h3>
<p>Como habrán visto más arriba son varios los argumentos que he especificados a la directiva <strong>NTOP_ARGS</strong>, la funcionalidad y el motivo por el cual cada argumento fue incluido se expone a continuación:<strong> </strong></p>
<ul>
<li><strong><span style="color:#ff0000;">-o: </span></strong><span style="color:#ff0000;"><span style="color:#000000;"><strong>Ntop</strong> es una herramienta híbrida que permite <strong>analizar redes </strong></span></span><span style="color:#000000;"><strong>de capa 2 y 3 del modelo TCP/IP</strong>, que son la <strong>capa de Enlace de Datos</strong> (<em>Acceso al Medio</em>) y la <strong>capa de Red</strong> respectivamente, si queremos realizar un seguimiento individual al tráfico de los equipos que se encuentran en sub-redes corporativas (<em>red segmentada</em>) o de redes externas, es recomendable incluir este argumento para que tráfico sea agrupado por las <strong>direcciones IP</strong>, ya que de forma contraria agruparía todo el tráfico de los equipos de las sub-redes en base a las direcciones <strong>MAC del equipo ruteador</strong> y <span style="text-decoration:underline;"><strong>no</strong></span> por las direcciones <strong>MAC</strong> de la interfaz de red de los equipos físicos remotos que queremos analizar. </span>A continuación la descripción del parámetro según el man:<br />
<blockquote><p><strong>-o | &#8211;no-mac<br />
ntop  is  a  hybrid  layer  2/3  network monitor.  That is, it uses both the lower level, physical device address &#8211; the MAC (Media Access Control) address &#8211; and the higher level, logical, tcp/ip address (the familiar www.ntop.org or 131.114.21.9 address).  This allows ntop to link the logical addresses  to  a  physical  machine with multiple addresses (This occurs with virtual hosts or additional addresses assigned to the interface, etc.)  to present consolidated reporting.</strong></p></blockquote>
</li>
<li><span style="color:#ff0000;"><strong>-c:</strong></span> Cuando se instala la herramienta desde los repositorios, varios parámetros se encuentran configurados por defecto, este es el caso del parámetro <strong>PARM_HOST_PURGE_MINIMUM_IDLE</strong> que por defecto se encuentra definido a solo 10 minutos (<em>según mi conocimiento en openSUSE</em>), este parámetro configura el tiempo de inactividad que se requiere de un equipo para purgar toda su información. Según el man tenemos la siguiente definición para el argumento<strong> -c</strong>:<br />
<blockquote><p><strong>-c | &#8211;sticky-hosts<br />
Use this parameter to prevent idle hosts from being purged from memory.</strong></p>
<p><strong>By default idle hosts are periodically purged from memory.  An idle host is identified when no packets from or to that host have been monitored for  the  period  of time defined by the value of PARM_HOST_PURGE_MINIMUM_IDLE in globals-defines.h.</strong></p></blockquote>
<p>Les recomiendo configurar este parámetro como argumento para que durante el arranque de la herramienta ya se cargue la configuración, les comento que he tenido mala experiencia tratando de configurar este parámetro desde la interfaz WEB.</li>
<li><strong><span style="color:#ff0000;">-r 300:</span></strong> Este argumento configura la interfaz Web de la herramienta para que cada 5 minutos actualice el contenido de la misma, la definición para este argumento en el man es el siguiente:<br />
<blockquote><p><strong>-r | &#8211;refresh-time<br />
Specifies the delay (in seconds) between automatic screen updates for those generated HTML pages which support them.   This  parameter  allows  you  to  leave  your browser window open and have it always displaying nearly real-time data from ntop.</strong></p>
<p><strong>The default is 3 seconds.  Please note that if the delay is very short (1 second for instance), ntop might not be able to process all of the network traffic.</strong></p></blockquote>
</li>
<li><span style="color:#ff0000;"><strong>-p /etc/ntop/protocol_list.txt:</strong></span> Como sabemos, la herramienta <strong>Ntop</strong> agrupa por cada equipo el tráfico que han generado, pero a la vez por cada equipo podemos saber que tipo de tráfico ha generado, si fue tráfico <strong>http</strong>, <strong>ftp</strong>, etc., por defecto la herramienta identifica un grupo limitado de tipos de tráfico y el resto es agrupado como <strong>Otros</strong>, sin embargo, esta lista puede ser ampliada con este parámetro con el cual especificamos la ruta hacia un archivo de texto plano en donde podemos personalizar los tipos de servicios que nos interesan mediante una nomenclatura determinada. El contenido del archivo <strong>/etc/ntop/protocol_list.txt</strong> será abarcado más adelante en este mismo tutorial. Nuevamente la información del man:<br />
<blockquote><p><strong>-p | &#8211;protocols</strong><br />
<strong> This parameter is used to specify the TCP/UDP protocols that ntop will monitor. The format is &lt;label&gt;=&lt;protocol  list&gt;  [,  &lt;label&gt;=&lt;protocol list&gt;],  where  label  is  used to symbolically identify the &lt;protocol list&gt;. The format of &lt;protocol list&gt; is &lt;protocol&gt;[|&lt;protocol&gt;], where &lt;protocol&gt;  is  either a valid protocol specified inside the /etc/services file or a numeric port range (e.g. 80, or 6000-6500).</strong></p></blockquote>
</li>
<li><strong><span style="color:#ff0000;">-m 192.168.2.0/24:</span></strong> Si por ejemplo nuestro servidor de monitoreo <strong>Ntop</strong> se encuentra en la red <strong>192.168.1.0/24</strong>, por defecto, todos los equipos de esa red que hayan generado algún tráfico y que haya sido detectado por la herramienta serán agrupados como tráfico <strong>LOCAL</strong>, demás tráficos será interpretado como tráfico <strong>REMOTO</strong> y será agrupado en otro sector.<br />
Si aparte de la red <strong>192.168.1.0/24</strong> tuvieramos una red <strong>192.168.2.0/24</strong> que corresponde a otro sector o a una sucursal de nuestra empresa y a la cual nos conectados mediante un ruteador, si queremos incluir a los equipos de esta red en la sección <strong>LOCAL</strong> de la herramienta tenemos que especificar manualmente la red que queremos agregar con el parámetro <strong>-m</strong>, en este caso se ha agregado la red <strong>192.168.2.0/24</strong>, si deseamos agregar más redes lo podemos hacer especificando las redes separadas por comas: <em><strong>Ej:</strong> -m 192.168.2.0/24,192.168.3.0/24,192.168.4.0/24</em>.&nbsp;</p>
<blockquote><p><strong>-m | &#8211;local-subnets</strong><br />
<strong> ntop determines the ip addresses and netmasks for each active interface.  Any traffic on those networks is considered local.  This parameter allows the  user  to  define</strong><br />
<strong> additional networks and subnetworks whose traffic is also considered local in ntop reports. All other hosts are considered remote. </strong></p></blockquote>
</li>
</ul>
</li>
<li>Luego de las configuraciones anteriores, en mi caso el archivo <strong>/etc/sysconfig/ntop</strong> quedó como se muestra a continuación:<br />
<blockquote><p><em>## Path:	   Network/Monitors/Ntop<br />
## Description:	   ntop startup parameters<br />
## Type:	   string(eth0)<br />
## Default:	   eth0<br />
## Config:<br />
## ServiceRestart: ntop<br />
#<br />
# Specifies the network interface used by ntop<br />
#</em><br />
<strong> NTOPD_IFACE=&#8221;<span style="color:#ff0000;">eth1</span>&#8220;</strong></p>
<p><em>## Type:	ip<br />
## Default:	127.0.0.1:3000<br />
#<br />
# Supposing to start  ntop  at  the port  3000,<br />
# the  URL  to  access  is http://hostname:3000/<br />
#<br />
# Please note that an HTTP server is NOT needed  in<br />
# order to use the program in interactive mode.<br />
#</em><br />
<strong> NTOPD_PORT=&#8221;<span style="color:#ff0000;">3000</span>&#8220;</strong></p>
<p><em>## Type:	integer(0:65535)<br />
## Default:<br />
#<br />
# define SSL port. Please note, that you have to generate<br />
# a certificate to run run ntop with this option.<br />
# This may be done with the commands:<br />
# openssl req -new -x509 -sha1 -extensions v3_ca -nodes -days 365 -out cert.pem<br />
# cat privkey.pem cert.pem &gt; /etc/ntop/ntop-cert.pem<br />
# /bin/rm -f privkey.pem cert.pem<br />
#<br />
# NTOPD_SSL_PORT=&#8221;3001&#8243;<br />
#</em><br />
<strong> NTOPD_SSL_PORT=&#8221;<span style="color:#ff0000;">3</span><span style="color:#ff0000;">001</span>&#8220;</strong></p>
<p><em>## Type:	string<br />
## Default:	&#8220;wwwrun&#8221;<br />
#<br />
# define the user to run ntop. This should not be root!<br />
#</em><br />
<strong> NTOP_USER=&#8221;<span style="color:#ff0000;">wwwrun</span>&#8220;</strong></p>
<p><em>## Type: string<br />
## Default: &#8220;&#8221;<br />
## ServiceRestart: ntop<br />
#<br />
# Additional arguments when starting ntop with the init script<br />
# /etc/init.d/ntop or rcntop.<br />
#<br />
# See man 8 ntop for all available commandline options.<br />
#</em><br />
<strong> NTOP_ARGS=&#8221;<span style="color:#ff0000;">-o -c -r 300 -p /etc/ntop/protocol_list.txt -m 192.168.18.0/24,192.168.16.0/24</span>&#8220;</strong></p></blockquote>
</li>
<li style="text-align:justify;"><span style="text-decoration:underline;"><strong>Ampliación de Puertos conocidos</strong></span><strong>:</strong> El siguiente paso consiste en crear el archivo <strong>protocol_list.txt </strong>en el directorio <strong>/etc/ntop</strong> según lo especificado como argumento en el archivo <strong>/etc/sysconfig/ntop</strong>. En este archivo podemos agregar una lista personalizada de tipos de tráfico que queremos separar en la herramienta <strong>Ntop</strong> para su posterior análisis, en mi caso la lista quedó como sigue:<br />
<blockquote>
<p style="text-align:left;"><strong><code>HTTP=http|www|https<br />
HTTP_SQUID=3128<br />
HTTP_ISA=8080|8081<br />
ORA_HTTP=7778<br />
CamSegur=1001<br />
Microsoft-DS=445<br />
FTP=ftp|ftp-data<br />
DNS=name|domain<br />
Telnet=telnet|login<br />
NBios-IP=netbios-ns|netbios-dgm|netbios-ssn<br />
Mail=pop-2|pop-3|pop3|kpop|smtp|imap|imap2<br />
DHCP-BOOTP=67-68<br />
SNMP=snmp|snmp-trap<br />
NNTP=nntp<br />
NFS=mount|pcnfs|bwnfs|nfsd|nfsd-status<br />
X11=6000-6010<br />
SSH=22<br />
Gnutella=6346|6347|6348<br />
Kazaa=1214<br />
WinMX=6699|7730<br />
DirectConnect=0<br />
eDonkey=4661-4665<br />
Messenger=1863|5000|5190-5193<br />
IM=12890<br />
Iperf=5001<br />
Norton=8014<br />
VNC=5900<br />
Ntop=3000|3001<br />
RemoteShell=514</code></strong></p>
</blockquote>
<p>Para especificar un servicio personalizado primero colocamos un <strong>alias</strong>, por ejemplo <strong>HTTP_ISA</strong>, seguido va el signo igual &#8220;=&#8221; y luego <strong>el puerto o los puertos</strong> que deseamos incluir, en este caso los puertos son <strong>8080</strong> y <strong>8081</strong>, los mismos van separados por el carácter <strong>&#8220;|&#8221;</strong>, en vez de los puestos numéricos también se pueden utilizar sus respectivos <strong>alias</strong> especificados en el archivo <strong>/etc/services</strong>.</li>
<li>Terminada la configuración específica de la herramienta pasamos a ajustar los niveles de ejecución para el arranque automático de la herramienta <strong>Ntop</strong>:<br />
<blockquote>
<p style="text-align:left;"><span style="color:#ff0000;"><strong>fireserver:~ #</strong></span><strong> chkconfig -level 35 ntop on</strong></p>
</blockquote>
</li>
<li style="text-align:justify;">Seteamos la contraseña del usuario<strong> admin</strong> de la herramienta <strong>Ntop</strong> por primera vez<strong>:</strong><br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> ntop -A -u wwwrun</strong><br />
<em>Sat Jun 13 11:24:08 2009  NOTE: Interface merge enabled by default</em><br />
<em> Sat Jun 13 11:24:08 2009  Initializing gdbm databases</em></p>
<p style="text-align:left;"><em>ntop startup &#8211; waiting for user response!</em></p>
<p style="text-align:left;"><em>Please enter the password for the admin user:</em><br />
<em> Please enter the password again:</em><br />
<em> Sat Jun 13 11:24:24 2009  Admin user password has been set</em><br />
<span style="color:#ff0000;"><strong>fireserver:~ #</strong></span></p>
</blockquote>
</li>
<li style="text-align:justify;">Abrimos los puertos en el <strong>firewall</strong> para permitir el acceso a la interfaz Web de la herramienta, para ello editamos el archivo <strong>SuSEfirewall2</strong> del directorio <strong>/etc/sysconfig</strong>, buscamos la directiva <strong>FW_SERVICES_EXT_TCP</strong> a la que le agregamos los dos puertos separados por un espacio, luego se guardan los cambios y se reinicia el servicio del <strong>firewall</strong>, los pasos quedan como sigue:<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> vi +255 /etc/sysconfig/SuSEfirewall2</strong></p>
</blockquote>
<blockquote><p><strong>FW_SERVICES_EXT_TCP</strong>=&#8221;3000 3001&#8243;</p></blockquote>
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> rcSuSEfirewall2 restart</strong></p>
</blockquote>
</li>
<li style="text-align:justify;">Por último solo resta iniciar el servicio <strong>ntop</strong>:<br />
<blockquote>
<p style="text-align:left;"><span style="color:#ff0000;"><strong>fireserver:~ #</strong></span> <strong>service ntop start</strong><br />
<em>Starting service ntop                                                done</em><br />
<span style="color:#ff0000;"><strong>fireserver:~ #</strong></span></p>
</blockquote>
</li>
<li style="text-align:justify;">En este punto ya podemos acceder a la herramienta a través de su interfaz web mediante las siguientes <strong>URL</strong>:<br />
<blockquote>
<p style="text-align:left;"><strong>http://ip_o_nombre_servidor:3000</strong><br />
<strong>https://ip_o_nombre_servidor:3001</strong></p>
</blockquote>
</li>
</ol>
<h2 style="text-align:center;"><span style="text-decoration:underline;">Configuración de Switch para permitir Packet Sniffing</span></h2>
<p style="text-align:justify;">Cuando un switch recibe un paquete que tiene como destinatario a un equipo conectado al puerto 1 del mismo, el equipo solo enviará a ese puerto el paquete de datos, haciendo que sea imposible que ese mismo paquete sea visible desde otro equipo que está conectado al mismo switch en otro puerto, a menos que&#8230;.</p>
<p style="text-align:justify;">Si, a menos que el switch en cuestión sea administrable y que nosotros tengamos acceso a él para configurar un <strong>puerto de mirroring</strong> al cual debe estar conectado el equipo de monitoreo (<em>con herramientas para sniffing al estilo Ntop, Wireshark, tcpdump, etc</em>), a este puerto le podemos enviar una copia de todo el tráfico recibido en el puerto que queremos monitorear, con esto estaríamos haciendo traffic mirroring.</p>
<h3 style="text-align:center;">Traffic Mirroring</h3>
<p style="text-align:justify;"><span style="color:#000000;"><strong>Traffic mirroring</strong> consiste en reflejar todo el tráfico recibido y enviado por varios puertos hacia un puerto especial para permitir a los administradores de red poder analizar los paquetes mediante técnicas de sniffing.</span></p>
<p style="text-align:justify;"><span style="color:#000000;">Leyendo un artículo que ya no está online encontré un fragmento de texto relacionado con el tema y que me pareció bastante interesante:</span></p>
<blockquote>
<p style="text-align:justify;"><em>Algunos switches permiten configurar uno de sus puertos como monitor o spanning port, para que se copie el trafico que va a traves del switch (normalmente solo el de uno de sus puertos) a ese puerto, funcionando como un Hub. Esto le sirve al administrador de la red para poder examinar problemas que ocurran. No siempre se puede enviar el 100% del trafico al puerto monitor, depende sobre todo de la carga de la red.</em></p>
</blockquote>
<h2 style="text-align:center;"><span style="text-decoration:underline;">Limpieza Forzada de Datos y Gráficos estadísticos de Ntop </span></h2>
<div style="text-align:justify;">Para limpiar de manera forzada la información capturada y analizada por <strong>Ntop</strong> podemos eliminar físicamente los directorios en los cuales se encuentra contenido dicha información, los pasos se citan a continuación:</div>
<ol>
<li>
<div style="text-align:justify;">
<p>Se para el servicio <strong>Ntop</strong>:</p>
</div>
<blockquote>
<div style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> service ntop stop</strong></div>
</blockquote>
</li>
<li>
<div style="text-align:justify;">Se procede a eliminar las carpetas en donde se encuentra almacenada la información relacionada a los monitoreos anteriores.</div>
<blockquote>
<div style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:/var/lib/ntop #</span> cd</strong></div>
<div style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> cd /var/lib/ntop/</strong></div>
<div style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:/var/lib/ntop #</span> ls</strong></div>
<div style="text-align:left;"><em>LsWatch.db  addressQueue.db  dnsCache.db  fingerprint.db  interfaces  macPrefix.db  ntop_pw.db  prefsCache.db  rrd</em></div>
<div style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:/var/lib/ntop #</span> rm -Rf interfaces/</strong></div>
<div style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:/var/lib/ntop #</span> rm -Rf rrd/</strong></div>
</blockquote>
</li>
<li>
<div style="text-align:justify;">Se restablece el servicio <strong>Ntop</strong>.</div>
<blockquote>
<div style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> service ntop start</strong></div>
</blockquote>
</li>
</ol>
<p>y con eso ya está, hemos eliminado toda la información de los monitoreos anteriores.</p>
<h2 style="text-align:center;"><span style="text-decoration:underline;">Capturas de Pantalla</span></h2>
<p style="text-align:center;"><span style="text-decoration:underline;"><a href="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop0.png" target="_blank"><img class="size-thumbnail wp-image-1140 alignnone" title="ntop0" src="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop0.png?w=150&#038;h=108" alt="" width="150" height="108" /> </a><a href="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop1.png" target="_blank"><img class="size-thumbnail wp-image-1141 alignnone" title="ntop1" src="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop1.png?w=150&#038;h=108" alt="" width="150" height="108" /></a> <a href="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop2.png" target="_blank"><img class="size-thumbnail wp-image-1142 alignnone" title="ntop2" src="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop2.png?w=150&#038;h=108" alt="" width="150" height="108" /> </a><a href="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop3.png" target="_blank"><img class="alignnone size-thumbnail wp-image-1143" title="ntop3" src="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop3.png?w=150&#038;h=108" alt="" width="150" height="108" /></a><br />
</span></p>
<p style="text-align:center;"><span style="text-decoration:underline;"><a href="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop4.png" target="_blank"><img class="alignnone size-thumbnail wp-image-1144" title="ntop4" src="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop4.png?w=150&#038;h=108" alt="" width="150" height="108" /></a> <a href="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop5.png" target="_blank"><img class="alignnone size-thumbnail wp-image-1145" title="ntop5" src="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop5.png?w=150&#038;h=108" alt="" width="150" height="108" /></a> <a href="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop6.png" target="_blank"><img class="alignnone size-thumbnail wp-image-1139" title="ntop6" src="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop6.png?w=150&#038;h=108" alt="" width="150" height="108" /></a><br />
</span></p>
<h2 style="text-align:center;"><span style="text-decoration:underline;">Observaciones</span></h2>
<ul>
<li>La instalación de la herramienta <strong>Ntop</strong> y las configuraciones presentadas en esta guía fueron realizadas con el sistema operativo <strong>openSUSE Linux</strong> en su versión <strong>11.3</strong> y con la arquitectura <strong>x86</strong>.</li>
</ul>
<h2 style="text-align:center;"><span style="text-decoration:underline;">Enlaces Externos</span></h2>
<p><a href="http://es.wikipedia.org/wiki/Ntop" target="_blank"><strong>Ntop en Wikipedia</strong></a><br />
<strong><a href="http://www.ntop.org/" target="_blank">Sitio Oficial Ntop<br />
</a><a href="http://en.wikipedia.org/wiki/Port_mirroring" target="_blank">Port Mirroring</a><a href="http://www.ntop.org/" target="_blank"><br />
</a></strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/labitacoradegabriel.wordpress.com/554/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/labitacoradegabriel.wordpress.com/554/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/labitacoradegabriel.wordpress.com/554/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/labitacoradegabriel.wordpress.com/554/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/labitacoradegabriel.wordpress.com/554/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/labitacoradegabriel.wordpress.com/554/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/labitacoradegabriel.wordpress.com/554/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/labitacoradegabriel.wordpress.com/554/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/labitacoradegabriel.wordpress.com/554/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/labitacoradegabriel.wordpress.com/554/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/labitacoradegabriel.wordpress.com/554/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/labitacoradegabriel.wordpress.com/554/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/labitacoradegabriel.wordpress.com/554/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/labitacoradegabriel.wordpress.com/554/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=554&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://labitacoradegabriel.wordpress.com/2010/12/24/instalacion-y-configuracion-de-ntop-en-opensuse/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd8d25d32f536246603dea6e5608a00b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yodygkw</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop0.png?w=150" medium="image">
			<media:title type="html">ntop0</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop1.png?w=150" medium="image">
			<media:title type="html">ntop1</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop2.png?w=150" medium="image">
			<media:title type="html">ntop2</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop3.png?w=150" medium="image">
			<media:title type="html">ntop3</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop4.png?w=150" medium="image">
			<media:title type="html">ntop4</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop5.png?w=150" medium="image">
			<media:title type="html">ntop5</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/12/ntop6.png?w=150" medium="image">
			<media:title type="html">ntop6</media:title>
		</media:content>
	</item>
		<item>
		<title>Instalación de Cacti en openSUSE</title>
		<link>http://labitacoradegabriel.wordpress.com/2010/10/01/instalacion-de-cacti-en-opensuse/</link>
		<comments>http://labitacoradegabriel.wordpress.com/2010/10/01/instalacion-de-cacti-en-opensuse/#comments</comments>
		<pubDate>Fri, 01 Oct 2010 20:52:27 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[Guías]]></category>
		<category><![CDATA[Informática]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Cacti]]></category>
		<category><![CDATA[Herramienta Web]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Monitoreo]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[Redes]]></category>

		<guid isPermaLink="false">http://labitacoradegabriel.com/?p=551</guid>
		<description><![CDATA[Cacti es una herramienta que ofrece una solución completa para el análisis de redes y equipos logrando generar potentes gráficos mediante la tecnología de RRDtools que integra dicha herramienta, su uso para monitoreo está ampliamente extendido. Para mayor información sobre la misma pueden visitar el artículo sobre Cacti en wikipedia o en su página oficial [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=551&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;"><strong>Cacti</strong> es una herramienta que ofrece una solución completa para el análisis de redes y equipos logrando generar potentes gráficos mediante la tecnología de <strong>RRDtools</strong> que integra dicha herramienta, su uso para monitoreo está ampliamente extendido. Para mayor información sobre la misma pueden visitar el artículo sobre<a href="http://es.wikipedia.org/wiki/Cacti" target="_blank"> <strong>Cacti en wikipedia</strong></a> o en su página oficial cuyo enlace se encuentra al final de este artículo.</p>
<p style="text-align:justify;">Con este artículo lo que se busca es definir los pasos a seguir para instalar la herramienta <a href="http://www.cacti.net/donate.php" target="_blank">open source</a> <strong>Cacti</strong> en la distribución Linux <strong>openSUSE</strong>, quedando a cargo de los lectores investigar la manera de utilizar y sacar el mayor provecho a esta herramienta.</p>
<h2 style="text-align:center;"><span style="text-decoration:underline;">Requisitos</span></h2>
<ol>
<li style="text-align:justify;">Se necesitan tener instalados los siguientes paquetes:<br />
<blockquote>
<p style="text-align:left;"><strong>apache2<br />
apache2-mod_php5<br />
php5<br />
php5-mysql<br />
php5-snmp<br />
mysql-community-server<br />
net-snmp</strong></p>
</blockquote>
</li>
<li style="text-align:justify;">Para instalar los paquetes con zypper tenemos que ejecutar el siguiente comando:<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> zypper in apache2 apache2-mod_php5 php5 php5-mysql php5-snmp mysql-community-server net-snmp</strong></p>
</blockquote>
</li>
<p style="text-align:justify;"><strong><span style="text-decoration:underline;">OBS:</span></strong> Para instalar y configurar el motor de base de datos <strong>MySQL</strong> pueden seguir el manual <a href="http://labitacoradegabriel.wordpress.com/2010/04/02/mysql-y-phpmyadmin-en-opensuse/" target="_blank"><strong>MySQL y phpMyAdmin en openSUSE</strong></a>.</p>
</ol>
<h2 style="text-align:center;"><span style="text-decoration:underline;">Instalación de la Herramienta Cacti</span></h2>
<p>Los pasos que se siguieron para instalar esta herramienta de monitoreo son los siguientes:</p>
<ol>
<li style="text-align:justify;">Para comenzar les recomiendo buscar el paquete de instalación del software para su respectiva versión y arquitectura de <strong>openSUSE</strong> en el sitio oficial <strong><a href="http://software.opensuse.org" target="_blank">http://software.opensuse.org</a></strong> para luego instalarlo mediante el método <strong><a href="http://es.opensuse.org/One_Click_Install" target="_blank">One-Click Install</a></strong>. Es recomendable siempre instalar los paquetes de los repositorios oficiales que los pertenecientes a las contribuciones, principalmente porque el software de estos repositorios suelen ser en su gran mayoría muy estables.</li>
<li style="text-align:justify;">El siguiente paso consiste en crear en el motor de base de datos <strong>MySQL</strong> una nueva base de datos para la herramienta <strong>Cacti</strong>.<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> mysqladmin -u root -pcontraseña_de_root create cacti</strong></p>
</blockquote>
</li>
<li style="text-align:justify;">Importamos una base de datos por defecto para la herramienta <strong>Cacti</strong>:<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> mysql -u root -pcontraseña_de_root cacti &lt; /usr/share/cacti/cacti.sql</strong></p>
</blockquote>
</li>
<li style="text-align:justify;">Nos conectamos a la base de datos<strong> mysql</strong> con el usuario <strong>root</strong> para <strong>crear un nuevo usuario</strong> y otorgarle los permisos correspondientes para poder acceder y modificar el contenido de la base de datos <strong>cacti</strong> creada en el punto 2.<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> mysql -u root -pcontraseña_de_root mysql</strong></p>
</blockquote>
<blockquote><p><em>Welcome to the MySQL monitor.  Commands end with ; or \g.<br />
Your MySQL connection id is 295<br />
Server version: 5.1.46-log SUSE MySQL RPM</em></p>
<p><em>Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.<br />
This software comes with ABSOLUTELY NO WARRANTY. This is free software,<br />
and you are welcome to modify and redistribute it under the GPL v2 license</em></p>
<p><em>Type &#8216;help;&#8217; or &#8216;\h&#8217; for help. Type &#8216;\c&#8217; to clear the current input statement.</em></p>
<p><strong>mysql&gt; GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY &#8216;contraseña_para_cactiuser&#8217;;</strong><br />
<em>Query OK, 0 rows affected (0.00 sec)</em></p>
<p><strong>mysql&gt; flush privileges;</strong><br />
<em>Query OK, 0 rows affected (0.00 sec)</em></p>
<p style="text-align:left;"><strong>mysql&gt; exit</strong><br />
<em>Bye</em></p>
</blockquote>
</li>
<li style="text-align:justify;">Editamos el archivo <strong>config.php</strong> ubicado en el directorio y especificamos el tipo de base de datos, la base de datos por defecto a ser utilizada por la herramienta, el nombre del host en la cual se encuentra la base de datos y la definición del nombre del usuario y su respectiva contraseña con el cual <strong>Cacti</strong> se conectará a su base de datos, por otro lado, en el caso de que hayamos modificado el número de puerto por defecto en el que el motor de base de datos <strong>MySQL</strong> atiende las peticiones de conexión, ese mismo puerto lo tendremos que especificar en el archivo <strong>config.php</strong>.<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> vi /usr/share/cacti/include/config.php</strong></p>
</blockquote>
<blockquote>
<p style="text-align:left;"><strong>$database_type = &#8220;mysql&#8221;;<br />
$database_default = &#8220;cacti&#8221;;<br />
$database_hostname = &#8220;localhost&#8221;;<br />
$database_username = &#8220;cactiuser&#8221;;<br />
$database_password = &#8220;contraseña_de_cactiuser&#8221;;<br />
$database_port = &#8220;3306&#8243;;</strong></p>
</blockquote>
<p style="text-align:justify;">Guardamos los cambios y cerramos el archivo <strong>config.php</strong> para pasar al siguiente punto de configuración.</p>
</li>
<li style="text-align:justify;">En este paso tenemos que crear en el directorio <strong>/usr/share/cacti</strong> la carpeta <strong>log</strong>, luego que aplicar los permisos apropiados para los directorios <strong>rra</strong> y<strong> log</strong>, como la herramienta será ejecutada a través del servicio <strong>apache</strong>, debemos asignar a los directorios el usuario/grupo<strong> wwwrun/www</strong> respectivamente de forma recursiva para que el servicio pueda leer y escribir en dichos directorios.<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> mkdir /usr/share/cacti/log<br />
<span style="color:#ff0000;">fireserver:~ #</span> chown -Rf wwwrun:www /usr/share/cacti/rra<br />
<span style="color:#ff0000;">fireserver:~ #</span> chown -Rf wwwrun:www /usr/share/cacti/log</strong></p>
</blockquote>
</li>
<li style="text-align:justify;">Agregamos al servicio<strong> Cron</strong> (<em>servicio de tareas programadas en entornos Unix-Like</em>) del usuario <strong>root </strong>una directiva que tiene como objetivo realizar la limpieza del pool de la herramienta <strong>Cacti</strong>, es importante destacar que si bien la tarea programada es registrada por el usuario <strong>root</strong>, la ejecución de dicha directiva se ejecutará con el usuario especificado <strong>wwwrun</strong>:<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> crontab -e</strong></p>
</blockquote>
<blockquote>
<p style="text-align:left;"><strong><em># Ejecución de la graficación de Cacti cada 5 minutos.</em></strong><br />
<strong>*/5 * * * * wwwrun php /var/www/html/cacti/poller.php &gt; /dev/null 2&gt;&amp;1</strong></p>
</blockquote>
<p>Guardamos los cambios y salimos del editor de tareas programadas con el comando <strong>:wq</strong> del editor <strong>Vim</strong> y reiniciamos el servicio <strong>cron</strong>.</p>
<blockquote><p><strong><span style="color:#ff0000;">fireserver:~ #</span> service cron restart</strong></p></blockquote>
</li>
<li style="text-align:justify;">Luego debemos comentar las lineas correspondientes a <strong>Deny/Allow</strong> en el archivo <strong>/etc/apache2/conf.d/cacti.conf</strong> para que nos permita acceder remotamente, debería quedar como se muestra a continuación:<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> vi /etc/apache2/conf.d/cacti.conf</strong></p>
</blockquote>
<blockquote>
<p style="text-align:left;"><em><strong>#deny from all<br />
#allow from 127.0.0.1</strong></em></p>
</blockquote>
</li>
<li style="text-align:justify;">Reiniciamos el servicio <strong>apache</strong>.<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> service apache2 restart</strong></p>
</blockquote>
</li>
<li style="text-align:justify;">En este punto ya podemos acceder a la interfaz web de la herramienta <strong>Cacti </strong>colocando en la barra de direcciones de nuestro navegador favorito la URL <strong>http://your-server/cacti/</strong>, sin embargo, aún nos falta trabajo por hacer, debemos seguir con las instrucciones que nos muestra la interfaz web para culminar la instalación y configuración de la herramienta. En la primera pantalla nos informará sobre lo que es la herramienta en sí y el tipo de licencia que utiliza, presionamos en el botón <strong>Next</strong> para continuar.<br />
<a href="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti1.jpg" target="_blank"><img class="aligncenter size-medium wp-image-983" style="margin-top:10px;margin-bottom:10px;" title="cacti1" src="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti1.jpg?w=300&#038;h=218" alt="" width="300" height="218" /></a></li>
<li style="text-align:justify;">En la siguiente pantalla nos solicitará seleccionar que tipo de instalación es la que se está realizando, si es una instalación o una actualización, en mi caso es de tipo instalación nueva (<em>New Install</em>).<br />
<a href="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti2.jpg" target="_blank"><img class="aligncenter size-medium wp-image-984" style="margin-top:10px;margin-bottom:10px;" title="cacti2" src="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti2.jpg?w=300&#038;h=218" alt="" width="300" height="218" /></a></li>
<li style="text-align:justify;">En la tercera pantalla la herramienta desplegará un formulario en las que se muestran las rutas hacia los distintos directorios y librerías requeridos por la aplicación, como se podrá ver más abajo en la imagen, el propio sistema informa si las rutas a los directorios son correctas, en mi caso no fue necesario realizar ninguna modificación, concluí con la instalación haciendo clic en el botón <strong>Finish</strong>.<br />
<a href="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti3.jpg" target="_blank"><img class="aligncenter size-medium wp-image-985" style="margin-top:10px;margin-bottom:10px;" title="cacti3" src="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti3.jpg?w=271&#038;h=300" alt="" width="271" height="300" /></a></li>
<li style="text-align:justify;">Del paso anterior la herramienta directamente nos re-dirigirá a la interfaz de <strong>logueo</strong>, para acceder por primero vez ingresamos el usuario <strong>admin</strong> en el campo <strong><em>User Name</em></strong> y en el campo <strong><em>Password</em></strong> ingresamos la palabra <strong>admin </strong>nuevamente, luego nos conectamos presionando el botón <strong>Login</strong> como se muestra en la siguiente captura de pantalla.<br />
<a href="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti4.jpg" target="_blank"><img class="aligncenter size-medium wp-image-986" style="margin-top:10px;margin-bottom:10px;" title="cacti4" src="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti4.jpg?w=300&#038;h=224" alt="" width="300" height="224" /></a></li>
<li style="text-align:justify;">Luego de conectarnos por primera vez a la herramienta <strong>Cacti</strong> con el usuario <strong>admin</strong> automáticamente nos solicitará el cambio de la contraseña del mencionado usuario, esto se debe a que la contraseña por defecto es muy simple y vulnerable, así que como medida de seguridad se obliga al operador a cambiarla.<br />
<a href="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti5.jpg" target="_blank"><img class="aligncenter size-medium wp-image-987" style="margin-top:10px;margin-bottom:10px;" title="cacti5" src="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti5.jpg?w=300&#038;h=224" alt="" width="300" height="224" /></a></li>
<li style="text-align:justify;">Y con esto hemos concluido, luego de cambiar la contraseña por defecto del usuario <strong>admin</strong> pasamos a la interfaz de gestión de la herramienta <strong>Cacti</strong>, como dije al principio queda a cargo de ustedes aprender a utilizar esta potente herramienta, a continuación les dejo con una captura de la pantalla de gestión de la misma:<a href="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti6.jpg" target="_blank"><img class="aligncenter size-medium wp-image-982" style="margin-top:10px;margin-bottom:10px;" title="cacti6" src="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti6.jpg?w=300&#038;h=237" alt="" width="300" height="237" /></a></li>
</ol>
<h2 style="text-align:center;"><span style="text-decoration:underline;">Observaciones</span></h2>
<ul>
<li style="text-align:justify;">La instalación fue probada en el sistema operativo <strong>openSUSE Linux</strong> en su versión <strong>11.3</strong> y con la arquitectura <strong>x86</strong>.</li>
<li style="text-align:justify;">Para crear el usuario de <strong>Cacti </strong>en <strong>MySQL</strong> y ejecutar el script de creación de tablas iniciales podemos utilizar las otras herramientas, como son las herramientas <strong>GUI</strong> para <strong>mysql</strong> o el mismo <strong>phpMyAdmin</strong>.</li>
<li style="text-align:justify;">El directorio en donde se encuentra instalado <strong>Cacti</strong> en <strong>openSUSE x86</strong> y <strong>openSUSE x86</strong><strong>_64</strong><strong> </strong>es <strong>/usr/share/cacti/</strong> a diferencia del directorio <strong>/var/www/html/cacti/</strong> especificado en la documentación oficial de la herramienta.</li>
</ul>
<h2 style="text-align:center;"><span style="text-decoration:underline;">Enlaces Externos</span></h2>
<ul>
<li><a href="http://www.cacti.net/downloads/docs/html/install_unix.html" target="_blank"><strong>Manual de instalación para sistemas Unix-Linux</strong></a></li>
<li><strong><a href="http://www.cacti.net/" target="_blank">Sitio oficial de Cacti</a></strong></li>
<li><strong><a href="http://oss.oetiker.ch/rrdtool/" target="_blank">Sitio oficial de </a></strong><strong><a href="http://oss.oetiker.ch/rrdtool/" target="_blank">RRDtool</a></strong></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/labitacoradegabriel.wordpress.com/551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/labitacoradegabriel.wordpress.com/551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/labitacoradegabriel.wordpress.com/551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/labitacoradegabriel.wordpress.com/551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/labitacoradegabriel.wordpress.com/551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/labitacoradegabriel.wordpress.com/551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/labitacoradegabriel.wordpress.com/551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/labitacoradegabriel.wordpress.com/551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/labitacoradegabriel.wordpress.com/551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/labitacoradegabriel.wordpress.com/551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/labitacoradegabriel.wordpress.com/551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/labitacoradegabriel.wordpress.com/551/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/labitacoradegabriel.wordpress.com/551/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/labitacoradegabriel.wordpress.com/551/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=551&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://labitacoradegabriel.wordpress.com/2010/10/01/instalacion-de-cacti-en-opensuse/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd8d25d32f536246603dea6e5608a00b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yodygkw</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti1.jpg?w=300" medium="image">
			<media:title type="html">cacti1</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti2.jpg?w=300" medium="image">
			<media:title type="html">cacti2</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti3.jpg?w=271" medium="image">
			<media:title type="html">cacti3</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti4.jpg?w=300" medium="image">
			<media:title type="html">cacti4</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti5.jpg?w=300" medium="image">
			<media:title type="html">cacti5</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/10/cacti6.jpg?w=300" medium="image">
			<media:title type="html">cacti6</media:title>
		</media:content>
	</item>
		<item>
		<title>Instalación de Subversion, USVN y WebSVN en openSUSE</title>
		<link>http://labitacoradegabriel.wordpress.com/2010/09/30/instalacion-de-subversion-usvn-y-websvn-en-opensuse/</link>
		<comments>http://labitacoradegabriel.wordpress.com/2010/09/30/instalacion-de-subversion-usvn-y-websvn-en-opensuse/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 14:55:40 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[Guías]]></category>
		<category><![CDATA[Informática]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[FreeSoftware]]></category>
		<category><![CDATA[Herramienta Web]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[openSUSE]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[USVN]]></category>
		<category><![CDATA[ViewVC]]></category>
		<category><![CDATA[WebSVN]]></category>

		<guid isPermaLink="false">http://labitacoradegabriel.com/?p=794</guid>
		<description><![CDATA[En esta guía voy a fusionar dos tutoriales que hice en un pasado sobre Subversion + Apache + SSL y USVN completando el circulo con la herramienta WebSVN que es una excelente alternativa a ViewVC, la idea de esto es juntar algunas partes de cada tutorial e incluir algunas nuevas para armar una nueva combinación [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=794&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">En esta guía voy a fusionar dos tutoriales que hice en un pasado sobre <a href="http://labitacoradegabriel.wordpress.com/2008/05/30/manual-para-configurar-subversion-apache-ssl-en-opensuse" target="_blank"><strong>Subversion + Apache + SSL</strong></a> y <a href="http://labitacoradegabriel.wordpress.com/2008/06/10/usvn-una-herramienta-web-para-gestionar-proyectos-de-subversion" target="_blank"><strong>USVN</strong></a> completando el circulo con la herramienta <strong><a href="http://www.websvn.info" target="_blank">WebSVN</a></strong> que es una excelente alternativa a <a href="http://labitacoradegabriel.wordpress.com/2008/06/03/viewvc-un-navegador-de-repositorios-para-subversion" target="_blank"><strong>ViewVC</strong></a>, la idea de esto es juntar algunas partes de cada tutorial e incluir algunas nuevas para armar una nueva combinación de pasos que tendrá una configuración final totalmente funcional y operativa combinando lo mejor de todas estas herramientas.</p>
<p style="text-align:justify;">Con esto se busca desechar muchos pasos de los artículos anteriores cuya información era engorrosa y complicada de interpretar. También con este nueva guía se trata de lograr una mejor integración entre todas las herramientas, ya que en los artículos anteriores, por ejemplo en el caso de <a href="http://labitacoradegabriel.wordpress.com/2008/05/30/manual-para-configurar-subversion-apache-ssl-en-opensuse" target="_blank"><strong>Subversion + Apache + SSL</strong></a> y <a href="http://labitacoradegabriel.wordpress.com/2008/06/03/viewvc-un-navegador-de-repositorios-para-subversion" target="_blank"><strong>ViewVC</strong></a>, ambos estaban mas o menos relacionados entre si con la creación de repositorios manuales de Subversion y la posterior configuración de <a href="http://labitacoradegabriel.wordpress.com/2008/06/03/viewvc-un-navegador-de-repositorios-para-subversion" target="_blank"><strong>ViewVC</strong></a><strong> </strong>para conectarse a los mismos, sin embargo, buena parte de las configuraciones de los tutoriales de <a href="http://labitacoradegabriel.wordpress.com/2008/05/30/manual-para-configurar-subversion-apache-ssl-en-opensuse" target="_blank"><strong>Subversion + Apache + SSL</strong></a> y <a href="http://labitacoradegabriel.wordpress.com/2008/06/03/viewvc-un-navegador-de-repositorios-para-subversion" target="_blank"><strong>ViewVC</strong></a> pierden su enfoque con la entrada de la herramienta <a href="http://labitacoradegabriel.wordpress.com/2008/06/10/usvn-una-herramienta-web-para-gestionar-proyectos-de-subversion" target="_blank"><strong>USVN</strong></a>, ya que con esta última se gestionan los usuarios, grupos, repositorios, etc. para proyectos svn.</p>
<p style="text-align:justify;">Quiero aclarar que varios puntos serán similares al contenido de los artículos anteriores, quiero evitar reescribir las partes que estaban claras, por otro lado, he decidido no abarcar en este tutorial a la herramienta <a href="http://labitacoradegabriel.wordpress.com/2008/06/03/viewvc-un-navegador-de-repositorios-para-subversion" target="_blank"><strong>ViewVC</strong></a> ya que he encontrado en la herramienta <strong><a href="http://www.websvn.info" target="_blank">WebSVN</a></strong> lo que finalmente necesitaba, aunque la primera no deja de ser una buena elección.</p>
<h2 style="text-align:center;"><span style="text-decoration:underline;">Instalación de Paquetes<br />
</span></h2>
<ol>
<li style="text-align:justify;">Los paquetes que deberán verificar que se encuentren instalados (<em>o instalarlos si no lo están</em>) son los que se citan a continuación:<br />
<blockquote><p><strong>apache2<br />
apache2-prefork<br />
php5<br />
apache2-mod_php5<br />
libapr1<br />
libapr-util1<br />
neon<br />
subversion<br />
subversion-doc<br />
subversion-server<br />
sqlite3</strong></p></blockquote>
<p>Todos los paquetes mencionados se encuentran disponibles en los repositorios oficiales de <strong>openSUSE</strong> (<em>y también en el CD o DVD de instalación, aunque posiblemente algo desactualizados</em>).</li>
<li>Para instalarlos mediante <strong>zypper</strong> lo podemos hacer con el siguiente comando:<br />
<blockquote><p><strong><span style="color:#ff0000;">fireserver:~ #</span> zypper in apache2 apache2-prefork php5 apache2-mod_php5 libapr1 libapr-util1 neon subversion subversion-doc subversion-server sqlite3</strong></p></blockquote>
</li>
</ol>
<h2 style="text-align:center;"><span style="text-decoration:underline;"><span style="text-decoration:underline;">Configuración de Apache</span></span></h2>
<ol>
<li style="text-align:justify;"> La forma más recomendable de utilizar <strong>subversion</strong> es publicando los repositorios a través del servicio http que ofrece Apache sobre el protocolo de red <strong>WebDAV/DeltaV</strong> y esto es posible gracias a los módulos que permiten su integración (<em>que son instalados con el paquete <strong>subversion-server</strong></em>), así que lo primero que debemos hacer es dirigirnos al directorio <strong>/etc/sysconfig</strong> y editar el archivo <strong>apache2</strong> para agregar los módulos correspondientes, una vez en el archivo nos dirigimos a la sección <strong>APACHE_MODULES</strong> para agregar al final el módulo <strong>dav</strong> y <strong>dav_svn</strong>:<br />
<blockquote><p><strong><span style="color:#ff0000;">fireserver:~ #</span> vi /etc/sysconfig/apache2</strong></p></blockquote>
<blockquote>
<p style="text-align:left;"><strong>APACHE_MODULES</strong>=&#8221;actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl userdir php5 perl <span style="color:#ff0000;"><strong>dav dav_svn</strong></span>&#8220;</p>
</blockquote>
</li>
<li style="text-align:justify;"><strong>Conexiones seguras mediante APACHE+SSL</strong>: Subversion puede aprovechar los beneficios que ofrece <strong>Apache</strong> y uno de ellos es el acceso seguro mediante el protocolo <strong>https</strong> que implementa <strong>SSL</strong> para establecer las conexiones. Lo primero que tendremos que hacer es dirigirnos nuevamente al directorio <strong>/etc/sysconfig</strong> y abrir el archivo <strong>“apache2”</strong>, donde tendremos que verificar que el módulo <strong>“ssl”</strong> esté definido en la directiva <strong>APACHE_MODULES</strong>:<br />
<blockquote>
<p style="text-align:left;"><strong>APACHE_MODULES</strong>=&#8221;actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif <span style="color:#ff0000;"><strong>ssl</strong></span> userdir php5 perl dav dav_svn&#8221;</p>
</blockquote>
<p>También, en el mismo archivo tenemos que verificar que la directiva <strong>APACHE_SERVER_FLAGS</strong> sea igual a <strong>“SSL”</strong> como se muestra a continuación:</p>
<blockquote>
<p style="text-align:left;"><strong>APACHE_SERVER_FLAGS</strong>=&#8221;<span style="color:#ff0000;"><strong>SSL</strong></span>&#8220;</p>
</blockquote>
</li>
<li style="text-align:justify;">Tenemos que verificar que <strong>Apache</strong> esté correctamente configurado para que escuche en los puertos indicados, tanto en el puerto por defecto que es el <strong>80</strong> como así también para las conexiones seguras que normalmente es el <strong>443</strong>, para ello nos vamos al directorio <strong>/etc/apache2/</strong> y ahí abrimos el archivo llamado <strong>listen.conf </strong>que debería tener el siguiente contenido:<br />
<blockquote><p><strong><span style="color:#ff0000;">fireserver:~ #</span> vi /etc/apache2/listen.conf</strong></p></blockquote>
<pre><strong>Listen 80

&lt;IfDefine SSL&gt;
    &lt;IfDefine !NOSSL&gt;
        &lt;IfModule mod_ssl.c&gt;
            Listen 443
        &lt;/IfModule&gt;
    &lt;/IfDefine&gt;
&lt;/IfDefine&gt;</strong></pre>
</li>
<li style="text-align:justify;"><strong> Generación del Certificado:</strong> Varias formas existen para generar un certificado, una de ellas y el método más simple es generar un certificado automáticamente sin información adicional, para ello hay que ejecutar el siguiente comando:<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> gensslcert</strong></p>
</blockquote>
<p>Este comando sobre escribirá los siguientes archivos:</p>
<blockquote>
<p style="text-align:left;"><strong>/etc/apache2/ssl.crt/ca.crt<br />
/etc/apache2/ssl.key/server.key<br />
/etc/apache2/ssl.crt/server.crt<br />
/etc/apache2/ssl.csr/server.csr</strong></p>
</blockquote>
<p>También creará un nuevo archivo <strong>CA.crt</strong> en el directorio <strong>/srv/www/htdocs/</strong> para ser descargado por los clientes que se conectan bajo el protocolo https.</li>
<li style="text-align:justify;"><strong>Generación de Certificado Personalizado:</strong> Si queremos generar un certificado con información personalizada de nuestra organización podemos indicarle al comando <strong>“gensslcert”</strong> varios argumentos para enriquecer el contenido del certificado como se muestra a continuación:<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> gensslcert -C &#8220;labitacoradegabriel&#8221; -N &#8220;Este es un Certificado de Ejemplo&#8221; -c PY -s  Itapúa -l BV -o &#8220;Gabriel-Corp.&#8221; -u &#8220;Unidad Informatica&#8221; -n &#8220;labitacoradegabriel.wordpress.com&#8221; -e &#8220;labitacoradegabriel@gmail.com&#8221; -y 60</strong></p>
</blockquote>
<p>Al ejecutar el comando se crearán una serie de archivos inicialmente llamados con el nombre <strong>labitacoradegabriel</strong> en los siguientes directorios:</p>
<blockquote>
<p style="text-align:left;"><strong>/etc/apache2/ssl.crt/labitacoradegabriel-ca.crt<br />
/etc/apache2/ssl.crt/labitacoradegabriel-server.crt<br />
/etc/apache2/ssl.csr/labitacoradegabriel-server.csr<br />
/etc/apache2/ssl.key/labitacoradegabriel-ca.key<br />
/etc/apache2/ssl.key/labitacoradegabriel-server.key<br />
/srv/www/htdocs/LABITACORADEGABRIEL-CA.crt</strong></p>
</blockquote>
</li>
<li style="text-align:justify;">Luego hay que crear una copiar del archivo <strong>/etc/apache2/vhosts.d/vhost-ssl.template</strong> y renombrarlo a <strong>vhost-ssl.conf</strong>.<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> cd /etc/apache2/vhosts.d<br />
<span style="color:#ff0000;"> fireserver:/etc/apache2/vhosts.d #</span> cp vhost-ssl.template vhost-ssl.conf</strong></p>
</blockquote>
<p>Si hemos creado un certificado personalizado como en el punto Nº 6 y queremos que éste sea el certificado utilizado para la autenticación tendremos que editar el archivo <strong>vhost-ssl.conf</strong> en el directorio <strong>/etc/apache2/vhosts.d/</strong> y modificar las directivas que se citan a continuación con los nombres de los archivos generados anteriormente:</p>
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> vi /etc/apache2/vhosts.d/vhost-ssl.conf</strong></p>
</blockquote>
<blockquote>
<p style="text-align:left;"><strong>SSLCertificateFile /etc/apache2/ssl.crt/labitacoradegabriel-server.crt<br />
SSLCertificateKeyFile /etc/apache2/ssl.key/labitacoradegabriel-server.key</strong></p>
</blockquote>
<p>Con esto hemos creado un host virtual exclusivo para las conexiones seguras, lo siguiente que resta es reiniciar el servicio apache y verificar que la configuración para conexiones seguras funcione correctamente:</p>
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span></strong><strong> service apache2 restart</strong><br />
<em> Syntax OK<br />
Shutting down httpd2 (waiting for all children to terminate)   done<br />
Starting httpd2 (prefork)                                                                        done</em><br />
<strong><span style="color:#ff0000;">fireserver:~ #</span></strong><strong> httpd2 -S -DSSL</strong><br />
<em> VirtualHost configuration:<br />
wildcard NameVirtualHosts and _default_ servers:<br />
_default_:443          fireserver.selfip.net (/etc/apache2/vhosts.d/vhost-ssl.conf:37)<br />
Syntax OK</em><br />
<strong><span style="color:#ff0000;">fireserver:~ #</span></strong></p>
</blockquote>
</li>
<li style="text-align:justify;">El siguiente paso consiste en abrir el puerto <strong>HTTP (80)</strong> y <strong>HTTPS (443)</strong> en el firewall del servidor<strong>, </strong>para ello editamos el archivo <strong>SuSEfirewall2</strong> del directorio <strong>/etc/sysconfig</strong> y le asignamos los servicios <strong>apache2</strong> y <strong>apache2-ssl</strong> a la directiva <strong>FW_CONFIGURATIONS_EXT</strong> como se muestra a continuación:<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> vi /etc/sysconfig/SuSEfirewall2</strong></p>
</blockquote>
<blockquote>
<p style="text-align:left;"><strong>FW_CONFIGURATIONS_EXT</strong>=&#8221;<strong><span style="color:#ff0000;">apache2 apache2-ssl</span></strong> mysql netbios-server samba-server sshd vsftpd xorg-x11-server&#8221;</p>
</blockquote>
<p>Luego reiniciamos el cortafuegos para que la nueva configuración tome efecto y lo podemos hacer con el siguiente comando:</p>
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> rcSuSEfirewall2 restart</strong></p>
</blockquote>
</li>
<li>Ahora ya nos podemos conectar desde un equipo remoto a nuestro servidor apache con nuestro navegador preferido, si probamos el protocolo seguro https, el servidor apache que hemos configurado recientemente emitirá el certificado con la información que hemos definido.<br />
<a href="http://labitacoradegabriel.files.wordpress.com/2010/06/certificado.png" target="_blank"><img class="aligncenter size-medium wp-image-867" title="certificado" src="http://labitacoradegabriel.files.wordpress.com/2010/06/certificado.png?w=274&#038;h=300" alt="" width="274" height="300" /></a></li>
</ol>
<h2 style="text-align:center;"><span style="text-decoration:underline;">Subversion</span></h2>
<p style="text-align:justify;">El único paso que tenemos que llevar a cabo teniendo instalados los paquetes de subversion es agregar al sistema operativo un nuevo grupo y usuario de sistema para la aplicación, ambos llamados <strong>svn</strong>. El usuario <strong>svn</strong> es necesario para ejecutar el software por primera vez y lamentablemente no se crea automáticamente durante la instalación del paquete. Lo podemos agregar mediante los siguientes comandos:</p>
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> groupadd -r svn<br />
<span style="color:#ff0000;"> fireserver:~ </span><span style="color:#ff0000;">#</span> useradd -r -g svn svn</strong></p>
</blockquote>
<h2 style="text-align:center;"><span style="text-decoration:underline;"><span style="text-decoration:underline;">USVN</span></span></h2>
<p style="text-align:justify;"><strong>USVN </strong>(<em>UserFriendly SVN</em>) es una herramienta que permite gestionar proyectos de <strong>Subversion</strong>. El sitio web del proyecto es <a href="http://www.usvn.info/" target="_blank"><strong>http://www.usvn.info</strong></a> de donde se puede descargar esta herramienta y encontrar información acerca de la misma, los pasos detallados para instalar la herramienta se citan a continuación:</p>
<ol style="text-align:justify;">
<li style="text-align:justify;">El primer paso de esta sección consiste en dirigirnos al directorio raíz del <strong>Apache</strong> que como sabrán en <strong>openSUSE</strong> es el directorio <strong>/srv/www/htdocs</strong>, descargamos del sitio oficial de <strong>USVN</strong> la última versión de la herramienta y realizamos algunos ajustes, los comandos se detallan a continuación:<br />
<blockquote><p><strong><span style="color:#ff0000;">fireserver:~ #</span> cd /srv/www/htdocs/<br />
<span style="color:#ff0000;"> fireserver:/srv/www/htdocs #</span> wget http://www.usvn.info/download/get/1.0.1+Boo/tgz.dl</strong><br />
<em>&#8211;2010-09-03 21:58:04&#8211;  http://www.usvn.info/download/get/1.0.1+Boo/tgz.dl<br />
Resolviendo www.usvn.info&#8230; 163.5.84.230<br />
&#8230;<br />
&#8230;<br />
Petición HTTP enviada, esperando respuesta&#8230; 200 OK<br />
Longitud: 3478368 (3,3M) [application/x-tar]<br />
Saving to: `usvn-1.0.1.tgz&#8217;</em></p>
<p><em>100%[==========================&gt;] 3.478.368   5,60K/s   in 6m 38s</em></p>
<p><em>2010-09-03 22:04:47 (8,54 KB/s) &#8211; `usvn-1.0.1.tgz&#8217; saved [3478368/3478368]</em></p>
<p><strong><span style="color:#ff0000;">fireserver:/srv/www/htdocs #</span> tar -xzf usvn-1.0.1.tgz<br />
<span style="color:#ff0000;"> fireserver:/srv/www/htdocs #</span> mv usvn-1.0 usvn<br />
<span style="color:#ff0000;"> fireserver:/srv/www/htdocs #</span> mkdir usvn/files<br />
<span style="color:#ff0000;"> fireserver:/srv/www/htdocs #</span> chown -Rf wwwrun:www usvn<br />
<span style="color:#ff0000;"> fireserver:/srv/www/htdocs #</span> rm usvn-1.0.1.tgz<br />
<span style="color:#ff0000;"> fireserver:/srv/www/htdocs #</span></strong></p></blockquote>
<p><strong><span style="text-decoration:underline;">OBS:</span></strong> Con el comando <strong>mkdir usvn/files</strong> se crea el directorio <strong>files</strong> dentro del directorio <strong>usvn</strong> y que servirá para albergar los archivos de los proyectos <strong>SVN</strong>.</li>
<li>Lo siguiente que tenemos que agregar a la directiva <strong>APACHE_MODULES</strong> del archivo <strong>/etc/sysconfig/apache2</strong> los módulos <strong>authz_svn</strong> y <strong>rewrite </strong>como se muestra a continuación:<br />
<blockquote><p><strong><span style="color:#ff0000;">fireserver:~ #</span> vi /etc/sysconfig/apache2</strong></p></blockquote>
<blockquote><p><strong>APACHE_MODULES</strong>=&#8221;actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl userdir php5 perl dav dav_svn <strong><span style="color:#ff0000;">authz_svn rewrite</span></strong>&#8220;</p></blockquote>
</li>
<li>Luego debemos crear en el directorio <strong>conf</strong> de <strong>Apache</strong> un archivo de configuración con unas directivas básicas para arrancar por primera vez la herramienta <strong>USVN</strong>:<br />
<blockquote><p><strong><span style="color:#ff0000;">fireserver:~ #</span> cd /etc/apache2/conf.d/<br />
<span style="color:#ff0000;"> fireserver:/etc/apache2/conf.d #</span> touch usvn.conf<br />
<span style="color:#ff0000;"> fireserver:/etc/apache2/conf.d #</span> vi usvn.conf</strong></p></blockquote>
<pre><strong>Alias /usvn /srv/www/htdocs/usvn/public
&lt;Directory /srv/www/htdocs/usvn/public&gt;
        Options +SymLinksIfOwnerMatch
        AllowOverride All
        Order allow,deny
        Allow from all
&lt;/Directory&gt;</strong></pre>
</li>
<li>Para que los pasos anteriores tomen efecto necesitamos reiniciar el servicio <strong>Apach</strong>e:<br />
<blockquote><p><strong><span style="color:#ff0000;">fireserver:~ #</span> service apache2 restart</strong></p></blockquote>
</li>
<li>Ahora si ya podemos acceder a la herramienta colocando en la barra de direcciones del navegador de nuestra preferencia la URL: <strong>http://fireserver/usvn/install.php</strong>, lo que hará desplegar un asistente de configuración cuyos pasos se muestran a continuación:
<ol>
<li style="text-align:justify;"><strong>Accedemos a la siguiente URL para iniciar la instalación de la herramienta USVN:</strong><br />
<blockquote><p><strong>http://ip_o_nombre_del_servidor/usvn/install.php</strong></p></blockquote>
</li>
<li style="text-align:justify;"><strong>Página de Bienvenida, Verificaciones Previas y </strong><strong>Selección de Idioma:</strong>
<p style="text-align:center;"><a href="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn01.png" target="_blank"><img title="usvn01" src="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn01.png?w=150&#038;h=140" alt="" width="150" height="140" /> </a><a href="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn02.png" target="_blank"><img title="usvn02" src="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn02.png?w=150&#038;h=140" alt="" width="150" height="140" /></a> <a href="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn03.png" target="_blank"><img title="usvn03" src="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn03.png?w=150&#038;h=140" alt="" width="150" height="140" /></a></p>
</li>
<li><strong>Licencia y Configuración de Título y Directorios:</strong> En el paso 3 nos muestras la licencia de uso del software donde tenemos que ir hasta el final para aceptarla, ya en el paso 4 podemos definir un título y los directorios en donde se almacenarán las distintas configuraciones, yo lo deje con la configuración por defecto:
<p style="text-align:center;"><a href="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn041.png" target="_blank"><img title="usvn04" src="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn041.png?w=150&#038;h=140" alt="" width="150" height="140" /></a> <a href="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn051.png" target="_blank"><img title="usvn05" src="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn051.png?w=150&#038;h=140" alt="" width="150" height="140" /></a></p>
</li>
<li><strong>Creación de Base de Datos y Administrador de USVN:</strong> En el paso 5 nos toca configurar la base de datos que vamos a utilizar, como mi demanda de usuarios no va a ser muy grande utilicé el soporte para <strong>sqlite</strong>, sin embargo, también es posible utilizar <strong>MySQL</strong>, otra cosa, no nos tenemos que olvidar de tener instalado el motor de base de datos que seleccionamos. En el paso 6 ingresamos los datos de quien será el administrador de <strong>USVN</strong>:
<p style="text-align:center;"><a href="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn06.png" target="_blank"><img title="usvn06" src="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn06.png?w=150&#038;h=140" alt="" width="150" height="140" /></a><a href="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn07.png" target="_blank"> <img title="usvn07" src="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn07.png?w=150&#038;h=140" alt="" width="150" height="140" /></a></p>
</li>
<li><strong>Chequeo de Nuevas Versiones y Finalización de la Instalación:</strong> En el paso 7 consulta si deseamos que nos avise si existe una nueva versión para descargar, al final de esa página hay 2 botones que nos permiten seleccionar nuestra opción de preferencia.
<p style="text-align:center;"><a href="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn08.png" target="_blank"><img class="alignnone size-thumbnail wp-image-882" title="usvn08" src="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn08.png?w=150&#038;h=140" alt="" width="150" height="140" /></a> <a href="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn09.png" target="_blank"><img class="alignnone size-thumbnail wp-image-883" title="usvn09" src="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn09.png?w=140&#038;h=140" alt="" width="140" height="140" /></a></p>
<p>La configuración propuesta a partir de la configuración previa que aparece en la captura 09 para la herramienta <strong>USVN</strong> (<em>Paso 8</em>) se nos indica que hay unas líneas que hay que agregar al archivo <strong>httpd.conf</strong> del <strong>Apache</strong>, sin embargo, para que quede más ordenado, yo agregué esas líneas al final del archivo <strong>/etc/apache2/conf.d/usvn.conf</strong> donde funciona igual:</p>
<blockquote><p><strong><span style="color:#ff0000;">fireserver:~ #</span> vi /etc/apache2/conf.d/usvn.conf</strong></p></blockquote>
<pre><strong>&lt;Location /svn/&gt;
        ErrorDocument 404 default
        DAV svn
        Require valid-user
        SVNParentPath /srv/www/htdocs/usvn/files/svn
        SVNListParentPath off
        AuthType Basic
        AuthName "Fireserver USVN"
        AuthUserFile /srv/www/htdocs/usvn/files/htpasswd
        AuthzSVNAccessFile /srv/www/htdocs/usvn/files/authz
&lt;/Location&gt;</strong></pre>
</li>
</ol>
</li>
<li>Para que la nueva configuración de la herramienta <strong>USVN</strong> tome efecto necesitamos reiniciar el servicio <strong>Apache</strong>:<br />
<blockquote><p><strong><span style="color:#ff0000;">fireserver:~ #</span> service apache2 restart</strong></p></blockquote>
</li>
<li>Ahora ya vamos a poder acceder a la herramienta <strong>USVN</strong> desde nuestro navegador preferido sin problemas colocando la URL<strong> http://nombre_o_ip_servidor/usvn</strong>.</li>
<p style="text-align:center;"><a href="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn101.png" target="_blank"><img class="size-medium wp-image-888 aligncenter" title="usvn10" src="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn101.png?w=300&#038;h=198" alt="" width="300" height="198" /></a></p>
<li>Una vez adentro tenemos todas las opciones para administrar nuestros proyectos, entre ellos podemos destacar la creación de usuarios y su asociación a Grupos, Creación de varios proyectos, asignación de permisos de lectura/escritura a carpetas por grupos definidos, etc etc.</li>
</ol>
<h2 style="text-align:center;"><span style="text-decoration:underline;"><span style="text-decoration:underline;">WebSVN<br />
</span></span></h2>
<p style="text-align:justify;">Como ya dije durante la introducción, la herramienta <strong>WebSVN</strong> es una excelente opción a <a href="http://labitacoradegabriel.wordpress.com/2008/06/03/viewvc-un-navegador-de-repositorios-para-subversion" target="_blank"><strong>ViewVC</strong></a>, cumple con la misma función y desde mi punto de vista posee una interfaz muy interesante que define perfectamente la estructura de directorios que forman parte de nuestro repositorio <strong>SVN</strong>, al menos en su tema por defecto llamado <strong>calm</strong>, también es importante destacar su soporte multi-lenguaje.</p>
<ol style="text-align:justify;">
<li style="text-align:justify;">Como primer paso para instalar la herramienta <strong>WebSVN</strong> tenemos que dirigirnos al repositorio <strong>/srv/www/htdocs</strong>, descargar en dicho repositorio la última versión estable de la herramienta <strong>WebSVN</strong> directamente desde su sitio web, descomprimirlo, renombrar el nombre de la carpeta, aplicarle el dueño/grupo y los permisos adecuados:<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserverr:~ #</span> cd /srv/www/htdocs/<br />
<span style="color:#ff0000;"> fireserverr:/srv/www/htdocs #</span> wget http://websvn.tigris.org/files/documents/1380/47525/websvn-2.3.1.tar.gz</strong><br />
<em> &#8211;2010-09-24 11:32:01&#8211;  http://websvn.tigris.org/files/documents/1380/47525/websvn-2.3.1.tar.gz<br />
Connecting to 192.168.10.246:3128&#8230; connected.<br />
Proxy request sent, awaiting response&#8230; 302 Moved Temporarily<br />
Location: http://websvn.tigris.org/servlets/ProjectDocumentDownload?documentID=47525 [following]<br />
&#8211;2010-09-24 11:32:01&#8211;  http://websvn.tigris.org/servlets/ProjectDocumentDownload?documentID=47525<br />
Connecting to 192.168.10.246:3128&#8230; connected.<br />
Proxy request sent, awaiting response&#8230; 302 Moved Temporarily<br />
Location: http://www.tigris.org/files/documents/1380/47525/websvn-2.3.1.tar.gz [following]<br />
&#8211;2010-09-24 11:32:01&#8211;  http://www.tigris.org/files/documents/1380/47525/websvn-2.3.1.tar.gz<br />
Connecting to 192.168.10.246:3128&#8230; connected.<br />
Proxy request sent, awaiting response&#8230; 200 OK<br />
Length: 792363 (774K) [application/x-gzip]<br />
Saving to: `websvn-2.3.1.tar.gz&#8217;</em></p>
<p style="text-align:left;"><em>100%[===========================================================&gt;] 792,363      141K/s   in 5.8s</em></p>
<p style="text-align:left;"><em>2010-09-24 11:32:08 (133 KB/s) &#8211; `websvn-2.3.1.tar.gz&#8217; saved [792363/792363]</em></p>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:/srv/www/htdocs #</span> tar -xzf websvn-2.3.1.tar.gz<br />
<span style="color:#ff0000;"> fireserver:/srv/www/htdocs #</span> mv websvn-2.3.1 websvn<br />
<span style="color:#ff0000;"> fireserver:/srv/www/htdocs #</span> chown -Rf wwwrun:www websvn<br />
<span style="color:#ff0000;"> fireserver:/srv/www/htdocs #</span> rm websvn-2.3.1.tar.gz<br />
<span style="color:#ff0000;"> fireserver:/srv/www/htdocs #</span></strong></p>
</blockquote>
</li>
<li>Pasamos al directorio <strong>/srv/www/htdocs/websvn/include</strong> y creamos una copia del archivo <strong>distconfig.php</strong> con el nombre <strong>config.php</strong>, el archivo debe llevar el nombre <strong>config.php</strong> porque es este el nombre del archivo de configuración que la herramienta <strong>WebSVN</strong> busca por defecto al arrancar.<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> cd /srv/www/htdocs/websvn/include<br />
<span style="color:#ff0000;"> fireserver:/srv/www/htdocs/websvn/include #</span> cp distconfig.php config.php</strong></p>
</blockquote>
</li>
<li>El siguiente paso consiste en editar el nuevo archivo <strong>config.php</strong> y en la sección <strong>REPOSITORY SETUP</strong> del mismo configuramos todos nuestros repositorios que tengamos, en este ejemplo voy a agregar un repositorio local llamado <strong>docs</strong> creado y administrado con la herramienta <strong>usvn</strong>:<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> vi /srv/www/htdocs/websvn/include/config.php</strong></p>
</blockquote>
<blockquote>
<p style="text-align:left;"><strong>$config-&gt;addRepository(&#8216;<span style="color:#ff0000;">Documentos</span>&#8216;, &#8216;<span style="color:#ff0000;">file:///srv/www/htdocs/usvn/files/svn/docs/</span>&#8216;);</strong></p>
</blockquote>
<p>En el mismo archivo pero en la sección <strong>ACCESS RIGHTS</strong> configuramos la directiva <strong>useAuthenticationFile</strong> con la ruta completa hacia el archivo <strong>authz</strong> generado por nuestro gestor web de repositorios subversion que es <strong>USVN</strong>, la definición debería quedar como sigue:</p>
<blockquote>
<p style="text-align:left;"><strong>$config-&gt;useAuthenticationFile(&#8216;/<span style="color:#ff0000;">srv/www/htdocs/usvn/files/authz</span>&#8216;);</strong></p>
</blockquote>
<p>Salimos del archivo de configuración guardando la configuración para pasar al siguiente punto.</li>
<li>Necesitamos crear un archivo de configuración para la herramienta <strong>WebSVN</strong> en <strong>Apache</strong> para definir el mecanismo de autenticación que se va a utilizar, así que necesitamos dirigirnos al directorio <strong>/etc/apache2/conf.d</strong> y crear un archivo de texto llamado <strong>websvn.conf</strong>.<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> cd /etc/apache2/conf.d/<br />
<span style="color:#ff0000;"> fireserver:/etc/apache2/conf.d #</span> touch websvn.conf</strong></p>
</blockquote>
</li>
<li>Editamos el archivo creado en el paso anterior y agregamos las siguientes lineas.<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:/etc/apache2/conf.d #</span> vi websvn.conf</strong></p>
</blockquote>
<pre><strong>&lt;Location /websvn/&gt;
        ErrorDocument 404 default
        Require valid-user
        AuthType Basic
        AuthName "WebSVN"
        AuthUserFile /srv/www/htdocs/usvn/files/htpasswd
&lt;/Location&gt;</strong></pre>
<p>Como verán el archivo <strong>htpasswd</strong> especificado en la directiva <strong>AuthUserFile</strong> corresponde al archivo generado por la herramienta <strong>USVN</strong>, agregado el texto anterior guardamos y salimos del archivo <strong>websvn.con</strong>f.</li>
<li>Reiniciamos el servicio apache:<br />
<blockquote>
<p style="text-align:left;"><strong><span style="color:#ff0000;">fireserver:~ #</span> service apache2 restart</strong></p>
</blockquote>
</li>
<li>Por último accedemos a la herramienta colocando en nuestro navegador preferido la URL <strong>http://ip_o_nombre_servidor/websvn</strong>, donde para acceder tendremos que colocar un usuario y su respectiva contraseña para finalmente poder visualizar el repositorio, a continuación les dejo con una captura de pantalla de dicha herramienta.</li>
</ol>
<p style="text-align:justify;"><a href="http://labitacoradegabriel.files.wordpress.com/2010/06/websvn.png" target="_blank"><img class="aligncenter size-medium wp-image-918" title="websvn" src="http://labitacoradegabriel.files.wordpress.com/2010/06/websvn.png?w=300&#038;h=214" alt="" width="300" height="214" /></a></p>
<p style="text-align:justify;">Una aclaración importante es que aparte de validar el acceso a la herramienta<strong> WebSVN</strong> en base a los usuarios registrados con la herramienta <strong>USVN</strong>, también limita el acceso a los repositorios según los permisos de accesos otorgados a cada usuario también mediante la herramienta <strong>USVN</strong>, esto nos facilita el trabajo ya que la gestión de usuarios, grupos y permisos a repositorios se centraliza en una sola herramienta que en este caso es <strong>USVN</strong>.</p>
<h2 style="text-align:center;"><span style="text-decoration:underline;">Observaciones</span></h2>
<p style="text-align:justify;">Cuando se trata de acceder a un repositorio de subversion a través de un servidor proxy es posible que se presenten inconvenientes, esto es a causa de que los servidores proxy no suelen interpretar o soportar todos los métodos que ofrece <strong>WebDAV</strong>, sobre este caso, en la página oficial de subversion tratan este tema en el siguiente enlace: <a href="http://subversion.tigris.org/faq.html#proxy" target="_blank"><strong>http://subversion.tigris.org/faq.html#proxy</strong></a></p>
<h2 style="text-align:center;"><span style="text-decoration:underline;"><span style="text-decoration:underline;">Clientes Gráficos Recomendados<br />
</span></span></h2>
<ul style="text-align:justify;">
<li style="text-align:justify;"><a href="http://tortoisesvn.net/" target="_blank"><strong>TortoiseSVN</strong></a> para Windows (<em>muy bueno</em>)</li>
<li style="text-align:justify;"><a href="http://kdesvn.alwins-world.de/" target="_blank"><strong>Kdesvn</strong></a>, excelente gestor recomendado para los usuarios de KDE 4, la funcionalidades de esta herramienta se integra completamente al escritorio (<em>similar a </em><strong><em>TortoiseSVN</em></strong>)</li>
<li style="text-align:justify;">Otros para <strong>openSUSE</strong> o tu distro favorita: <strong>qsvn</strong> y <strong>eSvn</strong>.</li>
</ul>
<h2 style="text-align:center;"><span style="text-decoration:underline;"><span style="text-decoration:underline;"><span style="text-decoration:underline;"><span style="text-decoration:underline;">Artículos relacionados en este Blog</span></span></span></span></h2>
<ul>
<li><a href="http://labitacoradegabriel.wordpress.com/2008/05/30/manual-para-configurar-subversion-apache-ssl-en-opensuse/" target="_blank"><strong>Manual para configurar Subversion + Apache + SSL en openSUSE</strong></a></li>
<li><a href="http://labitacoradegabriel.wordpress.com/2008/06/02/comandos-basicos-para-trabajar-con-subversion-desde-consola/" target="_blank"><strong>Comandos básicos para trabajar con subversion desde consola</strong></a></li>
<li><a href="http://labitacoradegabriel.wordpress.com/2008/06/03/viewvc-un-navegador-de-repositorios-para-subversion/" target="_blank"><strong>ViewVC, un navegador de repositorios para Subversion</strong></a></li>
<li><strong><a href="http://labitacoradegabriel.wordpress.com/2008/06/10/usvn-una-herramienta-web-para-gestionar-proyectos-de-subversion/" target="_blank">USVN, una herramienta web para gestionar proyectos de Subversion</a></strong></li>
</ul>
<h2 style="text-align:center;"><span style="text-decoration:underline;">Enlaces Externos</span></h2>
<h2 style="text-align:justify;"><span style="font-weight:normal;font-size:13px;">Los sitios oficiales de las herramientas mencionadas en este tutorial son los siguientes.</span></h2>
<li><a href="http://subversion.tigris.org/" target="_blank"><strong>Subversion</strong></a></li>
<li><a href="http://www.usvn.info/" target="_blank"><strong>USVN</strong></a></li>
<li><a href="http://www.websvn.info" target="_blank"><strong>WebSVN</strong></a></li>
<li><strong><a href="http://www.viewvc.org/" target="_blank">ViewVC</a></strong></li>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/labitacoradegabriel.wordpress.com/794/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/labitacoradegabriel.wordpress.com/794/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/labitacoradegabriel.wordpress.com/794/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/labitacoradegabriel.wordpress.com/794/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/labitacoradegabriel.wordpress.com/794/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/labitacoradegabriel.wordpress.com/794/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/labitacoradegabriel.wordpress.com/794/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/labitacoradegabriel.wordpress.com/794/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/labitacoradegabriel.wordpress.com/794/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/labitacoradegabriel.wordpress.com/794/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/labitacoradegabriel.wordpress.com/794/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/labitacoradegabriel.wordpress.com/794/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/labitacoradegabriel.wordpress.com/794/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/labitacoradegabriel.wordpress.com/794/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=labitacoradegabriel.wordpress.com&amp;blog=3149394&amp;post=794&amp;subd=labitacoradegabriel&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://labitacoradegabriel.wordpress.com/2010/09/30/instalacion-de-subversion-usvn-y-websvn-en-opensuse/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cd8d25d32f536246603dea6e5608a00b?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">yodygkw</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/06/certificado.png?w=274" medium="image">
			<media:title type="html">certificado</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn01.png?w=150" medium="image">
			<media:title type="html">usvn01</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn02.png?w=150" medium="image">
			<media:title type="html">usvn02</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn03.png?w=150" medium="image">
			<media:title type="html">usvn03</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn041.png?w=150" medium="image">
			<media:title type="html">usvn04</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn051.png?w=150" medium="image">
			<media:title type="html">usvn05</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn06.png?w=150" medium="image">
			<media:title type="html">usvn06</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn07.png?w=150" medium="image">
			<media:title type="html">usvn07</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn08.png?w=150" medium="image">
			<media:title type="html">usvn08</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn09.png?w=150" medium="image">
			<media:title type="html">usvn09</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/06/usvn101.png?w=300" medium="image">
			<media:title type="html">usvn10</media:title>
		</media:content>

		<media:content url="http://labitacoradegabriel.files.wordpress.com/2010/06/websvn.png?w=300" medium="image">
			<media:title type="html">websvn</media:title>
		</media:content>
	</item>
	</channel>
</rss>
