<?xml version="1.0" encoding="utf-8" standalone="yes"?><?xml-stylesheet href="/feed_style.xsl" type="text/xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="https://www.rssboard.org/media-rss">
  <channel>
    <title>Tutorial on El blog de Ignacio</title>
    <link>https://www.igalvan.es/categories/tutorial/</link>
    <description>Recent content in Tutorial on El blog de Ignacio</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>es</language>
    <copyright>Ignacio Galván Vitas</copyright>
    <lastBuildDate>Mon, 14 Dec 2020 16:00:00 +0100</lastBuildDate><atom:link href="https://www.igalvan.es/categories/tutorial/index.xml" rel="self" type="application/rss+xml" /><icon>https://www.igalvan.es/logo.svg</icon>
    
    
    <item>
      <title>Cómo cambiar el comportamiento del cierre de la tapa del portátil en Ubuntu</title>
      <link>https://www.igalvan.es/posts/cambio-comportamiento-cerrar-tapa-ubuntu/</link>
      <pubDate>Mon, 14 Dec 2020 16:00:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/cambio-comportamiento-cerrar-tapa-ubuntu/</guid>
      <description><![CDATA[<p>Ahora mismo estoy usando un portátil con Kubuntu 20.04 como equipo principal conectado a un monitor panorámico para mi uso personal y por problemas de espacio me he encontrado con la tesitura de tener que &ldquo;achicar huecos&rdquo;. El problema viene que en los portatiles cuando cierras la tapa el comportamiento por defecto es suspender el equipo y eso no es una buena idea cuando quieres seguir trabajando con él.</p>
<p>Con este pequeño cambio en el fichero <code>/etc/systemd/logind.conf</code> se puede alterar el comportamiento por defecto y, en mi caso, no haga nada. La verdad es que se puede configurar cualquiera de las siguientes cinco opciones:</p>
<ul>
<li><code>HandleLidSwitch=suspend</code>. Suspende el equipo y es el comportamiento por defecto.</li>
<li><code>HandleLidSwitch=lock</code>. Bloquea la pantalla.</li>
<li><code>HandleLidSwitch=ignore</code>. No hace nada, que sería el comportamiento que yo quiero utilizar.</li>
<li><code>HandleLidSwitch=poweroff</code>. Apaga el equipo.</li>
<li><code>HandleLidSwitch=hibernate</code>. Hiberna el equipo.</li>
</ul>
<p>El proceso es sencillo, hay que editar el fichero /etc/systemd/logind.conf con permisos de root y buscar la línea que pone <code>#HandleLidSwitch=suspend</code> y cambiarla por cualquiera de las cinco de arriba según corresponda.</p>
<p>![fichero logind.conf]({{ site.url }}/assets/fichero_logind.png)</p>
<p>Después solo hay que reiniciar el servicio logind mediante el siguiente comando y ya hemos terminado.</p>
<pre tabindex="0"><code>systemctl restart systemd-logind.service
</code></pre>]]></description>
      
    </item>
    
    
    
    <item>
      <title>Problemas con VMWare Workstation en Linux para cargar los módulos vmmon and vmnet utilizando Secure Boot</title>
      <link>https://www.igalvan.es/posts/workstation-fail-vmmon-vmnet-secure-boot/</link>
      <pubDate>Wed, 09 Dec 2020 11:00:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/workstation-fail-vmmon-vmnet-secure-boot/</guid>
      <description><![CDATA[<p>Si tienes una máquina virtual ejecutándose sobre Vmware Workstation en un anfitrión GNU/Linux que utilice UEFI con el arranque seguro activado vas a tener problemas con la carga de los módulos vmmon y vmnet. Verás el siguiente mensaje:</p>
<pre tabindex="0"><code>Cannot open /dev/vmmon: No such file or directory. Please make sure that the kernel module `vmmon&#39; is loaded
</code></pre><p>Esto sucede porque el arranque seguro requiere que estos módulos estén firmados para poder cargarlos y esto no es posible porque estos módulos se compilan durante la instalación del producto.
La solución es sencilla pero un poco tediosa porque tendrás que realizarla cada vez que alguno de estos módulos se actualice. Los pasos son los siguientes:</p>
<p>El primer paso es generar el juego de claves mediante openssl que posteriormente se usará para firmar los módulos mediante el siguiente comando:</p>
<pre tabindex="0"><code>$openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj &#34;/CN=VMware/&#34;
</code></pre><p>A continuación tienes que firmar los módulos mediante los siguientes comandos:</p>
<pre tabindex="0"><code>$sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)

$sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet)
</code></pre><p>Este paso solo hay que hacerlo la primera vez o cuando se genere un juego de claves nuevo, por ejemplo, si has perdido el anterior. Te solicitará una contraseña para el registro de la clave en la UEFI y que debes recordar.</p>
<pre tabindex="0"><code>$mokutil --import MOK.der 
</code></pre><p>Por último, tienes que reiniciar el equipo y seguir las instrucciones especificas de la UEFI de tu equipo.</p>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>Jugando con Docker</title>
      <link>https://www.igalvan.es/posts/jugando-con-docker/</link>
      <pubDate>Mon, 10 Jun 2019 17:47:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/jugando-con-docker/</guid>
      <description><![CDATA[<p>El problema de tener varios equipos y que me encante ir cambiando de distribución cada poco tiempo es que tengo que estar reinstalando mi entorno de Jekyll para poder generar mis sitios estáticos.</p>
<p>He decidido aprovechar mis conocimientos de Docker para de una vez generar una imagen que me permita con un simple comando disponer del entorno sin más que tener que esperar unos segundos a que se genere la imagen y luego lanzar el contenedor correspondiente.</p>
<p>No es gran cosa, pero ahí os dejo el enlace al <a href="https://github.com/igalvit/ghpages">repositorio</a> en mi Github por si a alguno le fuera de interés.</p>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>Policy Based Routing en CentOS 7</title>
      <link>https://www.igalvan.es/posts/policy-based-routing-en-centos-7/</link>
      <pubDate>Sat, 25 Aug 2018 19:30:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/policy-based-routing-en-centos-7/</guid>
      <description><![CDATA[<p>Por defecto en los servidores CentOS con multiples interfaces de red todo el tráfico es devuelto por la interface que contenga la ruta por defecto. Este comportamiento no tiene nada de malo hasta que nos encontramos en escenarios donde es obligatorio separar el tráfico.</p>
<h2 id="escenario">Escenario</h2>
<p>En nuestro escenario partimos de la presencia de un servidor con dos interfaces de red, la primera en la red 10.0.2.0/24 que tiene la puerta de enlace por defecto en la IP 10.0.2.2, vamos a llamarla &ldquo;red pública&rdquo;, y la segunda en la red 192.168.56.20/24, vamos a llamarla &ldquo;red de gestión&rdquo;.  Queremos que todo el tráfico de la red de gestión se enrute por la segunda interfaz por temas de seguridad.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># ip addr show | grep &#34;inet\b&#34; | awk &#39;{print $2&#34; &#34;$NF}&#39;</span>
</span></span><span style="display:flex;"><span>127.0.0.1/8 lo
</span></span><span style="display:flex;"><span>10.0.2.15/24 enp0s3
</span></span><span style="display:flex;"><span>192.168.56.22/24 enp0s8
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># ip route|grep default</span>
</span></span><span style="display:flex;"><span>default via 10.0.2.2 dev enp0s3 proto static metric <span style="color:#ae81ff">100</span> 
</span></span></code></pre></div><h2 id="instrucciones">Instrucciones</h2>
<p>Antes de comenzar a configurar PBR, en CentOS 7 es necesario instalar el siguiente paquete:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># yum install -y NetworkManager-dispatcher-routing-rules</span>
</span></span></code></pre></div><p>El siguiente paso es crear la entrada de la política de enrutado:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># echo &#34;2 mgt&#34; &gt;&gt; /etc/iproute2/rt_tables</span>
</span></span></code></pre></div><p>El siguiente paso es crear las reglas para la interfaz enp0s8:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># vi /etc/sysconfig/network-scripts/rule-enp0s8</span>
</span></span><span style="display:flex;"><span>from 192.168.56.22/32 table mgt
</span></span><span style="display:flex;"><span>to 192.168.56.22/32 table mgt
</span></span></code></pre></div><p>El siguiente paso es crear la ruta por defecto para la interfaz enp0s8:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># vi /etc/sysconfig/network-scripts/route-enp0s8</span>
</span></span><span style="display:flex;"><span>default via 192.168.56.21 dev enp0s8 table mgt
</span></span></code></pre></div><p>Una vez configurado todo, tenemos que recargar la configuración para hacerla efectiva:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># nmcli connection reload</span>
</span></span></code></pre></div><p>Comrpobamos que todo está configurado según esperabamos:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># ip rule show</span>
</span></span><span style="display:flex;"><span>0:	from all lookup local 
</span></span><span style="display:flex;"><span>32764:	from all to 192.168.56.22 lookup mgt
</span></span><span style="display:flex;"><span>32765:	from 192.168.56.22 lookup mgt 
</span></span><span style="display:flex;"><span>32766:	from all lookup main 
</span></span><span style="display:flex;"><span>32767:	from all lookup default
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>root@routes ~<span style="color:#f92672">]</span><span style="color:#75715e"># ip route show table mgt</span>
</span></span><span style="display:flex;"><span>default via 192.168.56.21 dev enp0s8 
</span></span></code></pre></div>]]></description>
      
    </item>
    
    
  </channel>
</rss>
