<?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>Seguridad &#8211; Mindeka</title>
	<atom:link href="https://mindeka.es/category/sistemas/seguridad/feed/" rel="self" type="application/rss+xml" />
	<link>https://mindeka.es</link>
	<description>Biblioteca de pensamientos e ideas.</description>
	<lastBuildDate>Mon, 20 Oct 2025 08:04:45 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://mindeka.es/wp-content/uploads/2025/06/mindeka-1-150x150.png</url>
	<title>Seguridad &#8211; Mindeka</title>
	<link>https://mindeka.es</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Deshabilitar uso de contraseña en conexiones SSH</title>
		<link>https://mindeka.es/2025/10/20/deshabilitar-uso-de-contrasena-en-conexiones-ssh/</link>
					<comments>https://mindeka.es/2025/10/20/deshabilitar-uso-de-contrasena-en-conexiones-ssh/#respond</comments>
		
		<dc:creator><![CDATA[jmdlr]]></dc:creator>
		<pubDate>Mon, 20 Oct 2025 07:53:41 +0000</pubDate>
				<category><![CDATA[Contraseñas]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Selfhosting]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[seguridad]]></category>
		<guid isPermaLink="false">https://mindeka.es/?p=285</guid>

					<description><![CDATA[Algo que no tenía hecho en mi mini-pc después de mi última reinstalación desde cero, fue, primeramente crear mis claves públicas y privadas en cada uno de los equipos desde los que accedo a mi servidor casero y posteriormente deshabilitar el acceso por contraseña mediante mis conexiones por SSH. Y sobre esto último es sobre [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Algo que no tenía hecho en mi mini-pc después de mi última reinstalación desde cero, fue, primeramente crear mis claves públicas y privadas en cada uno de los equipos desde los que accedo a mi servidor casero y posteriormente <strong>deshabilitar el acceso por contraseña</strong> mediante mis conexiones por SSH.</p>



<p>Y sobre esto último es sobre lo que va este breve y sencillo artículo, ya que es algo que todos deberíamos hacer si tenemos nuestro servidor casero en casa o incluso si usamos un VPS para servir nuestras apps e información.</p>



<figure class="wp-block-image size-large"><a href="https://unsplash.com/es/@othentikisra" target="_blank" rel=" noreferrer noopener"><img fetchpriority="high" decoding="async" width="1024" height="683" src="https://mindeka.es/wp-content/uploads/2025/10/image-1-1024x683.png" alt="" class="wp-image-287" srcset="https://mindeka.es/wp-content/uploads/2025/10/image-1-1024x683.png 1024w, https://mindeka.es/wp-content/uploads/2025/10/image-1-300x200.png 300w, https://mindeka.es/wp-content/uploads/2025/10/image-1-768x512.png 768w, https://mindeka.es/wp-content/uploads/2025/10/image-1-1536x1024.png 1536w, https://mindeka.es/wp-content/uploads/2025/10/image-1.png 1740w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Imagen extraída de Unsplash y propiedad de Israel Palacio (c)</figcaption></figure>



<p>Los pasos son muy sencillos y conseguiremos que nadie nunca pueda acceder con «usuario/contraseña», ni siquiera nosotros mismos :). Por ello tendremos que tener cuidado y sobre todo <strong>probar</strong> nuestro acceso previamente con nuestra clave pública generada. Más adelante avisaremos en ese punto crítico para evitar sustos.</p>



<h2 class="wp-block-heading">Configuración</h2>



<h4 class="wp-block-heading">Clave pública y privada</h4>



<p>Lo primero será generar en nuestro equipo una <strong>clave pública y otra privada</strong>, esta última la copiaremos en nuestro servidor y con ellas podremos acceder desde ese equipo en concreto directamente. Si accedemos con varios equipos a nuestro servidor, tendremos que <strong>hacer lo mismo en cada uno de ellos</strong>.</p>



<p>Para crear las claves podéis seguir este artículo que escribí hace unos años donde explico todo paso a paso:</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-mindeka wp-block-embed-mindeka"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="JTtJ9T41AZ"><a href="https://mindeka.es/2020/03/30/acceder-por-ssh-con-clave-publica/">Acceder por SSH con clave pública</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="«Acceder por SSH con clave pública» — Mindeka" src="https://mindeka.es/2020/03/30/acceder-por-ssh-con-clave-publica/embed/#?secret=cUQZwMmaZO#?secret=JTtJ9T41AZ" data-secret="JTtJ9T41AZ" width="500" height="282" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<p>Si ya las tenéis creadas, podéis saltaros ese paso y seguir con el siguiente&#8230;</p>



<h4 class="wp-block-heading">Pruebas de conexión</h4>



<p>Este punto es el más importante, aunque en el artículo para crear clave pública y privada está explicado, tenemos que tener mucho cuidado y antes de desactivar la posibilidad de conectar por contraseña, <strong>tenemos que probar el acceso por clave pública y privada</strong>.</p>



<p>La prueba básicamente es lanzar una conexión por SSH a nuestro servidor, desde el equipo en el que tenemos nuestra clave pública, que será reconocida por la clave privada de nuestro servidor y nos dejará acceder. Para ello escribiremos esto desde la línea de comandos de nuestro servidor Windows/Linux:</p>



<pre class="wp-block-code"><code>ssh -i clave_publica.pub usuario@X.X.X.X</code></pre>



<p>En el ejemplo de arriba, hay que tener en cuenta qué:</p>



<ul class="wp-block-list">
<li><strong>-i</strong> este es el parámetro usado para decir al comando SSH que usaremos una clave pública para conectar. <span style="text-decoration: underline;">Siempre tendremos que indicar el fichero que contiene nuestra clave pública para conectar de esta forma</span>.</li>



<li><strong>clave_publica.pub</strong>, es nuestra clave pública para usar, normalmente al crearla se ubica dentro de la carpeta de nuestro usuario seguido de la carpeta <strong>.ssh</strong>. Por lo que si queremos conectar tendríamos que poner «ssh -i .ssh/clave_publica.pub». Podemos copiar la clave pública en cualquier carpeta que queramos y el nombre del fichero también podemos cambiarla por el que queramos. Solo debemos tener cuidado de ponerlo bien todo a nivel de comando.</li>



<li><strong>usuario</strong>, el nombre de usuario con el que conectaremos a nuestro servidor y que utilizar esas claves pública y privada.</li>



<li><strong>X.X.X.X</strong>, la dirección IP privada o pública que corresponda con nuestro servidor.</li>
</ul>



<p>Con eso la conexión a nuestro servidor, según pulsemos la tecla «Enter», debería ser directa, <strong>sin petición de ninguna contraseña</strong>.</p>



<p><mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color"><strong>IMPORTANTE</strong>: Si nos pidiera una contraseña, habría que revisar si estamos usando la clave pública correcta si tenemos varias, si estamos usando el usuario correcto, si la clave privada fue copiada correctamente en el servidor, etc. <strong><span style="text-decoration: underline;">No desactivar el acceso por contraseña si esto sucede.</span></strong></mark></p>



<p>Si por el contrario, el acceso es correcto, nos encontraremos ya conectados con nuestro usuario y listos para añadir comandos y trabajar con nuestro servidor.</p>



<h4 class="wp-block-heading">Deshabilitando acceso</h4>



<p>Vamos ahora a deshabilitar el acceso mediante contraseña, esto lo haremos modificando el fichero de confirmación de SSH en nuestro servidor casero.</p>



<p>Lo primero será editar el fichero de configuración con <strong>permisos de root</strong>. El fichero es el siguiente y lo editaremos con nuestro editor favorito, en mi caso «vi»:</p>



<pre class="wp-block-code"><code>sudo vi /etc/ssh/sshd_config</code></pre>



<p>Buscamos la siguiente línea en nuestro fichero:</p>



<pre class="wp-block-code"><code>#PasswordAuthentication yes</code></pre>



<p>Seguramente se encuentre comentada con una almohadilla al inicio. Por lo que haremos dos cosas:</p>



<ul class="wp-block-list">
<li>Quitar la almohadilla para activarla, y</li>



<li>Cambiaremos el «yes» por el «no»</li>
</ul>



<p>La línea quedará así:</p>



<pre class="wp-block-code"><code>PasswordAuthentication no</code></pre>



<p>Ahora salvamos el fichero y tocará reiniciar el servicio de SSH para que se apliquen estos cambios. No será necesario reiniciar y se aplicarán directamente los cambios.</p>



<p>Ejecutamos el siguiente comando para reiniciar:</p>



<pre class="wp-block-code"><code>sudo systemctl restart sshd</code></pre>



<p>o con «Service» si tenemos una distribución linux sin SystemV:</p>



<pre class="wp-block-code"><code>service ssh restart</code></pre>



<p>Y con esto ya estaría todo. Ahora solo quedaría que desconectarais y probar directamente el acceso con clave pública/privada.</p>



<p>Espero que esto os sirva para securizar un poco más vuestro servidor auto alojado <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>Preguntar, dudas o cuestiones como siempre en los comentarios.</p>



<p>¡Nos vemos por el Fediverso!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mindeka.es/2025/10/20/deshabilitar-uso-de-contrasena-en-conexiones-ssh/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DNS4EU, las nuevas DNS europeas</title>
		<link>https://mindeka.es/2025/06/07/dns4eu-las-dns-europeas/</link>
					<comments>https://mindeka.es/2025/06/07/dns4eu-las-dns-europeas/#respond</comments>
		
		<dc:creator><![CDATA[jmdlr]]></dc:creator>
		<pubDate>Sat, 07 Jun 2025 00:07:37 +0000</pubDate>
				<category><![CDATA[DNS]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sistemas]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[seguridad]]></category>
		<guid isPermaLink="false">https://mindeka.duckdns.org/?p=172</guid>

					<description><![CDATA[Europa poco a poco se va quitando la venda de los ojos y comienza, nunca es tarde, a construir el camino de una independencia necesaria y que hemos perdido desde hace mucho tiempo. Y aunque se sabía del problema se dejó hacer y nunca fuimos tan conscientes como ahora, cuando un hombre con un «tupé» [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Europa poco a poco se va quitando la venda de los ojos y comienza, nunca es tarde, a construir el camino de una independencia necesaria y que hemos perdido desde hace mucho tiempo. Y aunque se sabía del problema se dejó hacer y nunca fuimos tan conscientes como ahora, cuando un hombre con un «tupé» horroroso al otro lado del Atlántico se puso a poner aranceles comerciales para desatar el pánico y sobre todo atentar, de una manera u otra con la paz mundial.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="626" height="351" src="https://mindeka.duckdns.org/wp-content/uploads/2025/06/image-1.png" alt="" class="wp-image-173" srcset="https://mindeka.es/wp-content/uploads/2025/06/image-1.png 626w, https://mindeka.es/wp-content/uploads/2025/06/image-1-300x168.png 300w" sizes="(max-width: 626px) 100vw, 626px" /></figure>



<p>Europa se ha debilitado durante años incluso décadas, hemos dejado de construir dejando todo el «suministro» fuera de nuestras fronteras, depender peligrosamente de otros y lo que es pero, sin alternativas.</p>



<p>Pero como decía, Europa ya está en marcha para ofrecer esas <strong>alternativas</strong> que son tan necesarias y que nos ayudarán a no temer tanto lo que determinados dirigentes puedan o no querer hacer, prohibir, controlar&#8230;</p>



<h3 class="wp-block-heading">Primeros pasos</h3>



<p>Uno de los primeros pasos ha sido presentar las <strong>DNS europeas</strong> para romper definitivamente con algo que hace muy fuerte a compañías fuera de Europa como <em>Google</em>, <em>OpenDNS </em>de <em>Cisco </em>o incluso <em>Cloudflare</em>, que es <em>hurgar </em>en nuestro tráfico, en que buscamos, que nos interesa&#8230; en definitiva todo lo que hacemos en internet. Con estas nuevas DNS europeas, ese tráfico no saldrá de Europa, rompiendo esa dependencia que tenemos de ellos.</p>



<p>Junto a eso, tienen un claro sentido de «protección», ya que vienen por defecto con potentes filtrados para frenar el spam, malware e incluso contenido no adecuado para menores. Una opción muy interesante ya de por sí, para aquellas familias que no tengan los conocimientos suficientes para instalar algún bloqueador de este tipo de amenazas, y que les servirá simplemente configurando estas DNS para frenar ese contenido peligroso.</p>



<h3 class="wp-block-heading">DNS4EU para el público</h3>



<p>Estas DNS llegan como dicen en la propia página oficial, como una <strong>alternativa </strong>en un mercado con un claro monopolio y además para conseguir una libertad, independencia, privacidad y seguridad en Europa.</p>



<p>Para ello, han puesto a disposición del público diferentes «sabores» de DNS para que cada uno decida el nivel de protección que necesita según el caso. En esta página encontraréis toda la información: <a href="https://www.joindns4.eu/for-public">https://www.joindns4.eu/for-public</a></p>



<p>Cada persona podrá elegir si no quiere filtrar nada, si quiere que sus peticiones estén protegidas, si quiere evitar anuncios, protección infantil&#8230; en total <strong>5 opciones</strong> a la hora de resolver que pueden cumplir las expectativas de cualquier usuario europeo.</p>



<p>Aquí abajo las tenéis descritas al igual que en la página oficial que os puse más arriba:</p>



<ol class="wp-block-list">
<li><strong>Protective Resolution</strong> &#8211; IP address <strong>86.54.11.1</strong></li>



<li><strong>Protective + Child Protection</strong> &#8211; IP address <strong>86.54.11.12</strong></li>



<li><strong>Protective + Ad blocking</strong> &#8211; IP address <strong>86.54.11.13</strong></li>



<li><strong>Protective + Child Protection + Ad blocking</strong> &#8211; IP address <strong>86.54.11.11</strong></li>



<li><strong>Unfiltered Resolution</strong>&#8211;  IP address <strong>86.54.11.100</strong></li>
</ol>



<p>También existen las correspondientes opciones para IPv6, DNS over HTTPS o DNS over TLS.</p>



<p>Ahora ya solo os toca elegir que tipo de resolución os gustaría, sin filtrar o un filtrado de protección <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<h3 class="wp-block-heading">Probando las DNS</h3>



<p>Al tener hijos mi opción en cuanto a filtrado fue claro, tenía que elegir las más completa: <strong>Protective + Child Protection + Ad blocking</strong>.</p>



<p>Primero comencé añadiéndolas en mi portátil personal bajo <em>UltramarineOS</em> (basada en Ubuntu) y tengo que decir que el funcionamiento, en cuanto a respuesta y calidad en el filtrado fue realmente buena.</p>



<p>Sin Pi-hole de por medio, el filtrado de páginas maliciosas, de violencia o de contenido pornográfico fue excepcional, bloqueó prácticamente todo incluso sin contar tampoco con un <em>adblocker </em>en el navegador. Si bien alguna dirección se le escapó, es realmente fiable y segura en el filtrado.</p>



<p>Pero como esto es subjetivo, probé el rendimiento y velocidad de respuesta con una de las mejores aplicaciones para ello, como es <strong>DNS Benchmark</strong>, con la que se puede medir el rendimiento de los servidores DNS de los cuales queráis tener información.<br>La página donde la podéis descargar si os interesa es esta: <a href="https://www.grc.com/dns/benchmark.htm">https://www.grc.com/dns/benchmark.htm</a></p>



<p>Mi configuración fue como DNS principal el «todo incluido»: <strong>86.54.11.11</strong> y como secundario el de protección básica: <strong>86.54.11.1</strong>.</p>



<p>En la aplicación añadí todos los servidores DNS europeos para comprobar su rendimiento:</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="589" height="181" src="https://mindeka.duckdns.org/wp-content/uploads/2025/06/image-3.png" alt="" class="wp-image-175" srcset="https://mindeka.es/wp-content/uploads/2025/06/image-3.png 589w, https://mindeka.es/wp-content/uploads/2025/06/image-3-300x92.png 300w" sizes="auto, (max-width: 589px) 100vw, 589px" /></figure>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="204" height="133" src="https://mindeka.duckdns.org/wp-content/uploads/2025/06/image-5.png" alt="" class="wp-image-176"/></figure>



<p>Una vez añadidos lancé la prueba (tardó unos cinco minutos) con los siguientes resultados realmente buenos:</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="585" height="771" src="https://mindeka.duckdns.org/wp-content/uploads/2025/06/image-6.png" alt="" class="wp-image-177" srcset="https://mindeka.es/wp-content/uploads/2025/06/image-6.png 585w, https://mindeka.es/wp-content/uploads/2025/06/image-6-228x300.png 228w" sizes="auto, (max-width: 585px) 100vw, 585px" /></figure>



<p>Nuestro servidor «todo incluído» europeo quedó en <strong>tercer lugar</strong> (el primero es la IP de nuestra máquina local, esa no cuenta) solo superado por <em>NTT Data </em>y el servidor europeo con protección + child protection (86.54.11.12). Y quedando por encima de las grandes «ballenas» del mercado.</p>



<p>Eso sí, algunos servidores de DNS4EU quedaron alejados del top como mi DNS secundario (86.54.11.1) por lo que eso me permitió conocer que era mejor configurar como segunda alternativa el segundo servidor más rápido de DNS4EU que es el de protective + children protection.</p>



<p>Así pues finalmente configuré mi Pi-hole con los dos servidores más rápidos:</p>



<ul class="wp-block-list">
<li>86.54.11.11</li>



<li>86.54.11.12</li>
</ul>



<p>Por último hice algunas pruebas más como un test de filtros básicos desde <a href="http://testfiltering.com/test/">http://testfiltering.com/test/</a> que devolvió un OK en todo:</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="966" src="https://mindeka.duckdns.org/wp-content/uploads/2025/06/image-7-1024x966.png" alt="" class="wp-image-178" srcset="https://mindeka.es/wp-content/uploads/2025/06/image-7-1024x966.png 1024w, https://mindeka.es/wp-content/uploads/2025/06/image-7-300x283.png 300w, https://mindeka.es/wp-content/uploads/2025/06/image-7-768x725.png 768w, https://mindeka.es/wp-content/uploads/2025/06/image-7.png 1276w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Y luego le «presioné» un poco con una página de tests más avanzada (<a href="https://netskopesecuritycheck.com">https://netskopesecuritycheck.com</a>) y no devolvió malos resultados aun cuando solo tenía configuradas esas DNS sin ningún tipo de <em>blocker </em>adicional en ningún lado:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="299" src="https://mindeka.duckdns.org/wp-content/uploads/2025/06/image-8-1024x299.png" alt="" class="wp-image-179" srcset="https://mindeka.es/wp-content/uploads/2025/06/image-8-1024x299.png 1024w, https://mindeka.es/wp-content/uploads/2025/06/image-8-300x87.png 300w, https://mindeka.es/wp-content/uploads/2025/06/image-8-768x224.png 768w, https://mindeka.es/wp-content/uploads/2025/06/image-8.png 1276w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Finalmente así quedó mi Pi-hole configurado, donde mis primeras DNS sobre las europeas y después como «backup» dejé configuradas las de Quad9 que tienen su sede en Suiza, también en Europa.</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="476" height="1024" src="https://mindeka.duckdns.org/wp-content/uploads/2025/06/image-13-476x1024.png" alt="" class="wp-image-180" srcset="https://mindeka.es/wp-content/uploads/2025/06/image-13-476x1024.png 476w, https://mindeka.es/wp-content/uploads/2025/06/image-13-140x300.png 140w, https://mindeka.es/wp-content/uploads/2025/06/image-13.png 496w" sizes="auto, (max-width: 476px) 100vw, 476px" /></figure>



<h3 class="wp-block-heading">Conclusión</h3>



<p>Este es un primer paso para nuestra independencia y es un gran avance, ya que nos da una libertad y protección que no teníamos, porque protegen nuestra privacidad ya que estas DNS se ciñen a la GDPR y además anonimizan nuestros accesos.</p>



<p>Así pues ya sabéis, cambiar en vuestros dispositivos las DNS en cuanto podáis <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Página Oficial: <a href="https://www.joindns4.eu">DNS4EU | Join the European Safe digital space</a></p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://mindeka.es/2025/06/07/dns4eu-las-dns-europeas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Buttercup, gestor de credenciales multiplataforma</title>
		<link>https://mindeka.es/2024/06/05/buttercup-gestor-de-credenciales-multiplataforma/</link>
					<comments>https://mindeka.es/2024/06/05/buttercup-gestor-de-credenciales-multiplataforma/#respond</comments>
		
		<dc:creator><![CDATA[jmdlr]]></dc:creator>
		<pubDate>Wed, 05 Jun 2024 09:00:00 +0000</pubDate>
				<category><![CDATA[Contraseñas]]></category>
		<category><![CDATA[Seguridad]]></category>
		<guid isPermaLink="false">https://mindeka.duckdns.org/?p=143</guid>

					<description><![CDATA[¿Qué es Buttercup? Buscando un gestor de credenciales que tuviera las siguientes dos premisas, que fuese Open Source primeramente y segundo que se pudiera utilizar en cualquier plataforma ya fuese móvil, windows, linux, macos, etc di de cara con Buttercup un gestor que cumple con ellas y que además tiene una extensión compatible con prácticamente [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">¿Qué es Buttercup?</h3>



<p>Buscando un gestor de credenciales que tuviera las siguientes dos premisas, que fuese <em>Open Source</em> primeramente y segundo que se pudiera utilizar en cualquier plataforma ya fuese móvil, windows, linux, macos, etc di de cara con <a target="_blank" rel="noreferrer noopener" href="https://buttercup.pw">Buttercup</a> un gestor que cumple con ellas y que además tiene una extensión compatible con prácticamente todos los navegadores. Se puede decir que esta app es un todoterreno.</p>



<p>Llevo utilizándola ya bastante tiempo y aunque en sus versiones más iniciales tuvo algún que otro problema, ahora mismo se encuentra en un estado muy estable y prácticamente sin errores. De todas maneras, es uno de los proyectos de <a target="_blank" rel="noreferrer noopener" href="https://github.com/buttercup">Github</a> más interesantes actualmente. Así pues, si os interesáis en probadla, estáis de suerte porque os enseñaré el truquito para poder abrir un fichero de claves que tengáis compartido desde Google Drive, pues en la mayoría de distros falla. Allá vamos.</p>



<h3 class="wp-block-heading">Instalación y configuración</h3>



<p>Lo primero será descargar la versión para nuestro sistema desde la página oficial <a target="_blank" rel="noreferrer noopener" href="https://buttercup.pw">https://buttercup.pw</a> según el sistema en el que estemos. Esta pequeña guía será para hacerlo en GNU Linux pero si tenéis MS Windows valdrá igual. Además tenéis como comenté para Android e iOS también desde sus páginas oficiales.</p>



<p>Seleccionamos la opción de <strong>Linux (AppImage)</strong> y comenzará a descargar el paquete en nuestro equipo. Abajo os he marcado donde podréis ver la última versión disponible, en este caso las 2.27.0.</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-1-1024x333.png" alt=""/></figure>



<p>Ahora instalemos la aplicación. Abrimos una consola y lo que haremos será:</p>



<ul class="wp-block-list">
<li>Ubicar el ejecutable en la carpeta que queramos,</li>



<li>Le daremos permisos de ejecución, y</li>



<li>Utilizaremos un fichero ubicado en GDrive con nuestros credenciales.</li>
</ul>



<p>Tendremos el ejecutable en nuestra carpeta de «Descargas» voy a moverlo a otra dentro de mi «Home» de aplicaciones, llamada «apps»:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-2.png" alt=""/></figure>



<p>Le damos permisos de <em>ejecución</em> para poder arrancar la aplicación con nuestro usuario, para ello utilizaremos el comando <em>chmod</em> de la siguiente manera:</p>



<pre class="wp-block-code"><code>chmod +x Buttercup-linux-xxxxxx.AppImage</code></pre>



<p>Lo podéis ver en esta imagen de abajo, como los permisos de ejecución quedan habilitados. En la mayoría de sistemas cuando hagáis eso, el color del fichero cambiar a a color verde para identificarlo como fichero «ejecutable»:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-3.png" alt=""/></figure>



<p>Toca arrancarlo para ver si funciona correctamente:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-4.png" alt=""/></figure>



<p>Esto comenzará el arranque de la app y lo primero que nos preguntará por una contraseña para un nuevo «keyring», llavero en español, que será nuestra contraseña <strong>maestra</strong> si únicamente vamos a utilizar un fichero en local. Por ello si esto es así, la contraseña debe ser <strong>segura</strong>, <strong>larga</strong> y con <strong>caracteres alfanuméricos</strong>&#8230; en otras palabras «la leche de difícil para descifrar» :D. Cuando sepamos cual, la añadimos:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-5-1024x468.png" alt=""/></figure>



<p>Y con esto ya se nos abrirá la aplicación en nuestro escritorio:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-6.png" alt=""/></figure>



<p>Comprobada que la aplicación funciona, la volvemos a <strong>cerrar</strong>.</p>



<h3 class="wp-block-heading">Lanzador de ficheros appimage</h3>



<p>Las aplicaciones .appimage en muchas de las distribuciones requieren de un «punto de entrada» para poder integrarlas en el sistema y así poder abrirlas directamente con dicha aplicación. Para que lo entendáis, es como ocurre con otras aplicaciones por ejemplo con los vídeos o fotos de nuestro equipo, cuando pulsáis en ellas automáticamente se nos abre el visor de vídeos y fotos que tengamos configurados por defecto, pues eso mismo es necesario para cuando queramos abrir un fichero <strong>.bcup</strong> de Buttercup, necesitaréis que sea abierto por su aplicación directamente.</p>



<p>Para ello descargaremos un <em>launcher</em> para aplicaciones .appimage desde la siguiente dirección de Github:</p>



<ul class="wp-block-list">
<li><a href="https://github.com/TheAssassin/AppImageLauncher/releases" target="_blank" rel="noreferrer noopener">https://github.com/TheAssassin/AppImageLauncher/releases</a></li>
</ul>



<p>Buscaremos la descarga correspondiente a nuestro sistema, por mi parte como lo instalaré en mi <em>Ultramarine OS</em> basado en <em>Fedora</em> descargaré la versión .rpm.<br>Lo haremos directamente desde la terminal utilizando el comando <strong>wget</strong> seguido de la URL con el fichero correspondiente a nuestro OS:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-13.png" alt=""/></figure>



<p>Instalamos el paquete .rpm para mi sistema <strong>(Necesitaréis permisos de root)</strong>:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-14.png" alt=""/></figure>



<p>Nos dará un <em>warning</em> indicando que habrá una recarga de uno de nuestro demonios que están corriendo y listo. Ya estará instalado el <em>launcher</em>.<br>Vamos a comprobarlo ya que tendremos que hacer la integración con nuestro sistema.</p>



<p>Ejecutamos la aplicación de Buttercup como hemos hecho anteriormente:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-4.png" alt=""/></figure>



<p>Nos saldrá una ventana nueva en la que nos indica si queremos <strong>integrar</strong> <em>AppImageLauncher</em> con nuestro sistema o solo una vez, elegiremos la integración para siempre ya que es lo que queremos, elegimos el botón de la izquierda:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-16.png" alt=""/></figure>



<p>Si todo ha ido bien, nos abrirá la aplicación en la pantalla y la aplicación la tendremos ya añadida a todas las aplicaciones de nuestro sistema, con lo que será accesible desde el menú de nuestro entorno de escritorio (Budgie, Gnome, KDE&#8230;).</p>



<h2 class="wp-block-heading">Nuestro vault en Google Drive</h2>



<p>Ahora vamos a configurar un nuevo <strong>Vault</strong>. Con el nombre de <strong>Vault </strong>conocemos el fichero que alojará todas nuestras contraseñas y que será accesible mediante nuestra contraseña maestra que añadiremos una vez que lo creemos. Esa contraseña tendremos que guardarla bien en nuestro cerebro ya que no será recuperable.</p>



<p>Pulsaremos en <strong>+ Add Vault</strong> y entre las opciones que tenemos, elegiremos la correspondiente a <em>Google Drive</em> que es la que mostraremos en esta guía. Si quisiéramos <em>Dropbox</em>, <em>WebDav</em> o incluso un fichero localmente en nuestro equipo podríamos elegir las otras opciones disponibles:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-7.png" alt=""/></figure>



<p>Nos saldrá un mensaje ahora indicando que para utilizar esta funcionalidad tendremos que otorgar permisos a la aplicación para acceder a nuestra cuenta de GDrive o de lo contrario no se podrá utilizar. Vamos a ello, pulsamos el botón de <strong>Authenticate</strong>:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-8.png" alt=""/></figure>



<p>Añadimos nuestra cuenta de gmail y pulsamos en «Next»:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-9.png" alt=""/></figure>



<p>Seguido de nuestra contraseña y pulsamos en «Next»:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-10.png" alt=""/></figure>



<p>Nos advierte que compartiremos algunos de nuestros datos con la aplicación de Buttercup, le damos a «Continuar»:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-11.png" alt=""/></figure>



<p>Y por último tendremos que darle permisos a cuatro servicios para que la aplicación puede acceder a nuestro fichero de contraseñas que crearemos después:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-12.png" alt=""/></figure>



<p>Ahora, por primera vez, nos dirá que si los enlaces de buttercup (.bcup) queréis que siempre se abran con la aplicación. Marcaremos la casilla para que se permita siempre y le daremos a «Open Link».</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-17.png" alt=""/></figure>



<p>Se nos abrirá la aplicación y seguiremos los pasos que quedan para enlazar GDrive con nuestra app, primero creamos nuestro fichero donde alojaremos nuestras contraseñas:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-18.png" alt=""/></figure>



<p>Le damos el nombre que queramos <strong>añadiendo la extensión .bcup</strong> y pulsamos el botón de «Set Vault Target» cuando lo tengamos:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-19.png" alt=""/></figure>



<p>Ahora ya tenemos enlazada la app con nuestro fichero de contraseñas en GDrive. Señalamos ese fichero y le damos a «Next»:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-20.png" alt=""/></figure>



<p>Ahora viene una parte <strong>MUY IMPORTANTE</strong> y es configurar nuestra <strong>contraseña maestra</strong>, elegid una buena contraseña y que NO se os olvide jamás pues es la que abrirá el vault con todos los accesos que hayáis añadido:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-21.png" alt=""/></figure>



<p>Hecho esto ya tendréis totalmente configurada la aplicación con vuestro fichero en GDrive. Solo quedará que creéis carpetas, registros de password y empezar a usarlo.</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-22.png" alt=""/></figure>



<p>Os dejo una imagen con mi vault para que veáis como quedaría más o menos:</p>



<figure class="wp-block-image"><img decoding="async" src="https://mindeka.nohost.me/blog/wp-content/uploads/2024/06/image-23.png" alt=""/></figure>



<p>Ya solo me queda deciros que lo probéis y si lo hacéis que me digáis que os parece y sobre todo si queréis saber más acerca de ello, como sería cómo enlazador con Dropbox o mediante WebDav localmente, cómo exportar/importar desde otras apps del mismo estilo, configurar desde app de Android o iOS, etc.</p>



<p>Espero que os sirva de ayuda.</p>



<p>¡Nos vemos por el Fediverso!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mindeka.es/2024/06/05/buttercup-gestor-de-credenciales-multiplataforma/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Proyecto Selfhosting &#124; 3 Instalación de Nginx Proxy Manager (NPM)</title>
		<link>https://mindeka.es/2024/05/29/proyecto-selfhosting-3-instalacion-de-nginx-proxy-manager-npm/</link>
					<comments>https://mindeka.es/2024/05/29/proyecto-selfhosting-3-instalacion-de-nginx-proxy-manager-npm/#respond</comments>
		
		<dc:creator><![CDATA[jmdlr]]></dc:creator>
		<pubDate>Wed, 29 May 2024 16:00:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Selfhosting]]></category>
		<category><![CDATA[Sistemas]]></category>
		<guid isPermaLink="false">https://mindeka.duckdns.org/?p=117</guid>

					<description><![CDATA[Una vez configurada la IP estática en nuestro servidor Debian 12 que vimos en la primera entrada, la instalación de Docker posteriormente en el segundo artículo, seguimos adelante y ahora tocará instalar el proxy inverso que hará la función de protección de nuestro servidor web frente a ataques y que nos ayudará a conseguir un [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Una vez configurada la <strong>IP estática</strong> en nuestro servidor Debian 12 que vimos en la primera entrada, la instalación de <strong>Docker</strong> posteriormente en el segundo artículo, seguimos adelante y ahora tocará instalar el <strong>proxy inverso</strong> que hará la función de protección de nuestro servidor web frente a ataques y que nos ayudará a conseguir un mayor rendimiento.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="900" height="450" src="https://mindeka.duckdns.org/wp-content/uploads/2025/06/98879880-6796-11ea-8a07-a3f907697ec6-1.jpg" alt="" class="wp-image-118" srcset="https://mindeka.es/wp-content/uploads/2025/06/98879880-6796-11ea-8a07-a3f907697ec6-1.jpg 900w, https://mindeka.es/wp-content/uploads/2025/06/98879880-6796-11ea-8a07-a3f907697ec6-1-300x150.jpg 300w, https://mindeka.es/wp-content/uploads/2025/06/98879880-6796-11ea-8a07-a3f907697ec6-1-768x384.jpg 768w" sizes="auto, (max-width: 900px) 100vw, 900px" /></figure>



<p>El servidor proxy inverso siempre se sitúa por delante de los servidores/servicios web que tengamos en el servidor y es el que se encargará de reenviar las solicitudes que reciba hacía los servicios alojados. Es por ello, que es el servicio que tenemos que configurar primeramente es este.</p>



<p>Para instalar este proxy necesitaremos de la última versión LTS de <strong>NodeJS</strong>, la cual descargaremos desde un repositorio. Por defecto, en Debian 12 viene la versión <em>18</em> que serviría, pero siempre me gusta tener actualizada la aplicación a la última versión LTS (<em>Long Term Support</em>) que exista, en este caso la versión <em>20</em>.</p>



<p>Antes de nada y como práctica habitual, primero haremos un <em>update</em> y <em>upgrade</em> para dejar el sistema actualizado hasta ese mismo momento. Lanzamos los comandos pertinentes:</p>



<pre class="wp-block-code"><code>sudo apt update &amp;&amp; sudo apt upgrade -y</code></pre>



<p>Después ya podemos ir a la página del repositorio llamado <strong>NodeSource</strong> de NodeJS (<a target="_blank" rel="noreferrer noopener" href="https://deb.nodesource.com">https://deb.nodesource.com</a>) desde donde podremos descargar e instalar la última versión LTS de esta herramienta. En su página veremos lo sencillo que es, básicamente tendremos que copiar/pegar dos líneas.</p>



<p>Pero antes de lanzar estas dos líneas, habrá que instalar el comando <strong>curl</strong> ya que por defecto no viene instalado por Debian.<br>Lanzamos la instalación:</p>



<pre class="wp-block-code"><code>sudo apt install curl</code></pre>



<pre class="wp-block-code"><code>curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt-get install -y nodejs</code></pre>



<p>Si todo ha ido bien, podemos ver que ya lo tenemos instalado:</p>



<pre class="wp-block-code"><code>jmdlr@debian:~$ curl --version
curl 7.88.1 (x86_64-pc-linux-gnu) libcurl/7.88.1 OpenSSL/3.0.11 zlib/1.2.13 brotli/1.0.9 zstd/1.5.4 libidn2/2.3.3 libpsl/0.21.2 (+libidn2/2.3.3) libssh2/1.10.0 nghttp2/1.52.0 librtmp/2.3 OpenLDAP/2.5.13
Release-Date: 2023-02-20, security patched: 7.88.1-10+deb12u5
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd</code></pre>



<p>Con esto ya estaríamos listos y podemos lanzar las dos líneas que ponían en la página del repositorio:</p>



<pre class="wp-block-code"><code>curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt-get install -y nodejs</code></pre>



<p>Terminada la instalación, toca comprobar que la versión instalada de <strong>NodeJS</strong> es la que queremos, en este caso la <em>20 LTS.</em><br>Ejecutamos el siguiente comando para visualizar la versión:</p>



<pre class="wp-block-code"><code>jmdlr@debian:~$ node -v
v20.13.1</code></pre>



<p>¡Bien hecho! Ahora ya solo toca instalar el proxy, para ello vamos a la página oficial de <strong>GitHub</strong> de <strong>NPM</strong> para ver la última versión disponible he instalarla.</p>



<ul class="wp-block-list">
<li><a href="https://github.com/NginxProxyManager/nginx-proxy-manager" target="_blank" rel="noreferrer noopener">https://github.com/NginxProxyManager/nginx-proxy-manager</a></li>
</ul>



<p>Vamos a seguir exactamente los pasos que se indican ahí, que de manera resumida son las siguientes.</p>



<p>Creamos un fichero <em>docker-compose.yml</em>:</p>



<pre class="wp-block-code"><code>vi docker-compose.yml</code></pre>



<p>Añadimos el siguiente contenido:</p>



<pre class="wp-block-code"><code>version: '3.8'
services:
  app:
    image: 'docker.io/jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt</code></pre>



<p>Estamos indicando en el fichero qué:</p>



<ul class="wp-block-list">
<li>Usaremos la última imagen disponible que exista del NPM,</li>



<li>Abriremos los puertos 80, 443 y 81 para el dashboard de administración de la app, y</li>



<li>Se crearán las siguientes carpetas de «data» y «letsencrypt».</li>
</ul>



<p>Salvamos el fichero (:wq!) y lo ejecutamos:</p>



<pre class="wp-block-code"><code>docker compose up -d</code></pre>



<p>Esto tardará un ratillo entre que descargar la imagen, configura, etc. Al final tendrá que indicarnos con checks de color verde, que todo ha ido bien.<br>Para confirmarlo podemos ver en qué estado está la aplicación dentro de docker, para ello ejecutamos lo siguiente:</p>



<pre class="wp-block-code"><code>docker ps</code></pre>



<p>Y tendría que devolvernos que el contenedor de la aplicación está corriendo como podremos ver en la columna de «Status», que dirá el tiempo que lleva levantado:</p>



<pre class="wp-block-code"><code>jmdlr@debian:~$ docker ps
CONTAINER ID   IMAGE                             COMMAND   CREATED          STATUS          PORTS                                                                                  NAMES
016fdef7c34a   jc21/nginx-proxy-manager:latest   "/init"   57 seconds ago   Up 55 seconds   0.0.0.0:80-81-&gt;80-81/tcp, :::80-81-&gt;80-81/tcp, 0.0.0.0:443-&gt;443/tcp, :::443-&gt;443/tcp   jmdlr-app-1</code></pre>



<p>Si esto es así, el servicio estará levantado, probemos directamente lo que nos dice el puerto <strong>80</strong>.<br>Abrimos un navegador en nuestro equipo y atacamos a la <strong>IP de nuestro servidor</strong> en mi caso será la IP 192.168.1.12:</p>



<figure class="wp-block-image size-full has-custom-border"><img loading="lazy" decoding="async" width="1024" height="366" src="https://mindeka.duckdns.org/wp-content/uploads/2025/06/image-3-1024x366-1.png" alt="" class="wp-image-119" style="border-width:1px" srcset="https://mindeka.es/wp-content/uploads/2025/06/image-3-1024x366-1.png 1024w, https://mindeka.es/wp-content/uploads/2025/06/image-3-1024x366-1-300x107.png 300w, https://mindeka.es/wp-content/uploads/2025/06/image-3-1024x366-1-768x275.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Ahora vamos a ir a la página de administración de NPM que por defecto se configura en el puerto <strong>81</strong> y nos devolverá esta ventana de «login»:</p>



<figure class="wp-block-image size-full has-custom-border"><img loading="lazy" decoding="async" width="732" height="316" src="https://mindeka.duckdns.org/wp-content/uploads/2025/06/image-4.png" alt="" class="wp-image-120" style="border-width:1px" srcset="https://mindeka.es/wp-content/uploads/2025/06/image-4.png 732w, https://mindeka.es/wp-content/uploads/2025/06/image-4-300x130.png 300w" sizes="auto, (max-width: 732px) 100vw, 732px" /></figure>



<p>Para acceder, como se indica en la página oficial tendremos que utilizar estas credenciales de abajo, que posteriormente nos obligarán a cambiar la primera vez que accedamos, al igual que el nombre, usuario y dirección de correo electrónico.</p>



<ul class="wp-block-list">
<li>Usuario: <a href="mailto:admin@example.com" target="_blank" rel="noreferrer noopener"><em>admin@example.com</em></a></li>



<li>Contraseña: <em>changeme</em></li>
</ul>



<figure class="wp-block-image size-full has-custom-border"><img loading="lazy" decoding="async" width="1024" height="300" src="https://mindeka.duckdns.org/wp-content/uploads/2025/06/image-5-1024x300-1.png" alt="" class="wp-image-121" style="border-width:1px" srcset="https://mindeka.es/wp-content/uploads/2025/06/image-5-1024x300-1.png 1024w, https://mindeka.es/wp-content/uploads/2025/06/image-5-1024x300-1-300x88.png 300w, https://mindeka.es/wp-content/uploads/2025/06/image-5-1024x300-1-768x225.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-full has-custom-border"><img loading="lazy" decoding="async" width="1024" height="371" src="https://mindeka.duckdns.org/wp-content/uploads/2025/06/image-6-1024x371-1.png" alt="" class="wp-image-122" style="border-width:1px" srcset="https://mindeka.es/wp-content/uploads/2025/06/image-6-1024x371-1.png 1024w, https://mindeka.es/wp-content/uploads/2025/06/image-6-1024x371-1-300x109.png 300w, https://mindeka.es/wp-content/uploads/2025/06/image-6-1024x371-1-768x278.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Añadimos la información que queramos poner y daremos al botón de «Save». Y ya estaremos en la página principal desde la que gestionaremos los diferentes apartados de nuestro proxy.</p>



<figure class="wp-block-image size-full has-custom-border"><img loading="lazy" decoding="async" width="1024" height="270" src="https://mindeka.duckdns.org/wp-content/uploads/2025/06/image-7-1024x270-1.png" alt="" class="wp-image-123" style="border-width:1px" srcset="https://mindeka.es/wp-content/uploads/2025/06/image-7-1024x270-1.png 1024w, https://mindeka.es/wp-content/uploads/2025/06/image-7-1024x270-1-300x79.png 300w, https://mindeka.es/wp-content/uploads/2025/06/image-7-1024x270-1-768x203.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Y hasta aquí toda la instalación de nuestro proxy, seguiremos en próximos artículos con la instalación de los diferentes servicios que queramos tener disponibles en nuestro servidor y veremos como debemos configurar NPM para que las peticiones sean redireccionadas según al servicio que se quiera acceder.</p>



<p>¡Nos vemos por el Fediverso!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mindeka.es/2024/05/29/proyecto-selfhosting-3-instalacion-de-nginx-proxy-manager-npm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Proyecto: Selfhosting</title>
		<link>https://mindeka.es/2024/05/24/proyecto-selfhosting/</link>
					<comments>https://mindeka.es/2024/05/24/proyecto-selfhosting/#respond</comments>
		
		<dc:creator><![CDATA[jmdlr]]></dc:creator>
		<pubDate>Fri, 24 May 2024 07:00:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Selfhosting]]></category>
		<category><![CDATA[Sistemas]]></category>
		<guid isPermaLink="false">http://192.168.1.11:8899/?p=98</guid>

					<description><![CDATA[Siempre he tenido la idea de que la mayor seguridad en estos momentos es que aquella información que no quieras que nadie sepa, no tenga salida a internet.Es así de fácil&#8230; y de difícil a la vez. ¿Qué aparato hoy en día no está conectado a la red? Y no hablemos de la IA que [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Siempre he tenido la idea de que la mayor seguridad en estos momentos es que aquella información que no quieras que nadie sepa, no tenga salida a internet.<br>Es así de fácil&#8230; y de difícil a la vez. ¿Qué aparato hoy en día no está conectado a la red? Y no hablemos de la IA que anda por todas partes desde hace poco y será implantada hasta en los frigoríficos, escobas, sombrillas&#8230; y quién sabe dónde más.</p>



<p>La situación es alarmante si te quedas a pensar en ello por un momento, por ese motivo siempre habrá que intentar poner muros, defensas, aduanas ante ello, para tener más control sobre nuestra información. Y es por ello, que empiezo este pequeño <strong>proyecto</strong> <strong>de self-hosting</strong> desde mi blog, por que si no podemos evitar que nuestra información personal se filtre y alguna la tengan por defecto (nuestro correo electrónico), si al menos, mantengamos nuestros datos, ubicados en nuestra misma casa con nuestro hardware, de manera segura y sin muchas parafernalias.</p>



<p>Esto solo pretende ser una guía de cómo hacerlo, no será la verdad verdadera. Una vez sepáis como funciona esto del «self-hosting» o «self-hosted» si queréis añadir más dificultad, más componentes, más servicios, diferentes vlans, etc. Eso correrá de vuestra parte. Por mi lado, aquí explicaré una configuración básica con lo que empezar y con servicios de «más uso».</p>



<figure class="wp-block-image"><img decoding="async" src="https://user-images.githubusercontent.com/45159366/152699307-1c4ebfcd-a2b0-456c-9a84-01ac255e3782.png" alt=""/></figure>



<h2 class="wp-block-heading">¿Qué vamos a montar?</h2>



<p>Una mini-arquitectura en nuestra ubicación local para tener diferentes servicios, que ahora tendréis externalizados prácticamente en su totalidad o a lo mejor algunos de ellos y de esta manera tenerlos en vuestra propia vivienda, local, etc. Mostraré la instalación de los diferentes componentes y servicios utilizando apps de Software libre paso a paso en su mayoría (tengo Emby aun por aquí rondando). Y añadiremos la seguridad que sea necesaria para evitar cualquier problema.</p>



<p>La intención, explicada de manera breve y rápida, es montar un pequeño servidor con un proxy inverso y detrás de él unos cuantos servicios que pueden ser más o menos interesantes para vuestro uso diario. Estos servicios que he pensado (pueden ser modificados durante las diferentes entradas en el blog) que podrían ser interesantes para instalar en nuestro servidor serían los siguientes:</p>



<ul class="wp-block-list">
<li>Un <strong>buscador </strong>como puede ser SearXNG para realizar búsquedas seguras,</li>



<li>Un <strong>agregador </strong>de enlaces <strong>rss </strong>para estar informados de noticias, blogs, que nos interesen como puede ser FreshRSS,</li>



<li>Una plataforma de <strong>mensajería </strong>para comunicarnos de manera segura como SimpleX,</li>



<li>Una plataforma de <strong>blogs</strong> para escribir y compartir nuestras cosas, bien con WordPress, Ghost o Bludit,</li>



<li>Una pequeña nube de <strong>alojamiento </strong>de ficheros con otras opciones como puede ser FileBrowser, Nextcloud, etc,</li>



<li>Una aplicación de <strong>monitorización </strong>para controlar nuestro sistemas como Uptime Kuma, Umami, etc,</li>



<li>Un protector <strong>DNS </strong>para quitar basura en nuestra red local como Pi-hole,</li>



<li>Un <strong>centro multimedia</strong> para ver nuestro contenido privado de vídeos, fotos&#8230; que podemos hacer con Emby o Jellyfin, y</li>



<li>Muchas más cosas si hay interés en montarlo.</li>
</ul>



<h2 class="wp-block-heading">¿Qué necesitamos?</h2>



<p>Pues varias cosas, pero en resumen los requisitos mínimos serían:</p>



<ul class="wp-block-list">
<li><strong>Red eléctrica</strong> (¿obvio no?)</li>



<li><strong>Conexión a internet</strong>, preferentemente fibra aunque si tenéis ADSL&#8230; ¡pues no queda otra!</li>



<li>Una <strong>RaspberryPI</strong> <strong>3B</strong> o versión superior o bien algún portátil, PC viejo, etc. Recomiendo una Raspberry o algo similar por el consumo de red eléctrica.</li>



<li>Un <strong>MiniPC</strong> o <strong>NUC</strong>, si vamos a querer añadir bastantes servicios, lo mejor en cuanto a rendimiento, coste de luz, etc. sin duda necesitamos este hardware. También podría servir una RaspberryPI de las últimas o una OrangePi, pero sigo opinando que por precio/rendimiento un minipc es mejor inversión. Pero para gustos los colores. Como otra opción también sería tener varias Raspberry/OrangePi y distribuir los servicios por ellas&#8230; la arquitectura puede ser flexible como veis.</li>
</ul>



<p>Por mi parte usaré lo siguiente de lo expuesto anteriormente: Red eléctrica, conexión vía fibra, RaspberryPi 3B+ y Mini-PC (GK41).</p>



<h2 class="wp-block-heading">Servicio a servicio</h2>



<p>Comenzaré en breve a publicar los diferentes <em>posts</em> sobre este proyecto e iré pasito a pasito pero sin prisa, aunque tampoco sin pausa. La idea ir haciendo todo esto a la vez que voy modificando toda mi red interna de casa, que no está como quisiera y que quiero dejarla mejor de lo que está. Aquí os dejo el artículo que publiqué del estado actual de mi red: <a href="http://mindeka.duckdns.org/2020/05/23/red-interna-de-casa/" target="_blank" rel="noreferrer noopener">http://mindeka.duckdns.org/2020/05/23/red-interna-de-casa/</a>.</p>



<p>Así que aprovechando el cambio que quiero hacer de todo, utilizaré mi blog para ir publicando todo y si alguien más quiere dar el salto y <em>auto-alojarse</em> sus servicios pueda hacerlo. Dejo aquí el dibujo final que hice de cómo quedará mi red interna algún día de estos, únicamente exponiendo dos a internet y dentro tener una mini-infraestructura ser microservicios para dar soporte a mi familia y a mi mismo.</p>



<figure class="wp-block-image size-full has-custom-border"><img loading="lazy" decoding="async" width="1024" height="455" src="http://192.168.1.11:8899/wp-content/uploads/2025/06/red_interna_final-1024x455-1.jpg" alt="" class="wp-image-99" style="border-width:1px" srcset="https://mindeka.es/wp-content/uploads/2025/06/red_interna_final-1024x455-1.jpg 1024w, https://mindeka.es/wp-content/uploads/2025/06/red_interna_final-1024x455-1-300x133.jpg 300w, https://mindeka.es/wp-content/uploads/2025/06/red_interna_final-1024x455-1-768x341.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Y poco más gente, a futuro ya hablaremos de ciertos «pros» y «contras» de tener esto auto-alojado localmente para que podáis decidir si es buena idea para vosotros o no según bastantes factores.</p>



<p>¡Nos vemos por el Fediverso!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mindeka.es/2024/05/24/proyecto-selfhosting/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Acceder por SSH con clave pública</title>
		<link>https://mindeka.es/2020/03/30/acceder-por-ssh-con-clave-publica/</link>
					<comments>https://mindeka.es/2020/03/30/acceder-por-ssh-con-clave-publica/#respond</comments>
		
		<dc:creator><![CDATA[jmdlr]]></dc:creator>
		<pubDate>Mon, 30 Mar 2020 16:32:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Sistemas]]></category>
		<guid isPermaLink="false">http://192.168.1.11:8899/?p=16</guid>

					<description><![CDATA[Este tipo de artículos sobre tareas de un «sysadmin», los publicaré de vez en cuando, explicando de manera sencilla, para que tanto los que se dedican a ello, como los que no lo hacen y quieren saber más, aprendan, porque aun a día de hoy hay gente que me pregunta como «hacerlo» cuando debería ser [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Este tipo de artículos sobre tareas de un «sysadmin», los publicaré de vez en cuando, explicando de manera sencilla, para que tanto los que se dedican a ello, como los que no lo hacen y quieren saber más, aprendan, porque aun a día de hoy hay gente que me pregunta como «hacerlo» cuando debería ser una práctica casi obligatoria para acceder a nuestros sistemas por SSH, ya no hay que usar password hay que utilizar clave privada/clave pública&#8230; ¡Vamos a ello!</p>



<p>Hoy trataremos como dice el artículo, como acceder a nuestro servidor vía ssh sin contraseña pero sí con nuestra propia clave pública/privada.</p>



<h2 class="wp-block-heading">Creando nuestra clave</h2>



<p>La clave se generará en nuestro ordenador de sobremesa, portátil&#8230; en definitiva desde el cual accederemos al servidor X.</p>



<p>Generamos nuestra clave:</p>



<pre class="wp-block-code"><code>$ ssh-keygen -b 4096</code></pre>



<p>Con el parámetro&nbsp;<strong>-b</strong>&nbsp;indicamos que queremos que sea una clave robusta de 4096 bits. Con 2048 bits sería suficiente, pero me gusta ser un tipo duro <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br>Durante la generación nos hará una serie de preguntas que tendremos que responder si queremos cambiar algo o bien dejar por defecto:</p>



<pre class="wp-block-code"><code>jmdlr@casa:~$ ssh-keygen -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jmdlr/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/jmdlr/.ssh/id_rsa.
Your public key has been saved in /home/jmdlr/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:e1S4R43AcFqR3NADcOtS4wDth2RYAojBQp3E28WUGIQ jmdlr@casa
The key's randomart image is:
+---&#91;RSA 4096]----+
|+++o=+B===OB     |
|o..E ..*+=+++o   |
|.   o .+o.= +..  |
|   . .  o=.=     |
|        S.= .    |
|         + .     |
|        . .      |
|         .       |
|                 |
+----&#91;SHA256]-----+
</code></pre>



<p>Breve explicación de cada pregunta:</p>



<ul class="wp-block-list">
<li><strong>Enter file in which to save the key (/home/jmdlr/.ssh/id_rsa):</strong> Ubicación donde se almacenará nuestra clave tanto privada como pública. Se puede modificar pero no es necesario.</li>



<li><strong>Enter passphrase (empty for no passphrase):</strong> Se puede añadir una frase por si quieres fortalecer la seguridad de tu clave. Por experiencia dejadla en blanco, terminaréis por olvidarla si no la apuntáis y tendréis que generar una nueva. El resto de líneas solo confirman que se han creado las claves con tu <em>figerprint </em>asociado. Ya estaría lista.</li>
</ul>



<h2 class="wp-block-heading">Consultando nuestra clave pública</h2>



<p>Ahora ya podremos ver nuestras claves generadas, si no hemos cambiado la ruta por defecto estará en una carpeta oculta dentro de la «home» de nuestro usuario llamada&nbsp;<strong>.ssh/</strong></p>



<p>Ahora tendríamos que ir a nuestra «home» en mi caso es&nbsp;<strong>/home/jmdlr</strong>&nbsp;y luego acceder a la carpeta oculta <em>.ssh</em>:</p>



<pre class="wp-block-code"><code>$ cd /home/jmdlr/
$ cd .ssh/
$ ls -lrth
total 8.0K
-rw------- 1 jmdlr jmdlr 3.2K Mar 30 00:42 id_rsa
-rw-r--r-- 1 jmdlr jmdlr  736 Mar 30 00:42 id_rsa.pub</code></pre>



<p>Veremos que tenemos dos ficheros que tienen por nombre&nbsp;<strong>id_rsa</strong>. Una de ellas es la clave privada (id_rsa) la cual&nbsp;<strong>NO</strong>&nbsp;tendremos que compartir y luego la clave pública (id_<a target="_blank" rel="noreferrer noopener" href="http://rsa.pub">rsa.pub</a>) que es la que subiremos a nuestro servidor o al servidor que deseemos acceder sin que nos solicite password. Echamos un vistazo a la clave pública:</p>



<pre class="wp-block-code"><code>$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDDGnQn+2Jld5Y/822sLmZc/1PC0+gm3ORtbRPEUvzuqMIMOVg2ImZPApj/d7+K57MP
y7pQDn/iwi3QkLzpf/tL9LXF2+FouzVsSeZgR1dd7+3QGTMPch+5hXZxuims+zZOLFuXqXzhb00TSMbH5yVBH1gv+qCZj7N/DvRgok+2
Fae1I+Fr0/7ALIaLfFEo5CYfrUNyfuD0ZpJ9GIrv6+sBWbCOomzuw5SMIccbX4VQ+DLmEoMwl3A3GQf3yNrAtjjolPm1zJ0YAd+Kr5UW
REugxTgLslnMHFVozPn5byuj2fT4dQPiB0Zj/mzQf+BWGaT+lI3P/P08mG0gdpD39MUiKGjh0XYbQQh731cnMJK1gTzphPyinROv4S/P
j1HFhSEAbsZJP9l/ZyVi1qupTOFocWEQf0o4yNsVpogDpUQJwEyG5ftQDsmjbHD5EQRMFXktnItdSqhbTVL+qSiB96Jd66CV9+bklUQb
p9w3pT0beZDrKQdPKmrlRYS2MeZB1z5kMnDTm/C1fSDHAuqYAxCyZTBc3ncBpzW7AnWczUdk0zIiToGVs8wE16suGWqlZA2gGLIkY3Ld
vAkzgm9HBIosgZVEPABN4nbMAqv/NqXJd2/e6cFICllX8YhyBcYL9OfwFPK6OUxQg0AKk/rJwSO6aGxDOIHVY16+DvwuQRx1SQ==jmdl
r@casa</code></pre>



<p>Ese texto es lo que tenemos que copiar en todos los servidores remotos a los que queramos conectar vía <em>ssh</em>, pero para hacerlo más fácil, existe un comando que nos ayudará a copiarlo.</p>



<h2 class="wp-block-heading">Copiando la clave pública al servidor</h2>



<p>Simplemente usaremos el siguiente comando desde la ruta donde tenemos nuestra claves.</p>



<pre class="wp-block-code"><code>$ cd /home/jmdlr/.ssh
$ ssh-copy-id -i id_rsa.pub usuario@IP_servidor_remoto</code></pre>



<p>Donde aparece&nbsp;<strong>usuario</strong>&nbsp;tendremos que poner nuestro nombre de usuario que utilizamos para acceder al servidor y donde aparece&nbsp;<strong>IP_servidor_remoto</strong>&nbsp;la dirección IP o el registro DNS que nos de acceso al servidor donde queremos añadir nuestra clave pública. En mi ejemplo, accediendo con mi usuario «jmdlr» sería así:</p>



<pre class="wp-block-code"><code>$ cd /home/jmdlr/.ssh
$ ssh-copy-id -i id_rsa.pub jmdlr@10.5.1.5</code></pre>



<p>Y si todo va bien me diría lo siguiente hasta preguntarme cual es mi&nbsp;<strong>password</strong>&nbsp;del usuario para acceder por primera vez:</p>



<pre class="wp-block-code"><code>/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

jmdlr@10.5.1.5's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'jmdlrk@10.5.1.5'"
and check to make sure that only the key(s) you wanted were added.
</code></pre>



<p>En el paso que solicita el «password» tendremos que añadirlo y para la próxima vez que queramos acceder tendremos que hacer lo que indica más abajo, simplemente teclearemos&nbsp;<strong>ssh jmdlr@10.5.1.5</strong>&nbsp;y estaremos dentro sin solicitarnos contraseña alguna.</p>



<p>Espero que os haya sido fácil de seguir, cualquier cosilla preguntadme a través de Mastodon/Firefish o Bluesky:</p>



<ul class="wp-block-social-links is-layout-flex wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-mastodon  wp-block-social-link"><a href="https://@jmdelosreyes@meetiko.org" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M23.193 7.879c0-5.206-3.411-6.732-3.411-6.732C18.062.357 15.108.025 12.041 0h-.076c-3.068.025-6.02.357-7.74 1.147 0 0-3.411 1.526-3.411 6.732 0 1.192-.023 2.618.015 4.129.124 5.092.934 10.109 5.641 11.355 2.17.574 4.034.695 5.535.612 2.722-.15 4.25-.972 4.25-.972l-.09-1.975s-1.945.613-4.129.539c-2.165-.074-4.449-.233-4.799-2.891a5.499 5.499 0 0 1-.048-.745s2.125.52 4.817.643c1.646.075 3.19-.097 4.758-.283 3.007-.359 5.625-2.212 5.954-3.905.517-2.665.475-6.507.475-6.507zm-4.024 6.709h-2.497V8.469c0-1.29-.543-1.944-1.628-1.944-1.2 0-1.802.776-1.802 2.312v3.349h-2.483v-3.35c0-1.536-.602-2.312-1.802-2.312-1.085 0-1.628.655-1.628 1.944v6.119H4.832V8.284c0-1.289.328-2.313.987-3.07.68-.758 1.569-1.146 2.674-1.146 1.278 0 2.246.491 2.886 1.474L12 6.585l.622-1.043c.64-.983 1.608-1.474 2.886-1.474 1.104 0 1.994.388 2.674 1.146.658.757.986 1.781.986 3.07v6.304z"/></svg><span class="wp-block-social-link-label screen-reader-text">Mastodon</span></a></li>

<li class="wp-social-link wp-social-link-bluesky  wp-block-social-link"><a href="https://@jmdlr.bsky.social‬" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M6.3,4.2c2.3,1.7,4.8,5.3,5.7,7.2.9-1.9,3.4-5.4,5.7-7.2,1.7-1.3,4.3-2.2,4.3.9s-.4,5.2-.6,5.9c-.7,2.6-3.3,3.2-5.6,2.8,4,.7,5.1,3,2.9,5.3-5,5.2-6.7-2.8-6.7-2.8,0,0-1.7,8-6.7,2.8-2.2-2.3-1.2-4.6,2.9-5.3-2.3.4-4.9-.3-5.6-2.8-.2-.7-.6-5.3-.6-5.9,0-3.1,2.7-2.1,4.3-.9h0Z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Bluesky</span></a></li></ul>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://mindeka.es/2020/03/30/acceder-por-ssh-con-clave-publica/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
