<?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>CentOS on El blog de Ignacio</title>
    <link>https://www.igalvan.es/tags/centos/</link>
    <description>Recent content in CentOS on El blog de Ignacio</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>es</language>
    <copyright>Ignacio Galván Vitas</copyright>
    <lastBuildDate>Fri, 30 Jul 2021 20:49:00 +0100</lastBuildDate><atom:link href="https://www.igalvan.es/tags/centos/index.xml" rel="self" type="application/rss+xml" /><icon>https://www.igalvan.es/logo.svg</icon>
    
    
    <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>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>
