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

<channel>
	<title>Blog -  El TallerWeb &#187; linux</title>
	<atom:link href="http://blog.eltallerweb.com/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.eltallerweb.com</link>
	<description>Blog para apasionados al diseño y desarrollo Web</description>
	<lastBuildDate>Tue, 16 Jun 2015 20:26:30 +0000</lastBuildDate>
	<language>es-ES</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.2</generator>
	<item>
		<title>Que siempre&#8230; Visual Studio Code para Linux y OSX</title>
		<link>http://blog.eltallerweb.com/que-siempre-visual-studio-code-para-linux-y-osx/</link>
		<comments>http://blog.eltallerweb.com/que-siempre-visual-studio-code-para-linux-y-osx/#comments</comments>
		<pubDate>Tue, 19 May 2015 17:40:06 +0000</pubDate>
		<dc:creator><![CDATA[jmosqueda]]></dc:creator>
				<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[multiplataforma]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://blog.eltallerweb.com/?p=866</guid>
		<description><![CDATA[Pues sí, el universo de los editores de código es un universo muy competido: de los clásicos como Vim o Emacs (la eterna lucha), hasta Sublime Text y Atom pasando por pesos pesados como TextPad ]]></description>
				<content:encoded><![CDATA[<p>Pues sí, el universo de los editores de código es un universo muy competido: de los clásicos como Vim o Emacs (la eterna lucha), hasta Sublime Text y Atom pasando por pesos pesados como TextPad o DreamWeaver, la oferta es tremenda y <strong>Microsoft</strong>, en su conferencia <a href="http://www.buildwindows.com/">Build 2015</a> celebrada en San Francisco hace tan algunos días ha presentado<strong>Visual Studio Code</strong>, el juguete nuevo  de muy buen ver en el mundo de los editores de código.</p>
<p>El editor (que <a href="http://go.microsoft.com/fwlink/?LinkID=533688" target="_blank">ya está disponible</a> para todo el que lo requiera) cuenta con múltiples lenguajes, como <strong>Node.js, TypeScript y JavaScript, entre muchos otros</strong>, los cuales también cuentan con diversas características enriquecidas, para así brindar a los programadores un mayor abanico de opciones a la hora de desarrollar sus softwares.También si te gusta jugar un rato, puedes configurar tu Visual Studio Code para poder correr un proyecto ASP.NET.</p>
<p><strong>Gratuito, multiplataforma</strong> (Windows, Linux y MAc), elegante, con soporte integrado para Git, auto-detección (y coloreado de sintaxis y autocompletar) de decenas de lenguajes,<strong>completo debugeador</strong>&#8230; las razones de este recién salido del horno Visual Studio Code son bastantes poderosas y le meten de lleno en la pelea.</p>
<p>Sin duda este inesperado movimiento dará mucho que hablar en la comunidad, y es que parece que a Microsoft se le han quitado todos los complejos a la hora de ofrecer productos multiplataforma. De hecho, durante la presentación del Visual Studio Code les hemos visto utilizarlo tanto en OS X como en Ubuntu. ¿Qué tal?.</p>
<p><a href="http://blog.eltallerweb.com/wp-content/uploads/2015/05/code_multi.jpg"><img class="alignnone size-full wp-image-868" src="http://blog.eltallerweb.com/wp-content/uploads/2015/05/code_multi.jpg" alt="code_multi" width="650" height="332" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eltallerweb.com/que-siempre-visual-studio-code-para-linux-y-osx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Steps Yii-Framework</title>
		<link>http://blog.eltallerweb.com/first-steps-yii-framework/</link>
		<comments>http://blog.eltallerweb.com/first-steps-yii-framework/#comments</comments>
		<pubDate>Wed, 31 Jul 2013 19:18:24 +0000</pubDate>
		<dc:creator><![CDATA[Joge23]]></dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[código]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[gii]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Programacion]]></category>
		<category><![CDATA[tips. configuración]]></category>
		<category><![CDATA[yii]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[Zend Studio]]></category>

		<guid isPermaLink="false">http://blog.eltallerweb.com/?p=777</guid>
		<description><![CDATA[Por Jorge Villela, @Joge23_rm Hola a todos, traigo a ustedes una mini-guía para la utilización de Yii-Framework. Sirve para empezar a utilizar este Framework de desarrollo ágil muy recomendable para todo tipo de proyectos web, espero ]]></description>
				<content:encoded><![CDATA[<p>Por Jorge Villela, @Joge23_rm</p>
<p>Hola a todos, traigo a ustedes una mini-guía para la utilización de Yii-Framework. Sirve para empezar a utilizar este <em>Framework</em> de desarrollo ágil muy recomendable para todo tipo de proyectos web, espero les sirva, cualquier duda estoy disponible en @Joge23_rm o por correo <a href="mailto:joge23@gmail.com">joge23@gmail.com</a>. Saludos.</p>
<p><strong>NOMENCLATURA</strong></p>
<p style="text-align: left; background: yellow; width: 110px;" align="right">Cambios a líneas</p>
<p style="text-align: left; background: green; width: 130px;" align="right">Agregados de líneas</p>
<p style="text-align: left;"><strong>INSTALACIÓN</strong></p>
<p style="text-align: left;">Lo primero que debes hacer es descargar el  <em>Framework</em> del sitio: <a href="http://www.yiiframework.com/">http://www.yiiframework.com/</a> (versión actual: v1.1.13)</p>
<p style="text-align: left;">Descomprimir y colocar carpeta sin renombrar (para mantener un control de la versión utilizada para cada proyecto) en la carpeta de elección, sugerida en ambiente linux: /opt/</p>
<p style="text-align: left;">Para la creación del proyecto utilizamos el <em>Shell</em> de Linux, estando en la carpeta donde se va a alojar el proyecto se escribe /opt/yii_version/framework/yiic webapp nombreProyecto</p>
<p style="text-align: left;">          p.e.<em> jorge@jorge:/var/www$ /opt/yii-1.1.13.e9e4a0/framework/yiic webapp prueba</em></p>
<p style="text-align: left;">El sistema te solicitará confirmar la creación del proyecto, recordar que esto generará una carpeta con el nombre de dicho proyecto en donde estes ubicado. Puedes probar tu proyecto creado, en este ejemplo en el navegador:</p>
<p style="text-align: left;"><a href="http://localhost/prueba/">http://localhost/prueba/</a></p>
<p style="text-align: left;"><em>** En caso de mostrar el siguiente error</em></p>
<h1 style="text-align: left;">PHP warning</h1>
<p style="text-align: left;">date() [&lt;a href=&#8217;function.date&#8217;&gt;function.date&lt;/a&gt;]: It is not safe to rely on the system&#8217;s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected &#8216;America/Chicago&#8217; for &#8216;CDT/-5.0/DST&#8217; instead</p>
<p style="text-align: left;">Verificar la configuración de PHP el default_time_zone (Este problema suele presentarse con Zend Studio)</p>
<p style="text-align: left;">Ya en este punto podrás ver tu sitio funcionando.</p>
<p style="text-align: left;">A partir de aquí se configurarán los archivos del proyecto, no debes modificar los del Framework a menos que sea muy necesario.</p>
<p style="text-align: left;">Podemos identificar que se han creado las carpetas de nuestro proyecto, debemos identificar la carpeta <em>Protected</em> que es donde estan los archivos de configuración, las extensiones, y el MVC (Models, Views, Controllers). En este punto están los de la estructura básica del proyecto.</p>
<p style="text-align: left;"><strong>CONFIGURACIÓN Y BASES DE DATOS</strong></p>
<p style="text-align: left;">prueba/protected/config/main.php</p>
<p style="text-align: left;">&lt;?php</p>
<p style="text-align: left;">// uncomment the following to define a path alias</p>
<p style="text-align: left;">// Yii::setPathOfAlias(&#8216;local&#8217;,&#8217;path/to/local-folder&#8217;);</p>
<p style="text-align: left;">// This is the main Web application configuration. Any writable</p>
<p style="text-align: left;">// CWebApplication properties can be configured here.</p>
<p style="text-align: left;">return array(</p>
<p style="text-align: left;">          &#8216;basePath&#8217;=&gt;dirname(__FILE__).DIRECTORY_SEPARATOR.&#8217;..&#8217;,</p>
<p style="text-align: left;"><span style="background-color: yellow;">          &#8216;name&#8217;=&gt;&#8217;Prueba&#8217;,</span></p>
<p style="text-align: left;"><span style="background-color: green;">          &#8216;language&#8217;=&gt;&#8217;es&#8217;,</span></p>
<p style="text-align: left;">          // preloading &#8216;log&#8217; component</p>
<p style="text-align: left;">          &#8216;preload&#8217;=&gt;array(&#8216;log&#8217;),</p>
<p style="text-align: left;">          // autoloading model and component classes</p>
<p style="text-align: left;">          &#8216;import&#8217;=&gt;array(</p>
<p style="text-align: left;">                   &#8216;application.models.*&#8217;,</p>
<p style="text-align: left;">                   &#8216;application.components.*&#8217;,</p>
<p style="text-align: left;">          ),</p>
<p style="text-align: left;">          &#8216;modules&#8217;=&gt;array(</p>
<p style="text-align: left;">                   // uncomment the following to enable the Gii tool</p>
<p style="text-align: left;"><span style="background-color: yellow;">                   &#8216;gii&#8217;=&gt;array(</span></p>
<p style="text-align: left;"><span style="background-color: yellow;">                             &#8216;class&#8217;=&gt;&#8217;system.gii.GiiModule&#8217;,</span></p>
<p style="text-align: left;"><span style="background-color: yellow;">                            &#8216;password&#8217;=&gt;&#8217;hfdjkhf&#8217;,</span></p>
<p style="text-align: left;"><span style="background-color: yellow;">                            // If removed, Gii defaults to localhost only. </span></p>
<p style="text-align: left;"><span style="background-color: yellow;">                             &#8216;ipFilters&#8217;=&gt;array(&#8216;127.0.0.1&#8242;,'::1&#8242;),</span></p>
<p style="text-align: left;"><span style="background-color: yellow;">                        ),</span></p>
<p style="text-align: left;"><span style="background-color: yellow;">                        </span></p>
<p style="text-align: left;">                 ),</p>
<p>          // application components</p>
<p style="text-align: left;">          &#8216;components&#8217;=&gt;array(</p>
<p style="text-align: left;">                   &#8216;user&#8217;=&gt;array(</p>
<p style="text-align: left;">                             // enable cookie-based authentication</p>
<p style="text-align: left;">                             &#8216;allowAutoLogin&#8217;=&gt;true,</p>
<p style="text-align: left;">                   ),</p>
<p style="text-align: left;"><span style="background-color: green;">                               // JQUERY nativo desactivado</span></p>
<p style="text-align: left;"><span style="background-color: green;">                               &#8216;clientScript&#8217;=&gt;array(<br />
&#8216;scriptMap&#8217;=&gt;array(<br />
&#8216;jquery.js&#8217;=&gt;false,<br />
&#8216;jquery.min.js&#8217;=&gt;false,<br />
)<br />
),<br />
</span></p>
<p>                   // uncomment the following to enable URLs in path-format</p>
<p style="text-align: left;"><span style="background-color: yellow;">                    &#8216;urlManager&#8217;=&gt;array(<br />
&#8216;urlFormat&#8217;=&gt;&#8217;path&#8217;,<br />
&#8216;rules&#8217;=&gt;array(<br />
&#8216;&lt;controller:\w+&gt;/&lt;id:\d+&gt;&#8217;=&gt;'&lt;controller&gt;/view&#8217;,<br />
&#8216;&lt;controller:\w+&gt;/&lt;action:\w+&gt;/&lt;id:\d+&gt;&#8217;=&gt;'&lt;controller&gt;/&lt;action&gt;&#8217;,<br />
&#8216;&lt;controller:\w+&gt;/&lt;action:\w+&gt;&#8217;=&gt;'&lt;controller&gt;/&lt;action&gt;&#8217;,<br />
),<br />
),</span></p>
<p>                         &#8216;db&#8217;=&gt;array(<br />
&#8216;connectionString&#8217; =&gt; &#8216;sqlite:&#8217;.dirname(__FILE__).&#8217;/../data/testdrive.db&#8217;,<br />
),</p>
<p>// uncomment the following to use a MySQL database</p>
<p style="text-align: left;"><span style="background-color: yellow;">                         &#8216;db&#8217;=&gt;array(<br />
&#8216;connectionString&#8217; =&gt; &#8216;mysql:host=localhost;dbname=prueba&#8217;,<br />
&#8217;emulatePrepare&#8217;=&gt; true,<br />
&#8216;username&#8217; =&gt; &#8216;usuario&#8217;,<br />
&#8216;password&#8217; =&gt; &#8216;dsfsfsdfs&#8217;,<br />
&#8216;charset&#8217; =&gt; &#8216;utf8&#8242;,<br />
),<br />
</span></p>
<p style="text-align: left;">&#8216;errorHandler&#8217;=&gt;array(</p>
<p>                             // use &#8216;site/error&#8217; action to display errors</p>
<p>&#8216;errorAction&#8217;=&gt;&#8217;site/error&#8217;,</p>
<p>),</p>
<p>&#8216;log&#8217;=&gt;array(</p>
<p>&#8216;class&#8217;=&gt;&#8217;CLogRouter&#8217;,</p>
<p>&#8216;routes&#8217;=&gt;array(</p>
<p>array(</p>
<p>&#8216;class&#8217;=&gt;&#8217;CFileLogRoute&#8217;,</p>
<p>&#8216;levels&#8217;=&gt;&#8217;error, warning&#8217;,</p>
<p>),</p>
<p>// uncomment the following to show log messages on web pages</p>
<p>/*</p>
<p>array(</p>
<p>&#8216;class&#8217;=&gt;&#8217;CWebLogRoute&#8217;,</p>
<p>),</p>
<p>*/</p>
<p>),</p>
<p>),<br />
),</p>
<p>// application-level parameters that can be accessed</p>
<p>// using Yii::app()-&gt;params[&#8216;paramName&#8217;]</p>
<p>&#8216;params&#8217;=&gt;array(</p>
<p>// this is used in contact page</p>
<p>&#8216;adminEmail&#8217;=&gt;&#8217;webmaster@example.com&#8217;,</p>
<p>),</p>
<p>);</p>
<p>Lo que hicimos fue modificar el nombre de nuestra aplicación, modificar el lenguaje para el sitio, descomentar el código que permite utilizar Gii (generación de modelos y <em>crud</em>) y le modificamos el campo de <em>Password;</em> agregar el código para deshabilitar el JQuery nativo (recomendado para incluir la versión más nueva y que no choquen), descomentar UrlManager (esto hace que los métodos se muestren con <em>Friendly Url</em>)<em>,</em> descomentamos la configuración de DB y agregamos los datos de nuestra base de datos. Con esto finalizamos la modificación de este archivo.</p>
<p><strong>CREACIÓN DE MODELOS</strong></p>
<p>Es importante que el usuario <em>www-data</em> tenga permisos, se sugiere cambiar el propietario del proyecto cuando se utiliza el Gii(esto es porque se generan archivos a partir del navegador), en consola:</p>
<p><em>sudo chown -R www-data.www-data prueba</em></p>
<p>En el navegador: <a href="http://localhost/prueba/index.php/gii/default/login">http://localhost/prueba/index.php/gii/default/login</a></p>
<p>Utilizamos nuestra contraseña (la que asignamos para el componente Gii en el archivo de configuración).</p>
<p>Una vez adentro, seleccionamos la sección de <em>Model Generato</em>r y en esta parte ingresamos en el campo de <em>Table Name</em> el nombre de la tabla; lo demás es bueno dejarlo por <em>Default.</em> Seleccionamos el botón <em>Preview</em> y te mostrará la lista de archivos generados, en este caso sería un archivo<em> Tablename.php</em>, le das <em>Generate</em> y te regresará un mensaje de éxito.</p>
<p>Este es el proceso para crear los modelos de cada tabla, los cuales permitirán la conexión a la base y a dicha tabla.</p>
<p>p.e. Tablename::model()-&gt;findAll();//Con este comando recuperarías todos los registros de la tabla en concreto en forma de <em>array</em> de objetos.</p>
<p><strong>CREACIÓN DE CRUD (CONSULTAS, ALTAS, BAJAS Y CAMBIOS)</strong></p>
<p>A partir de nuestro archivo de modelo generado, podemos crear la consulta, altas, bajas y cambios a nuestra tabla con la opción de <em>Crud Generator</em>, donde sólo ingresaremos el nombre del modelo: <em>Tablename</em></p>
<p>Al seleccionar<em> Preview </em> nos mostrará todos los archivos (un C<em>ontroller</em> y varias vistas) que se van a generar, le damos <em>Generate</em> y listo, podemos empezar a utilizar/modificar según las necesidades del proyecto.</p>
<p><strong>PUNTOS CLAVES</strong></p>
<p><strong>Modelo</strong></p>
<p><em>Apartado de Rules:</em> Reglas que van aplicarse tanto al<em> Create</em> como al <em>Update</em> de los registros de cada modelo.</p>
<p><em>Apartado de AttributeLabels:</em> Permite definir las etiquetas de los campos, es muy útil si a lo largo de todo el proyecto se utilizan porque si hay un cambio sólo se modifica una vez.</p>
<p><strong>Controller</strong></p>
<p>Al principio se define el<em> layout</em> general, recomiendo moficar dicha línea y utilizar <em>layout main</em>,</p>
<p style="text-align: left; background: yellow; width: 215px;" align="right">public $layout=&#8217;//layouts/main';</p>
<p>El apartado de <em>accessRule</em>s  permite definir las reglas de accesso, en la configuración por <em>Default</em> se da acceso a todo(*) a algunas acciones de las clases, a los usuarios logueados(@) a otras y a un usuario en específico a otras (Admin). Este puede ser <em>customizado</em> con opciones como <em>&#8216;expression&#8217;</em>, todo esto viene en la documentación de Yii.</p>
<p>Más adelante están todos los métodos de la clase, los que vienen por <em>Default</em> y los que se crearán para el proyecto.</p>
<p><strong>Views</strong></p>
<p>Gracias al <em>Crud,</em> por cada C<em>ontroller</em> se generán:</p>
<ul>
<li>index.php (Página principal, por<em> Default</em> viene un listado de los elementos de la tabla).</li>
<li>_view.php (Se renderea parcialmente dentro de index.php, representa uno a uno los elementos que se muestran en la lista).</li>
<li>view.php (Es la vista individual de cada elemento de la tabla, si se utiliza el <em>controller tablename/1</em>) dirigirá por<em> Default </em>al <em>View</em> de ID 1</li>
<li>create/update (Contienen<em> al _form</em> que es donde se puede modificar al registro).</li>
</ul>
<p>Entre otras&#8230;</p>
<p><strong>Views site y Layout</strong></p>
<p>En las vistas que vienen generadas desde el principio se encuentran las de <em>Site </em>(vistas básicas, el <em>Index</em> del <em>Home</em>, el contacto y otras. Todas estas son las vistas que serían relativamente estáticas) y las de <em>Layout </em>(main.php contiene el código que envuelve a todas las vistas que se renderean, es decir, el cascarón del sitio).</p>
<p>Espero que esta información les sea de utilidad, aquí les dejos algunos links en donde pueden encontrar más información.</p>
<p><a href="http://www.yiiframework.com/">http://www.yiiframework.com/</a></p>
<p><a href="http://www.yiiframework.com/doc/guide/1.1/en/quickstart.first-app">http://www.yiiframework.com/doc/guide/1.1/en/quickstart.first-app</a></p>
<p><a href="http://www.yiiframework.com/wiki/">http://www.yiiframework.com/wiki/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eltallerweb.com/first-steps-yii-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Túneles VPN con OpenVPN</title>
		<link>http://blog.eltallerweb.com/tuneles-vpn-con-openvpn/</link>
		<comments>http://blog.eltallerweb.com/tuneles-vpn-con-openvpn/#comments</comments>
		<pubDate>Fri, 30 Nov 2012 00:10:31 +0000</pubDate>
		<dc:creator><![CDATA[preack]]></dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[tuneles]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://blog.eltallerweb.com/?p=381</guid>
		<description><![CDATA[Por David Castañón, @the_preack Las conexiones VPN son un medio para enlazar dos puntos remotos entre sí, como principal característica se tiene que el flujo de datos va de forma cifrada. Existen diversos medios para crear ]]></description>
				<content:encoded><![CDATA[<p>Por David Castañón, @the_preack</p>
<p>Las conexiones VPN son un medio para enlazar dos puntos remotos entre sí, como principal característica se tiene que el flujo de datos va de forma cifrada. Existen diversos medios para crear tuneles VPN, software privativo bastante costosos, hardware especializado, etc.</p>
<p>En este caso vamos a hablar sobre OpenVPN, un Software Open Source bastante potente y con muchas funcionalidades.</p>
<p>Aunque OpenVPN esta disponible para GNU/Linux y Windows, nos enfocaremos al primero, todo esto en un Centos 6.3 como servidor. Open VPN no está disponible en los repositorios por default de Centos, por lo que se debe de instalar los repositorios de rpmforge:</p>
<p><strong>Cómo root se ejecuta:</strong></p>
<p>rpm -Uvh <a href="http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm">http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm</a></p>
<p>yum install openvpn</p>
<p>Esto instalará OpenVPN con sus dependencias necesarias.</p>
<p>Nos cambiamos a la ruta /etc/openvpn</p>
<p>Primero hay que crear un archivo llave, el cual tanto el servidor como el cliente deben de tener y se usa para la autentificación de pares.</p>
<p><strong>Creamos la llave:</strong></p>
<p>/usr/sbin/openvpn &#8211;genkey &#8211;secret tallerweb_openvpn.key</p>
<p>Una vez que tengamos la llave hay que crear el archivo de configuración del servidor.</p>
<p>vim tallwerweb_openvpn.conf</p>
<p>float</p>
<p>dev tun</p>
<p>proto udp</p>
<p>comp-lzo</p>
<p>port 1194</p>
<p>ifconfig 10.8.0.1 10.8.0.2</p>
<p>route 10.8.0.0/24 255.255.255.0 10.8.0.1</p>
<p>cipher AES-128-CBC</p>
<p>persist-tun</p>
<p>persist-key</p>
<p>log /var/log/openvpn.log</p>
<p>secret tallerweb_openvpn.key</p>
<p>verb 4</p>
<p>mute 10</p>
<p>float: Indica que los clientes se conectarán desde una IP no fija.</p>
<p>dev tun: La interfaz de red que creará OpenVPN.</p>
<p>proto udp: Se utilizarán paquetes tipo UDP</p>
<p>comp-lzo: Tipo de compresión LZO</p>
<p>port 1194: El puerto en el que se establecerá el tunel.</p>
<p>ifconfig 10.8.0.2 10.8.0.2: La asignación de IP&#8217;s, la primera corresponde al servidor y la segunda al cliente.</p>
<p>route 10.8.0.0/24 255.255.255.0 10.8.0.1: Estableceremos la ruta para las direcciones del segmento 10.8.0.0 (tomará como salida la interfaz con la dirección 10.8.0.1).</p>
<p>cipher AES-128-CBC: El tipo de cifrado, AES de 128 bits</p>
<p>persist-tun: La interfaz será persistente.</p>
<p>persist-key: La llave será persistente.</p>
<p>log /var/log/openvpn.log: La ruta y el archivo donde se guardarán los logs.</p>
<p>secret tallerweb_openvpn.key: La ruta y nombre de la llave, si están al mismo nivel se omite ruta.</p>
<p>verb 4: Nivel de información que se grabará en el archivo log.</p>
<p>mute 10: Graba a lo mas 10 mensajes de la misma categoría en el log.</p>
<p>Con esto podemos iniciar el servicio.</p>
<p>service openvpn start</p>
<p>Nos debe de salir [ OK ]</p>
<p><a href="http://blog.eltallerweb.com/wp-content/uploads/2012/11/VPN1.jpg"><img class="alignnone size-full wp-image-382" title="VPN1" src="http://blog.eltallerweb.com/wp-content/uploads/2012/11/VPN1.jpg" alt="" /></a></p>
<p>Esto quiere decir que el servidor está arriba y esperando conexiones de clientes. Podemos verificar que la interfaz tun está arriba.</p>
<p><a href="http://blog.eltallerweb.com/wp-content/uploads/2012/11/VPN2.jpg"><img class="alignnone size-full wp-image-383" title="VPN2" src="http://blog.eltallerweb.com/wp-content/uploads/2012/11/VPN2.jpg" alt="" /></a></p>
<p>La instalación del lado del cliente es exactamente igual, el archivo llave debe ser el mismo que se creó anteriormente lo puedes descargar de tu servidor con un SCP.</p>
<p><strong>Configurando del lado del cliente:</strong></p>
<p>remote xxx.xxx.xxx.xxx</p>
<p>port 1194</p>
<p>dev tun</p>
<p>comp-lzo</p>
<p>ifconfig 10.8.0.2 10.8.0.1</p>
<p>route 10.8.0.0/24 255.255.255.0 10.8.0.2</p>
<p>secret eltallerweb_openvpn.key</p>
<p>cipher AES-128-CBC</p>
<p>persist-tun</p>
<p>persist-key</p>
<p>verb 4</p>
<p>mute 10</p>
<p>log /var/log/openvpn.log</p>
<p><strong>Exactamente lo mismo, sólo cambia lo siguiente:</strong></p>
<p>remote xxx.xxx.xxx.xxx: la direccion ip del servidor, donde xxx.xxx.xxx.xxx es la ip destino</p>
<p>ifconfig 10.8.0.2 10.8.0.1: las IP&#8217;s están en orden inverso con respecto a la configuración del servidor, ya que el cliente tomará la IP 10.8.0.2 y el remoto es 10.8.0.1</p>
<p><strong>Iniciamos el servicio:</strong></p>
<p>service openvpn start</p>
<p>y comprobamos que todo funcione:</p>
<p><a href="http://blog.eltallerweb.com/wp-content/uploads/2012/11/VPN3.jpg"><img class="alignnone size-full wp-image-384" title="VPN3" src="http://blog.eltallerweb.com/wp-content/uploads/2012/11/VPN3.jpg" alt="" /></a></p>
<p>Como se puede observar el servidor nos responde el ping.</p>
<p><strong>Generalidades:</strong></p>
<ul>
<li>Debes de abrir el puerto que vayas a usar en iptables.</li>
<li>Si deseas que el servicio arranque al inicio del sistema deberás ejecutar chkconfig openvpn on.</li>
<li>Estos túneles te permiten realizar conexiones lan to lan o lan to road warrior.</li>
<li>OpenVPN tiene configuraciones más avanzadas, se pueden encontrar en la red sin ningún problema.</li>
<li>Ésta configuración te permite opciones avanzadas, como: ruteo, forwarding, dns, nat, etc.</li>
</ul>
<p>Enlaces:</p>
<p><a href="http://openvpn.net/">http://openvpn.net/</a></p>
<p><a href="http://www.alcancelibre.org/">http://www.alcancelibre.org/</a></p>
<p><a href="http://www.pello.info/filez/firewall/iptables.html">http://www.pello.info/filez/firewall/iptables.html</a></p>
<p>(Gracias por el conocimiento que otros me han aportado)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eltallerweb.com/tuneles-vpn-con-openvpn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
