<?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>GNU/Linux on El blog de Ignacio</title>
    <link>https://www.igalvan.es/tags/gnu/linux/</link>
    <description>Recent content in GNU/Linux on El blog de Ignacio</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>es</language>
    <copyright>Ignacio Galván Vitas</copyright>
    <lastBuildDate>Sun, 17 Oct 2021 18:34:00 +0100</lastBuildDate><atom:link href="https://www.igalvan.es/tags/gnu/linux/index.xml" rel="self" type="application/rss+xml" /><icon>https://www.igalvan.es/logo.svg</icon>
    
    
    <item>
      <title>Servidor NFS en CentOS 7</title>
      <link>https://www.igalvan.es/posts/servidor-nfs-en-centos-7/</link>
      <pubDate>Sun, 17 Oct 2021 18:34:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/servidor-nfs-en-centos-7/</guid>
      <description><![CDATA[<p>Hoy voy a explicar cómo montar un servidor NFS en una máquina con CentOS 7 que luego utilizaré para otra entrada del blog mucho más interesante para los que usen Windows.</p>
<p>Una nota aclaratoria, esto no pretende ser un tutorial sobre cómo exportar volúmenes NFS sino una breve introducción explicativa para apoyar lo que mostraré en la entrada que crearé en breve. 😁</p>
<h2 id="instalación-servicio-nfs">Instalación servicio NFS</h2>
<p>Lo primero que vamos a hacer es instalar los paquetes necesarios para disponer del servicio NFS.</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-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#f92672">[</span>ignacio@centos7 ~<span style="color:#f92672">]</span>$ sudo dnf install nfs-utils
</span></span></code></pre></div><p>Si tenemos habilitado SELinux en el servidor hay que permitir su uso, por lo que hay que ejecutar este comando.</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-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#f92672">[</span>ignacio@centos7 ~<span style="color:#f92672">]</span>$ sudo setsebool -P nfs_export_all_ro<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span> nfs_export_all_rw<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span>
</span></span></code></pre></div><p>El siguiente paso es abrir los puertos necesarios en el cortafuegos. Esto lo hacemos en dos pasos, el primero sirve para añadir las excepciones del servicio y el segundo para forzar el cortafuegos a recargar la configuración que hemos modificado.</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-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#f92672">[</span>ignacio@centos7 ~<span style="color:#f92672">]</span>$ sudo firewall-cmd --permanent --add-service nfs
</span></span><span style="display:flex;"><span>success
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>ignacio@centos7 ~<span style="color:#f92672">]</span>$ sudo firewall-cmd --reload
</span></span><span style="display:flex;"><span>success
</span></span></code></pre></div><p>El siguiente paso es habilitar los servicios para que se inicien con el inicio del servidor.</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-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#f92672">[</span>ignacio@centos7 ~<span style="color:#f92672">]</span>$ sudo systemctl enable rpcbind nfs-server
</span></span><span style="display:flex;"><span>Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
</span></span></code></pre></div><p>Y ahora vamos a iniciar los servicios para poder pasar a la parte de configuración.</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-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#f92672">[</span>ignacio@centos7 ~<span style="color:#f92672">]</span>$ sudo systemctl start rpcbind nfs-server
</span></span></code></pre></div><h2 id="configuración-servicio-nfs">Configuración servicio NFS</h2>
<p>El primer paso es crear el directorio que vamos a exportar, en mi caso /datos.</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-sh" data-lang="sh"><span style="display:flex;"><span>mkdir /datos
</span></span></code></pre></div><p>Como segundo paso vamos a modificar el fichero exports para configurar una exportación del directorio datos en modo lectura para cualquier usuario. En mi caso lo voy a exportar a cualquier IP porque es un laboratorio. Si vais a montar esto en un entorno más serio, por favor, indicad solo la IP desde la que vais a acceder.</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-sh" data-lang="sh"><span style="display:flex;"><span>cat /etc/exports
</span></span><span style="display:flex;"><span>/datos *<span style="color:#f92672">(</span>ro,sync<span style="color:#f92672">)</span>
</span></span></code></pre></div><p>En el siguiente paso vamos a forzar la exportación del nuevo volumen mediante el siguiente comando.</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-sh" data-lang="sh"><span style="display:flex;"><span>root@centos7 ignacio<span style="color:#f92672">]</span><span style="color:#75715e"># exportfs -arv&lt;br /&gt;exporting *:/datos&lt;/span&gt;&lt;/p&gt;</span>
</span></span></code></pre></div><p>Por último, vamos a comprobar que el directorio se encuentra correctamente exportado y accesible.</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-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#f92672">[</span>ignacio@centos7 ~<span style="color:#f92672">]</span>$ sudo exportfs -s
</span></span><span style="display:flex;"><span>/datos *<span style="color:#f92672">(</span>sync,wdelay,hide,no_subtree_check,sec<span style="color:#f92672">=</span>sys,ro,secure,root_squash,no_all_squash<span style="color:#f92672">)</span>
</span></span></code></pre></div><p>Bueno y con esto hemos terminado por hoy. 🏁</p>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>Crear una interfaz puente para KVM desde nmcli en Fedora 34</title>
      <link>https://www.igalvan.es/posts/crear-una-interfaz-puente-para-kvm/</link>
      <pubDate>Fri, 06 Aug 2021 19:15:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/crear-una-interfaz-puente-para-kvm/</guid>
      <description><![CDATA[<p>En mi equipo personal ahora mismo estoy utilizando Fedora y Virtual Machine Manager para gestionar mis máquinas virtuales sobre KVM. Una de las cosas que más hecho de menos de VirtualBox es la posibilidad de utilizar una interfaz puente para poder asignar una IP de mi red local a una de mis máquinas virtuales. En esta publicación veremos cómo hacerlo.</p>
<p>Doy por entendido que tienes un conocimiento básico de lo qué es una interfaz puente y que conoces el comando nmcli. En caso contrario, busca un poco por Internet e infórmate de si realmente necesitas crear este tipo de interfaz. 😜</p>
<h2 id="crear-la-interfaz-puente">Crear la interfaz puente</h2>
<p>El primer paso es crear la interfaz puente mediante el siguiente comando:</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-sh" data-lang="sh"><span style="display:flex;"><span>$ sudo nmcli con add ifname br0 type bridge con-name br0
</span></span><span style="display:flex;"><span>Conexión «br0» <span style="color:#f92672">(</span>9a659c12-715f-4186-add1-fa92a1b7fd25<span style="color:#f92672">)</span> añadida con éxito.
</span></span></code></pre></div><p>Ahora tenemos que crear la interfaz esclava que vincularemos con nuestro puente</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-sh" data-lang="sh"><span style="display:flex;"><span>$ sudo nmcli con add type bridge-slave ifname enp8s0 master br0
</span></span><span style="display:flex;"><span>Conexión «bridge-slave-enp8s0» <span style="color:#f92672">(</span>5009e0de-0e28-448c-b1b4-91dd4053232e<span style="color:#f92672">)</span> añadida con éxito.
</span></span></code></pre></div><p>En mi caso voy a desactivar spanning tree (STP) porque no me hace falta.</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-sh" data-lang="sh"><span style="display:flex;"><span>$ sudo nmcli con modify br0 bridge.stp no
</span></span></code></pre></div><p>Verificamos que todo está configurado como queremos.</p>
<pre tabindex="0"><code>$ nmcli -f bridge con show br0
bridge.mac-address:                     -- 
bridge.stp:                             no
bridge.priority:                        32768 
bridge.forward-delay:                   15 
bridge.hello-time:                      2 
bridge.max-age:                         20 
bridge.ageing-time:                     300 
bridge.group-forward-mask:              0 
bridge.multicast-snooping:              sí 
bridge.vlan-filtering:                  no 
bridge.vlan-default-pvid:               1 
bridge.vlans:
</code></pre><p>Como yo tengo activa la interfaz por defecto que genera Fedora, tengo que desactivarla para poder utilizar la nueva interfaz puente.</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-sh" data-lang="sh"><span style="display:flex;"><span>$ sudo nmcli con down <span style="color:#e6db74">&#34;Conexión cableada 1&#34;</span>
</span></span><span style="display:flex;"><span>$ sudo nmcli con up br0
</span></span><span style="display:flex;"><span>$ nmcli con show
</span></span><span style="display:flex;"><span>NAME     UUID                                  TYPE      DEVICE  
</span></span><span style="display:flex;"><span>br0      9a659c12-715f-4186-add1-fa92a1b7fd25  bridge    br0     
</span></span><span style="display:flex;"><span>virbr0   b994e990-6364-4fa8-afaf-3016881b4cfb  bridge    virbr0  
</span></span><span style="display:flex;"><span>enp8s0   5009e0de-0e28-448c-b1b4-91dd4053232e  ethernet  enp8s0
</span></span></code></pre></div><h2 id="crear-la-interfaz-en-vmm">Crear la interfaz en VMM</h2>
<p>Hay que crear el siguiente fichero XML que nos permitirá definir la interfaz puente en VMM. En mi caso lo he ubicado en la carpeta <code>/tmp</code> y lo he llamado <code>br0.xml</code></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-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#f92672">&lt;network&gt;</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&lt;name&gt;</span>br0<span style="color:#f92672">&lt;/name&gt;</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&lt;forward</span> <span style="color:#a6e22e">mode=</span><span style="color:#e6db74">&#34;bridge&#34;</span><span style="color:#f92672">/&gt;</span>
</span></span><span style="display:flex;"><span>  <span style="color:#f92672">&lt;bridge</span> <span style="color:#a6e22e">name=</span><span style="color:#e6db74">&#34;br0&#34;</span> <span style="color:#f92672">/&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/network&gt;</span>
</span></span></code></pre></div><p>Ahora ejecutamos el siguiente comando para importar el fichero XML y que se genere la interfaz puente.</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-sh" data-lang="sh"><span style="display:flex;"><span>$ sudo virsh net-define /tmp/br0.xml
</span></span><span style="display:flex;"><span>$ sudo virsh net-start br0
</span></span></code></pre></div><p>La red br0 se ha iniciado</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-sh" data-lang="sh"><span style="display:flex;"><span>$ sudo virsh net-autostart br0
</span></span><span style="display:flex;"><span>La red br0 ha sido marcada para iniciarse automáticamente 
</span></span><span style="display:flex;"><span>$ sudo virsh net-list --all 
</span></span><span style="display:flex;"><span>Nombre   Estado   Inicio automático   Persistente 
</span></span><span style="display:flex;"><span>---------------------------------------------------- 
</span></span><span style="display:flex;"><span>br0      activo   si                  si 
</span></span><span style="display:flex;"><span>nat      activo   si                  si
</span></span></code></pre></div><p>Si abrimos la consola de VMM ya podemos ver que se ha creado la nueva interfaz y está lista para ser usada con nuestras máquinas virtuales.</p>
<p><img src="/images/2021/20210806-network-manager.png" alt="image-20210806-network-manager"></p>
]]></description>
      
    </item>
    
    
    
    <item>
      <title>Proteger SSH mediante Port Knocking</title>
      <link>https://www.igalvan.es/posts/proteger-ssh-mediante-port-knocking/</link>
      <pubDate>Sun, 01 Aug 2021 21:04:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/proteger-ssh-mediante-port-knocking/</guid>
      <description><![CDATA[<p>Hoy vamos a ver cómo ocultar un servicio que tengamos publicado en Internet aprovechándonos de una técnica conocida como Port Knocking. En nuestro caso lo haremos con el servicio SSH.</p>
<h2 id="máquina-servidor">Máquina servidor</h2>
<p>Lo primero es instalar el paquete de EPEL para posteriormente instalar el paquete knock-server. También es necesario instalar libpcap.</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-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@knockd ~<span style="color:#f92672">]</span><span style="color:#75715e"># yum install libpcap</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>...<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>root@knockd ~<span style="color:#f92672">]</span><span style="color:#75715e"># yum install epel-release</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>...<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>root@knockd ~<span style="color:#f92672">]</span><span style="color:#75715e"># yum install knock-server</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>...<span style="color:#f92672">]</span>
</span></span></code></pre></div><p>El siguiente paso es eliminar de nftables la regla que permite las conexiones SSH remotas mediante el siguiente comando. Ten en cuenta que en mi instalación se usa la zona por defecto llamada public.</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-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@knockd ~<span style="color:#f92672">]</span><span style="color:#75715e"># firewall-cmd --zone=public --remove-service=ssh --permanent</span>
</span></span><span style="display:flex;"><span>success
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>root@knockd ~<span style="color:#f92672">]</span><span style="color:#75715e"># firewall-cmd --reload</span>
</span></span></code></pre></div><p>El siguiente paso es modificar el fichero /etc/knockd.conf y dejarlo con el siguiente contenido. Por favor, <strong>cambiad los puertos a otra secuencia</strong>. 😜</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-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#f92672">[</span>options<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>        UseSyslog
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>opencloseSSH<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>        sequence      <span style="color:#f92672">=</span> 51234:udp,55678:tcp,59124:udp
</span></span><span style="display:flex;"><span>        seq_timeout   <span style="color:#f92672">=</span> <span style="color:#ae81ff">15</span>
</span></span><span style="display:flex;"><span>        tcpflags      <span style="color:#f92672">=</span> syn,ack
</span></span><span style="display:flex;"><span>        start_command <span style="color:#f92672">=</span> /bin/firewall-cmd --zone<span style="color:#f92672">=</span>public --add-rich-rule <span style="color:#e6db74">&#34;rule family=&#34;</span>ipv4<span style="color:#e6db74">&#34; source address=&#34;</span>%IP%<span style="color:#e6db74">&#34; service name=&#34;</span>ssh<span style="color:#e6db74">&#34; accept&#34;</span>
</span></span><span style="display:flex;"><span>        cmd_timeout   <span style="color:#f92672">=</span> <span style="color:#ae81ff">10</span>
</span></span><span style="display:flex;"><span>        stop_command  <span style="color:#f92672">=</span> /bin/firewall-cmd --zone<span style="color:#f92672">=</span>public --remove-rich-rule <span style="color:#e6db74">&#34;rule family=&#34;</span>ipv4<span style="color:#e6db74">&#34; source address=&#34;</span>%IP%<span style="color:#e6db74">&#34; service name=&#34;</span>ssh<span style="color:#e6db74">&#34; accept&#34;</span>
</span></span></code></pre></div><p>El último paso es habilitar e iniciar el servicio knockd.</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-sh" data-lang="sh"><span style="display:flex;"><span>sudo systemctl enable knockd <span style="color:#f92672">&amp;&amp;</span> sudo systemctl start knockd
</span></span></code></pre></div><h2 id="máquina-cliente">Máquina cliente</h2>
<p>En la máquina cliente desde la que vamos a acceder por SSH es necesario instalar el cliente de knock. Al igual que en el servidor es necesario disponer del repositorio EPEL.</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-sh" data-lang="sh"><span style="display:flex;"><span>yum install epel-release
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>...<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>yum install knock
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>...<span style="color:#f92672">]</span>
</span></span></code></pre></div><p>Vamos a una un primer intento de conexión mediante SSH para que veamos que no es posible conectar.</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-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#f92672">[</span>ignacio@knock-client ~<span style="color:#f92672">]</span>$ ssh root@192.168.122.186
</span></span><span style="display:flex;"><span>ssh: connect to host 192.168.122.186 port 22: No route to host
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>ignacio@knock-client ~<span style="color:#f92672">]</span>$  
</span></span></code></pre></div><p>Ahora vamos a usar el cliente de knock que hemos instalado para hacer la &ldquo;llamada&rdquo; y que se abra la puerta.</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-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#f92672">[</span>root@knock-client ~<span style="color:#f92672">]</span><span style="color:#75715e"># knock -v -d 1 192.168.122.186 51234:udp 55678:tcp 59124:udp</span>
</span></span><span style="display:flex;"><span>hitting udp 192.168.122.186:51234
</span></span><span style="display:flex;"><span>hitting tcp 192.168.122.186:55678
</span></span><span style="display:flex;"><span>hitting udp 192.168.122.186:59124
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>root@knock-client ~<span style="color:#f92672">]</span><span style="color:#75715e"># ssh root@192.168.122.186</span>
</span></span><span style="display:flex;"><span>root@192.168.122.186<span style="color:#960050;background-color:#1e0010">&#39;</span>s password:  
</span></span><span style="display:flex;"><span>Last failed login: Sun Aug  <span style="color:#ae81ff">1</span> 20:51:14 WEST <span style="color:#ae81ff">2021</span> from knock-client on ssh:notty
</span></span><span style="display:flex;"><span>Last login: Sun Aug  <span style="color:#ae81ff">1</span> 20:25:03 <span style="color:#ae81ff">2021</span> from knock-client
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span>root@knockd ~<span style="color:#f92672">]</span><span style="color:#75715e"># </span>
</span></span></code></pre></div><p>En el fichero messages del servidor podemos ver lo siguiente:</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-sh" data-lang="sh"><span style="display:flex;"><span>Aug  <span style="color:#ae81ff">1</span> 20:51:26 knock-client knockd: 192.168.122.136: opencloseSSH: Stage <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>Aug  <span style="color:#ae81ff">1</span> 20:51:26 knock-client knockd: 192.168.122.136: opencloseSSH: Stage <span style="color:#ae81ff">2</span>
</span></span><span style="display:flex;"><span>Aug  <span style="color:#ae81ff">1</span> 20:51:26 knock-client knockd: 192.168.122.136: opencloseSSH: Stage <span style="color:#ae81ff">3</span>
</span></span><span style="display:flex;"><span>Aug  <span style="color:#ae81ff">1</span> 20:51:26 knock-client knockd: 192.168.122.136: opencloseSSH: OPEN SESAME
</span></span><span style="display:flex;"><span>Aug  <span style="color:#ae81ff">1</span> 20:51:26 knock-client knockd: opencloseSSH: running command: /bin/firewall-cmd --zone<span style="color:#f92672">=</span>public --add-rich-rule <span style="color:#e6db74">&#34;rule family=&#34;</span>ipv4<span style="color:#e6db74">&#34; source address=&#34;</span>192.168.122.136<span style="color:#e6db74">&#34; service name=&#34;</span>ssh<span style="color:#e6db74">&#34; accept&#34;</span>
</span></span><span style="display:flex;"><span>Aug  <span style="color:#ae81ff">1</span> 20:51:31 knock-client systemd-logind: New session <span style="color:#ae81ff">4</span> of user root.
</span></span><span style="display:flex;"><span>Aug  <span style="color:#ae81ff">1</span> 20:51:31 knock-client systemd: Started Session <span style="color:#ae81ff">4</span> of user root.
</span></span><span style="display:flex;"><span>Aug  <span style="color:#ae81ff">1</span> 20:51:37 knock-client knockd: 192.168.122.136: opencloseSSH: command timeout
</span></span><span style="display:flex;"><span>Aug  <span style="color:#ae81ff">1</span> 20:51:37 knock-client knockd: opencloseSSH: running command: /bin/firewall-cmd --zone<span style="color:#f92672">=</span>public --remove-rich-rule <span style="color:#e6db74">&#34;rule family=&#34;</span>ipv4<span style="color:#e6db74">&#34; source address=&#34;</span>192.168.122.136<span style="color:#e6db74">&#34; service name=&#34;</span>ssh<span style="color:#e6db74">&#34; accept&#34;</span>
</span></span></code></pre></div>]]></description>
      
    </item>
    
    
    
    <item>
      <title>Instalación de Fail2ban en un servidor CentOS</title>
      <link>https://www.igalvan.es/posts/esta-tarde-estaba-configurando-un/</link>
      <pubDate>Fri, 30 Jul 2021 20:49:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/esta-tarde-estaba-configurando-un/</guid>
      <description><![CDATA[<p>Esta tarde estaba configurando un servidor para un proyecto personal que he alquilado en un proveedor de estos baratillos y nada más instalar CentOS y conectarme por SSH, lo primero que me sale es un mensaje indicando que ha habido siete intentos de inicio de sesión incorrectos&hellip;</p>
<p>Hay que ver cómo está el patio, ¡la máquina encendida llevaba cinco minutos encendida! Así que después de cambiar en el servicio SSH que solo se pueda autenticar mediante claves, lo siguiente ha sido instalar Fail2ban.</p>
<h2 id="instalación-de-fail2ban-en-centos">Instalación de Fail2ban en CentOS</h2>
<p>El primer paso es instalar el repositorio EPEL, si no lo tiene hecho ya, claro.</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-sh" data-lang="sh"><span style="display:flex;"><span>dnf install epel-repo
</span></span></code></pre></div><p>Después tenemos que instalar el paquete fail2ban.</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-sh" data-lang="sh"><span style="display:flex;"><span>dnf install fail2ban
</span></span></code></pre></div><h2 id="configuración-de-fail2ban">Configuración de Fail2ban</h2>
<p>En mi caso, al menos por ahora, voy a dejar la configuración por defecto. En el fichero <code>/etc/fail2ban/jail.conf</code>, está toda la configuración por si queréis modificarla.</p>
<h2 id="creación-de-la-jaula-para-sshd">Creación de la jaula para SSHD</h2>
<p>Hay que crear el fichero que contendrá la configuración de la jaula para el servicio SSHD. Creamos el fichero <code>/etc/fail2ban/jail.d/sshd.local</code> y dentro ponemos el siguiente contenido:</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-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#f92672">[</span>sshd<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span>enabled <span style="color:#f92672">=</span> true
</span></span></code></pre></div><h2 id="activación-del-servicio-fail2ban">Activación del servicio Fail2ban</h2>
<p>Una vez que hemos completado la configuración de Fail2ban, lo siguiente es activar el servicio para que empiece a vigilar por nosotros. 😉</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-sh" data-lang="sh"><span style="display:flex;"><span>systemctl enable --now fail2ban
</span></span><span style="display:flex;"><span>Created symlink /etc/systemd/system/multi-user.target.wants/fail2ban.service → /usr/lib/systemd/system/fail2ban.service.
</span></span></code></pre></div><h2 id="verificación-del-estado-del-servicio-fail2ban">Verificación del estado del servicio Fail2ban</h2>
<p>Verificamos que se ha iniciado correctamente con la jaula definida.</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-sh" data-lang="sh"><span style="display:flex;"><span>fail2ban-client status
</span></span><span style="display:flex;"><span>Status
</span></span><span style="display:flex;"><span>|- Number of jail:    <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span><span style="color:#e6db74">`</span>- Jail list:    sshd
</span></span></code></pre></div><h2 id="comprobamos-cómo-va-la-cosa">Comprobamos cómo va la cosa</h2>
<p>Dejamos pasar un par de minutos y vamos a ver cuántas IP bloqueadas tenemos.</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-sh" data-lang="sh"><span style="display:flex;"><span>fail2ban-client get sshd banned
</span></span><span style="display:flex;"><span><span style="color:#f92672">[</span><span style="color:#e6db74">&#39;xxx.xxx.xxx.xxx&#39;</span>, <span style="color:#e6db74">&#39;xx.xx.xx.xxx&#39;</span>, <span style="color:#e6db74">&#39;xx.xx.xxx.xxx&#39;</span>, <span style="color:#e6db74">&#39;xxx.xxx.xxx.xxx&#39;</span>, <span style="color:#e6db74">&#39;xx.xx.xxx.xxx&#39;</span>, <span style="color:#e6db74">&#39;xxx.xxx.xxx.xxx&#39;</span>, <span style="color:#e6db74">&#39;xx.xxx.xxx.xxx&#39;</span>, <span style="color:#e6db74">&#39;xx.xxx.xxx.xx&#39;</span>, <span style="color:#e6db74">&#39;xxx.xxx.xx.xx&#39;</span>, <span style="color:#e6db74">&#39;xx.xx.xxx.xxx&#39;</span><span style="color:#f92672">]</span>
</span></span></code></pre></div>]]></description>
      
    </item>
    
    
    
    <item>
      <title>Fecha públicación - Debian 7 - Release date</title>
      <link>https://www.igalvan.es/posts/fecha-publicacion-debian-7-release-date/</link>
      <pubDate>Sun, 21 Apr 2013 12:02:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/fecha-publicacion-debian-7-release-date/</guid>
      <description><![CDATA[<p>Buenas noticias para los usuarios de Debian. Neil McGovern ha confirmado la fecha mediante un comunicado oficial que Debian 7 &#8220;Wheezy&#8221; será publicado entre el 4 y 5 de mayo. Puede parecer un hecho irrelevante pero teniendo en cuenta que la versión 6 se publicó en febrero de 2011 creo que se merece al menos una reseña.</p><br/><p>La nueva versión trae muchas mejoras, como es evidente, pero las principales serían el soporte UEFI y el nuevo instalador que permite agilizar y simplificar la instalación.</p><br/><p>Para obtener más detalles sigue este <a href="http://lists.debian.org/debian-devel-announce/2013/04/msg00006.html" target="_blank">enlace.</a></p><br/><p>&#8212;</p><br/><p><span id="result_box"><span class="hps">Good news</span> <span class="hps">for Debian&#8217;s users</span><span class="hps">.</span> <span class="hps">Neil</span> <span class="hps">McGovern</span> <span class="hps">has confirmed </span></span><span id="result_box"><span class="hps"><span id="result_box"><span class="hps">by</span> <span class="hps">a statement</span></span></span><span class="hps"> </span><span class="hps">that</span> <span class="hps">Debian</span> <span class="hps atn">7 &#8220;</span><span>Wheezy</span><span>&#8221; will be published</span> <span class="hps">between 4th</span> <span class="hps">and</span><span class="hps"> 5th of May</span><span>.</span> <span class="hps">It may seem</span> <span class="hps">an irrelevant fact</span> <span class="hps">but considering</span> <span class="hps">that</span> <span class="hps">version 6</span> <span class="hps">was released in February</span> <span class="hps">of</span> <span class="hps">2011</span> <span class="hps">I think it deserves</span> <span class="hps">at least</span> <span class="hps">a review.</span><br /><br /><span class="hps">The new</span> <span class="hps">version brings</span> <span class="hps">many improvements</span><span>,</span> <span class="hps">as is evident,</span> <span class="hps">but</span><span class="hps"> principals</span> <span class="hps">would</span> <span class="hps">support</span> be <span class="hps">UEFI</span> <span class="hps">and the new</span> <span class="hps">installer that</span> <span class="hps">allows to speed up</span> <span class="hps">and</span> <span class="hps">simplify installation.</span><br /><br /><span class="hps">For more</span> <span class="hps">details</span> <span class="hps">follow this <a href="http://lists.debian.org/debian-devel-announce/2013/04/msg00006.html">link</a>.</span></span></p>]]></description>
      
    </item>
    
    
    
    <item>
      <title>MATE o lo que Gnome siempre fue</title>
      <link>https://www.igalvan.es/posts/mate-o-lo-que-gnome-siempre-fue/</link>
      <pubDate>Tue, 12 Feb 2013 12:29:00 +0000</pubDate>
      
      <guid>https://www.igalvan.es/posts/mate-o-lo-que-gnome-siempre-fue/</guid>
      <description><![CDATA[<p>Llevo unas horas jugando con Fedora 18 y Gnome 3.6 y eso es lo que he tardado en instalar MATE. Se supone que Gnome 3 fue diseñada para maximizar la usabilidad y la productividad, se supone que se han invertidos miles de horas en crearlo, pero&#8230; ¿para qué?</p><br/><p>No entiendo porque tengo que hacer dos clic para cerrar una ventana. Tampoco entiendo porque no puedo personalizar mi escritorio desde un simple clic en vez de una aplicación como <em>Gnome Tweak Tool</em> que no es precisamente muy usable, no entiendo porque necesito un mapa para encontrar las aplicaciones en vez de tener un menú único,&#8230;</p><br/><p>En resumen, demasiados cambios incomprensibles para algo que debería ser una herramienta de trabajo.</p><br/><p>Será que me estoy volviendo viejo, pero todas las ventajas a las que tanto bombo y platillo se han dado a esta versión de Gnome, ¡estaban ya en la versión anterior! Así que me tome el trabajo de instalar MATE para volver a lo que sé que funciona, a lo que siempre me ha parecido perfecto desde el ¡2002!, el vetusto Gnome 2.</p><br/><p>Por cierto, el comando para hacerlo es</p><br/><p><em>$ su -c &#8216;yum groupinstall &#8220;MATE Desktop&#8221;</em></p><br/><p><img src="http://media.tumblr.com/ebc4d54bd2ff9f4175095d00627d3c18/tumblr_inline_mi3x81GxYP1qz4rgp.png" /></p>]]></description>
      
    </item>
    
    
    
    <item>
      <title>He instalado Fedora 15 y ¿dónde están mis codecs?</title>
      <link>https://www.igalvan.es/posts/he-instalado-fedora-15-y-donde-estan_9731/</link>
      <pubDate>Sun, 29 May 2011 11:52:00 +0100</pubDate>
      
      <guid>https://www.igalvan.es/posts/he-instalado-fedora-15-y-donde-estan_9731/</guid>
      <description><![CDATA[<p>Si hay algo que tengo claro desde hace ya bastante tiempo es que Fedora es mi distribución, y no es por falta de probar, he pasado por decenas de distribuciones diferentes y aunque cada una tiene sus ventajas y desventajas, por un motivo u otro nunca quedaba medianamente satisfecho, y si no que se lo pregunten a mis compañeros de trabajo.<a name='more'></a><br /><br />Una de las pocas cosas que no me gustan de Fedora es su obsesión por no incluir por defecto software con patentes de software de ningún tipo. Es una de esas cosas que no entiendo, por lado se intenta crear un sistema operativo de escritorio &ldquo;para todo el mundo&rdquo;, pero por otro lado eliminas hasta la posibilidad de instalarlo, y no ya la versión privativa sino hasta las alternativas libres basadas en esa patente. Para no seguir desbarrando, vamos a lo que nos interesa, voy a redactar una serie de comandos que podéis lanzar desde la <span style="font-style: italic;">shell</span> de comandos para hacer vuestra vida más fácil y algo menos libre también. Recuerda que debes ejecutar estos comandos como usuario con privilegios de administrador, normalmente el usuario <span style="font-style: italic;">root</span>.<br /><br /><ul><li>Lo primero es instalar los repositorios necesarios, en este caso los de LIVNA<em>:</em></li></ul><em><br /></em><span style="font-size:85%;"><span style="font-family:courier new;">[root@maquina ignacio]#rpm -ivh <a href="http://rpm.livna.org/livna-release">http://rpm.livna.org/livna-release</a>.</span>rpm</span><span style="font-size:85%;"><span style="font-family:courier new;"><span style="font-style: italic;"><br /></span></span></span><span style="font-size:85%;"><span style="font-family:courier new;">[root@maquina ignacio]#</span></span><span style="font-size:85%;"><span style="font-family:courier new;">rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-livna</span></span><br /><br /><ul><li>Y ahora instalamos los <span style="font-style: italic;">codecs</span> multimedia:</li></ul><br /><span style="font-size:85%;"><span style="font-family:courier new;">[root@maquina ignacio]</span></span><span style="font-size:85%;"><span style="font-family:courier new;">#yum install gstreamer-plugins-bad gstreamer-plugins-bad-nonfree gstreamer-plugins-ugly gstreamer-ffmpeg</span></span><br /><br />Y ahora a disfrutar de vuestros vídeos favoritos.<br /><br />PD: Si queréis saber más de la política de <span style="font-style: italic;">codecs</span> de Fedora os dejo el siguiente <a href="http://fedoraproject.org/wiki/CodecBuddy">enlace</a>.</p>
]]></description>
      
    </item>
    
    
  </channel>
</rss>
