<?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>terminal &#8211; El Cornijal de Linux</title>
	<atom:link href="https://linuxete.duckdns.org/category/terminal/feed/" rel="self" type="application/rss+xml" />
	<link>https://linuxete.duckdns.org</link>
	<description>Un blog sobre Linux</description>
	<lastBuildDate>Wed, 21 May 2025 20:44:58 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Como entender los permisos en Linux.</title>
		<link>https://linuxete.duckdns.org/como-entender-los-permisos-en-linux/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=como-entender-los-permisos-en-linux</link>
					<comments>https://linuxete.duckdns.org/como-entender-los-permisos-en-linux/#respond</comments>
		
		<dc:creator><![CDATA[raspberry]]></dc:creator>
		<pubDate>Wed, 21 May 2025 20:44:58 +0000</pubDate>
				<category><![CDATA[terminal]]></category>
		<category><![CDATA[Usuarios]]></category>
		<guid isPermaLink="false">https://linuxete.duckdns.org/?p=2753</guid>

					<description><![CDATA[Si alguna vez has trabajado en Linux, es muy probable que te hayas topado con algo como esto: -rw-r--r--. ¿Te suena a chino? ¡No te preocupes! Hoy vamos a desentrañar el misterio de los permisos en Linux, un concepto fundamental para entender cómo funciona la seguridad y el acceso a los archivos en este sistema [&#8230;]]]></description>
										<content:encoded><![CDATA[
<hr class="wp-block-separator has-alpha-channel-opacity"/>



<figure class="wp-block-image aligncenter size-large is-resized"><img fetchpriority="high" decoding="async" width="1024" height="1024" src="https://linuxete.duckdns.org/wp-content/uploads/2025/05/Gemini_Generated_Image_bsgah5bsgah5bsga-1024x1024.jpeg" alt="" class="wp-image-2759" style="width:355px" srcset="https://linuxete.duckdns.org/wp-content/uploads/2025/05/Gemini_Generated_Image_bsgah5bsgah5bsga-1024x1024.jpeg 1024w, https://linuxete.duckdns.org/wp-content/uploads/2025/05/Gemini_Generated_Image_bsgah5bsgah5bsga-300x300.jpeg 300w, https://linuxete.duckdns.org/wp-content/uploads/2025/05/Gemini_Generated_Image_bsgah5bsgah5bsga-150x150.jpeg 150w, https://linuxete.duckdns.org/wp-content/uploads/2025/05/Gemini_Generated_Image_bsgah5bsgah5bsga-768x768.jpeg 768w, https://linuxete.duckdns.org/wp-content/uploads/2025/05/Gemini_Generated_Image_bsgah5bsgah5bsga-1536x1536.jpeg 1536w, https://linuxete.duckdns.org/wp-content/uploads/2025/05/Gemini_Generated_Image_bsgah5bsgah5bsga.jpeg 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Si alguna vez has trabajado en Linux, es muy probable que te hayas topado con algo como esto: <code>-rw-r--r--</code>. ¿Te suena a chino? ¡No te preocupes! Hoy vamos a desentrañar el misterio de los <strong>permisos en Linux</strong>, un concepto fundamental para entender cómo funciona la seguridad y el acceso a los archivos en este sistema operativo.</p>



<p>Los permisos son la columna vertebral de la seguridad en Linux. Determinan quién puede leer, escribir o ejecutar un archivo o directorio. Sin un sistema de permisos robusto, cualquiera podría modificar archivos importantes del sistema o acceder a información sensible, lo que sería un caos.</p>



<h3 class="wp-block-heading">¿Cómo se representan los Permisos?</h3>



<p>Cuando ejecutas el comando <code>ls -l</code> en tu terminal, obtendrás una lista detallada de los archivos y directorios en el directorio actual, incluyendo la información de sus permisos. La cadena de 10 caracteres al principio de cada línea es la clave:</p>



<pre class="wp-block-code"><code>drwxr-xr-x 2 usuario grupo 4096 May 21 15:30 mi_directorio<br><br>-rw-r--r-- 1 usuario grupo 1024 May 21 15:30 mi_archivo.txt</code></pre>



<p>Vamos a desglosar esos 10 caracteres:</p>



<ul class="wp-block-list">
<li><strong>Primer carácter:</strong> Indica el tipo de archivo.
<ul class="wp-block-list">
<li><code>-</code>: Archivo regular.</li>



<li><code>d</code>: Directorio.</li>



<li><code>l</code>: Enlace simbólico.</li>



<li>Y hay otros menos comunes como <code>c</code> para archivos de caracteres, <code>b</code> para archivos de bloques, etc.</li>
</ul>
</li>



<li><strong>Los nueve caracteres restantes:</strong> Se dividen en tres grupos de tres, representando los permisos para:
<ol class="wp-block-list">
<li><strong>Dueño (Owner):</strong> Los primeros tres caracteres (<code>rwx</code> en el ejemplo anterior) definen los permisos del usuario que es el propietario del archivo o directorio.</li>



<li><strong>Grupo (Group):</strong> Los siguientes tres caracteres (<code>r-x</code> en el ejemplo) definen los permisos para los miembros del grupo al que pertenece el archivo o directorio.</li>



<li><strong>Otros (Others):</strong> Los últimos tres caracteres (<code>r-x</code> en el ejemplo) definen los permisos para todos los demás usuarios del sistema que no son el dueño ni forman parte del grupo.</li>
</ol>
</li>
</ul>



<h3 class="wp-block-heading">Entendiendo los Permisos: rwx</h3>



<p>Cada uno de estos tres caracteres tiene un significado específico:</p>



<ul class="wp-block-list">
<li><strong>r (read &#8211; lectura):</strong>
<ul class="wp-block-list">
<li><strong>Archivos:</strong> Permite ver el contenido del archivo.</li>



<li><strong>Directorios:</strong> Permite listar el contenido del directorio (es decir, ver qué archivos y subdirectorios hay dentro).</li>
</ul>
</li>



<li><strong>w (write &#8211; escritura):</strong>
<ul class="wp-block-list">
<li><strong>Archivos:</strong> Permite modificar o eliminar el archivo.</li>



<li><strong>Directorios:</strong> Permite crear, renombrar o eliminar archivos y subdirectorios dentro de ese directorio. <strong>¡Cuidado!</strong> Para eliminar un archivo, necesitas permiso de escritura en el <em>directorio</em> que lo contiene, no necesariamente en el archivo en sí.</li>
</ul>
</li>



<li><strong>x (execute &#8211; ejecución):</strong>
<ul class="wp-block-list">
<li><strong>Archivos:</strong> Permite ejecutar el archivo si es un programa o un script.</li>



<li><strong>Directorios:</strong> Permite «entrar» al directorio, es decir, acceder a sus contenidos y subdirectorios. Sin este permiso, no puedes usar <code>cd</code> para navegar a él, incluso si tienes permiso de lectura.</li>
</ul>
</li>
</ul>



<p>Cuando un permiso no está presente, se muestra un guion (<code>-</code>) en su lugar. Por ejemplo, <code>-rw-r--r--</code> significa:</p>



<ul class="wp-block-list">
<li><strong>Dueño:</strong> Puede leer y escribir (<code>rw-</code>).</li>



<li><strong>Grupo:</strong> Solo puede leer (<code>r--</code>).</li>



<li><strong>Otros:</strong> Solo puede leer (<code>r--</code>).</li>
</ul>



<h3 class="wp-block-heading">Modificando Permisos: <code>chmod</code></h3>



<p>Aquí es donde las cosas se ponen interesantes. El comando <strong><code>chmod</code></strong> (change mode) es tu mejor amigo para modificar los permisos. Hay dos formas principales de usarlo:</p>



<h4 class="wp-block-heading">1. Notación Simbólica (Letras)</h4>



<p>Esta es una forma intuitiva de agregar o quitar permisos. Usamos <code>u</code> (dueño), <code>g</code> (grupo), <code>o</code> (otros) y <code>a</code> (todos). Los operadores son <code>+</code> (añadir), <code>-</code> (quitar) y <code>=</code> (establecer exactamente).</p>



<ul class="wp-block-list">
<li><strong>Ejemplos:</strong>
<ul class="wp-block-list">
<li><code>chmod u+x mi_script.sh</code>: Añade permiso de ejecución al dueño del archivo <code>mi_script.sh</code>.</li>



<li><code>chmod g-w mi_archivo.txt</code>: Quita el permiso de escritura al grupo en <code>mi_archivo.txt</code>.</li>



<li><code>chmod o=r mi_documento.pdf</code>: Establece el permiso de lectura para «otros» en <code>mi_documento.pdf</code>, quitando cualquier otro permiso que tuvieran.</li>



<li><code>chmod a+rw archivo_compartido</code>: Añade permisos de lectura y escritura para todos (<code>u</code>, <code>g</code>, <code>o</code>).</li>
</ul>
</li>
</ul>



<h4 class="wp-block-heading">2. Notación Octal (Números)</h4>



<p>Esta es una forma más compacta y potente de establecer permisos, especialmente útil cuando quieres configurar varios permisos a la vez. Cada permiso tiene un valor numérico:</p>



<ul class="wp-block-list">
<li><strong>r (read):</strong> 4</li>



<li><strong>w (write):</strong> 2</li>



<li><strong>x (execute):</strong> 1</li>



<li><strong>&#8211; (no permiso):</strong> 0</li>
</ul>



<p>Para cada grupo (dueño, grupo, otros), sumas los valores de los permisos deseados. Luego, concatenas estos tres números para formar un código octal de tres dígitos.</p>



<ul class="wp-block-list">
<li><strong>Ejemplos:</strong>
<ul class="wp-block-list">
<li><code>rwx</code> = 4 + 2 + 1 = 7</li>



<li><code>rw-</code> = 4 + 2 + 0 = 6</li>



<li><code>r-x</code> = 4 + 0 + 1 = 5</li>



<li><code>r--</code> = 4 + 0 + 0 = 4</li>
</ul>
</li>



<li><strong>Aplicando <code>chmod</code> con notación octal:</strong>
<ul class="wp-block-list">
<li><code><kbd>chmod 755 mi_script.sh</kbd></code>: Da permisos <code>rwx</code> al dueño, <code>r-x</code> al grupo y <code>r-x</code> a otros. Esto es común para scripts ejecutables.</li>



<li><code>chmod 644 mi_archivo.txt</code>: Da permisos <code>rw-</code> al dueño, <code>r--</code> al grupo y <code>r--</code> a otros. Esto es común para archivos de texto.</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading"><code>chown</code> y <code>chgrp</code>: Cambiando Dueño y Grupo</h3>



<p>Además de los permisos, también puedes cambiar el propietario de un archivo o directorio y el grupo al que pertenece:</p>



<ul class="wp-block-list">
<li><strong><code>chown</code> (change owner):</strong> Cambia el dueño de un archivo o directorio.
<ul class="wp-block-list">
<li><code>chown nuevo_usuario archivo.txt</code></li>



<li><code>chown nuevo_usuario:nuevo_grupo archivo.txt</code> (Cambia dueño y grupo a la vez)</li>
</ul>
</li>



<li><strong><code>chgrp</code> (change group):</strong> Cambia el grupo de un archivo o directorio.
<ul class="wp-block-list">
<li><code>chgrp nuevo_grupo archivo.txt</code></li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">Permisos por Defecto: <code>umask</code></h3>



<p>Cuando creas un nuevo archivo o directorio, Linux le asigna un conjunto de permisos por defecto. Este comportamiento se controla mediante el comando <code>umask</code>. El <code>umask</code> es una máscara que <em>resta</em> permisos a los permisos máximos posibles (666 para archivos, 777 para directorios).</p>



<ul class="wp-block-list">
<li>Por ejemplo, si tu <code>umask</code> es <code>0022</code>:
<ul class="wp-block-list">
<li>Para archivos (máximo 666): <code>666 - 022 = 644</code> (rw-r&#8211;r&#8211;)</li>



<li>Para directorios (máximo 777): <code>777 - 022 = 755</code> (rwxr-xr-x)</li>
</ul>
</li>
</ul>



<p>Puedes ver tu <code>umask</code> actual escribiendo <code>umask</code> en la terminal.</p>



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



<p>Los permisos en Linux son una herramienta poderosa y esencial para mantener tu sistema seguro y organizado. Dominarlos te dará un control total sobre tus archivos y directorios, y te permitirá trabajar de forma más eficiente y segura. Así que la próxima vez que veas esos misteriosos <code>-rw-r--r--</code>, ¡ya sabrás exactamente qué significan!</p>



<h2 class="wp-block-heading">Permisos Especiales</h2>



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



<h3 class="wp-block-heading">Más Allá de <code>rwx</code>: Desentrañando los Permisos Especiales en Linux</h3>



<p>Ya hemos explorado los permisos básicos de lectura (<code>r</code>), escritura (<code>w</code>) y ejecución (<code>x</code>) en Linux, un pilar fundamental para la seguridad del sistema. Sin embargo, el universo de los permisos en Linux esconde algunas joyas adicionales que ofrecen funcionalidades avanzadas y, a veces, cruciales para la administración del sistema. Hablamos de los <strong>permisos especiales</strong>: el <code>setuid</code>, <code>setgid</code> y el <code>sticky bit</code>.</p>



<p>Estos permisos, representados por un <code>s</code> o <code>t</code> en la cadena de permisos que obtenemos con <code>ls -l</code>, pueden parecer un poco intimidantes al principio. Pero una vez que entiendes su propósito, te darás cuenta de su utilidad y de por qué es tan importante manejarlos con precaución.</p>



<h3 class="wp-block-heading">1. El Bit <code>setuid</code> (s)</h3>



<p>El <code>setuid</code> (abreviatura de «set user ID») es un permiso que se aplica exclusivamente a <strong>archivos ejecutables</strong>. Su función es muy específica y potente: cuando un usuario ejecuta un archivo con el bit <code>setuid</code> activado, el proceso se ejecuta con los privilegios del <strong>dueño del archivo</strong>, en lugar de los privilegios del usuario que lo está ejecutando.</p>



<p>¿Cómo lo ves?</p>



<p>En la cadena de permisos, verás una s en lugar de la x para el dueño:</p>



<p>-rwsr-xr-x</p>



<p>¿Por qué es útil?</p>



<p>Imagina un programa como passwd, que permite a los usuarios cambiar su contraseña. Para hacer esto, passwd necesita escribir en un archivo que solo el usuario root tiene permiso para modificar (generalmente /etc/shadow). Si passwd no tuviera setuid activado, un usuario normal no podría cambiar su contraseña. Con setuid, passwd se ejecuta temporalmente con los privilegios de root (su dueño), permitiendo el cambio de contraseña.</p>



<p>Riesgos:</p>



<p>Debido a que otorga privilegios elevados, un uso indebido o una vulnerabilidad en un programa con setuid puede ser un grave riesgo de seguridad. Un atacante podría explotar un programa setuid para ejecutar código malicioso con permisos de root. Por eso, es fundamental que solo los programas de confianza y bien auditados tengan este permiso.</p>



<h3 class="wp-block-heading">2. El Bit <code>setgid</code> (s)</h3>



<p>Similar al <code>setuid</code>, el <code>setgid</code> (abreviatura de «set group ID») puede aplicarse tanto a <strong>archivos ejecutables</strong> como a <strong>directorios</strong>.</p>



<ul class="wp-block-list">
<li><strong>En archivos ejecutables:</strong> Cuando un usuario ejecuta un archivo con el bit <code>setgid</code> activado, el proceso se ejecuta con los privilegios del <strong>grupo propietario del archivo</strong>, en lugar de los privilegios del grupo principal del usuario que lo ejecuta. ¿Cómo lo ves?Una s en lugar de la x para el grupo:-rwxr-sr-x <strong>Utilidad:</strong> Permite que un programa interactúe con recursos que son accesibles para un grupo específico, incluso si el usuario que lo ejecuta no pertenece a ese grupo, siempre y cuando el programa sea parte de ese grupo.</li>



<li><strong>En directorios:</strong> Este es un uso muy común y práctico. Cuando el <code>setgid</code> está activado en un directorio, todos los <strong>nuevos archivos y subdirectorios</strong> creados dentro de él heredarán automáticamente el <strong>grupo del directorio padre</strong>, en lugar del grupo principal del usuario que los creó. ¿Cómo lo ves?Una s en lugar de la x para el grupo:drwxr-sr-x <strong>Utilidad:</strong> Es ideal para directorios compartidos donde varios usuarios necesitan colaborar. Asegura que todos los archivos creados por diferentes usuarios en ese directorio pertenezcan al mismo grupo, simplificando la gestión de permisos para la colaboración.</li>
</ul>



<h3 class="wp-block-heading">3. El <code>Sticky Bit</code> (t)</h3>



<p>El <code>sticky bit</code> es un permiso que se aplica exclusivamente a <strong>directorios</strong>. Su función principal es evitar que los usuarios eliminen o renombren archivos de otros usuarios dentro de un directorio compartido, incluso si tienen permisos de escritura sobre ese directorio.</p>



<p>¿Cómo lo ves?</p>



<p>Una t en lugar de la x para «otros»:</p>



<p>drwxrwxrwt</p>



<p><strong>Utilidad:</strong> El ejemplo más claro y común es el directorio <code>/tmp</code>. En este directorio, cualquier usuario puede crear archivos y directorios. Sin el <code>sticky bit</code>, un usuario malicioso podría eliminar los archivos temporales de otro usuario. Con el <code>sticky bit</code> activado, un usuario solo puede eliminar o renombrar los archivos y directorios que él mismo posee dentro de <code>/tmp</code>.</p>



<h3 class="wp-block-heading">Cómo Establecer los Permisos Especiales con <code>chmod</code></h3>



<p>Al igual que los permisos básicos, los permisos especiales se pueden establecer utilizando el comando <code>chmod</code>, tanto con la notación simbólica como con la octal.</p>



<h4 class="wp-block-heading">Notación Simbólica:</h4>



<ul class="wp-block-list">
<li><strong><code>setuid</code>:</strong><code>u+s</code>
<ul class="wp-block-list">
<li><code>chmod u+s mi_programa</code></li>
</ul>
</li>



<li><strong><code>setgid</code>:</strong><code>g+s</code>
<ul class="wp-block-list">
<li><code>chmod g+s mi_directorio_compartido</code></li>
</ul>
</li>



<li><strong><code>sticky bit</code>:</strong><code>o+t</code>
<ul class="wp-block-list">
<li><code>chmod o+t /var/tmp</code></li>
</ul>
</li>
</ul>



<h4 class="wp-block-heading">Notación Octal:</h4>



<p>Los permisos especiales tienen un dígito octal adicional que se coloca al principio de los tres dígitos de permisos básicos (dueño, grupo, otros).</p>



<ul class="wp-block-list">
<li><code>setuid</code>: 4</li>



<li><code>setgid</code>: 2</li>



<li><code>sticky bit</code>: 1</li>
</ul>



<p>Para aplicar, sumas el valor del permiso especial que quieres establecer y lo antepones al número octal de los permisos básicos.</p>



<ul class="wp-block-list">
<li><strong>Ejemplos:</strong><ul><li><strong><code>setuid</code> en un ejecutable (755):</strong> <code>chmod 4755 mi_programa</code> (El 4 activa <code>setuid</code>, luego 755 para <code>rwxr-xr-x</code>)</li><li><strong><code>setgid</code> en un directorio (770):</strong> <code>chmod 2770 mi_directorio_compartido</code> (El 2 activa <code>setgid</code>, luego 770 para <code>rwxrwx---</code>)</li><li><strong><code>sticky bit</code> en un directorio (777):</strong> <code>chmod 1777 /tmp</code> (El 1 activa <code>sticky bit</code>, luego 777 para <code>rwxrwxrwx</code>)</li></ul>Si un permiso especial se activa pero el permiso de ejecución (<code>x</code>) no está presente para el grupo o «otros», la <code>s</code> o <code>t</code> se mostrará en mayúscula (<code>S</code> o <code>T</code>), indicando que el permiso especial está presente, pero el bit de ejecución está ausente.</li>
</ul>



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



<p>Los permisos especiales en Linux son herramientas poderosas que, cuando se usan correctamente, mejoran la funcionalidad y la seguridad del sistema. Sin embargo, su poder conlleva una gran responsabilidad. El uso descuidado de <code>setuid</code> y <code>setgid</code> en programas no confiables puede abrir brechas de seguridad significativas.</p>



<p>Entender cuándo y cómo aplicar estos permisos, junto con los permisos básicos, es un paso crucial para cualquier administrador de sistemas o usuario avanzado de Linux. Así que, la próxima vez que veas una <code>s</code> o una <code>t</code> en un listado de permisos, ya sabrás que estás frente a algo más que simple lectura, escritura o ejecución. ¡Estás ante una capa adicional de control y seguridad en tu sistema Linux!</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxete.duckdns.org/como-entender-los-permisos-en-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Conexiones seguras con SSH</title>
		<link>https://linuxete.duckdns.org/conexiones-seguras-con-ssh/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=conexiones-seguras-con-ssh</link>
					<comments>https://linuxete.duckdns.org/conexiones-seguras-con-ssh/#respond</comments>
		
		<dc:creator><![CDATA[raspberry]]></dc:creator>
		<pubDate>Sat, 30 Nov 2024 21:18:35 +0000</pubDate>
				<category><![CDATA[server]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[openssh-client]]></category>
		<category><![CDATA[openssh-server]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ssh Debian 12]]></category>
		<category><![CDATA[ssh linux]]></category>
		<guid isPermaLink="false">https://linuxete.duckdns.org/?p=2096</guid>

					<description><![CDATA[SSH, (Secure Shell), es un protocolo de administración remota por el cual los usuarios pueden controlar sus equipos a través de Internet. Se creó para sustituir a Telnet, un protocolo no cifrado que no ofrecía ningún tipo de seguridad a los usuarios. En cambio, SSH hace uso de las técnicas de criptografía más innovadoras con [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="728" height="250" src="https://linuxete.duckdns.org/wp-content/uploads/2024/11/ssh.jpg" alt="" class="wp-image-2119" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/11/ssh.jpg 728w, https://linuxete.duckdns.org/wp-content/uploads/2024/11/ssh-300x103.jpg 300w" sizes="(max-width: 728px) 100vw, 728px" /></figure>



<p>SSH, (Secure Shell), es un protocolo de administración remota por el cual los usuarios pueden controlar sus equipos a través de Internet.</p>



<p>Se creó para sustituir a Telnet, un protocolo no cifrado que no ofrecía ningún tipo de seguridad a los usuarios. En cambio, SSH hace uso de las técnicas de criptografía más innovadoras con el claro objetivo de que todas las comunicaciones realizadas entre los usuarios y los servidores remotos sean seguras. Dispone de una herramienta que permite autenticar al usuario remoto para posteriormente transferir las entradas desde el cliente al host y, finalmente, realizar la salida de vuelta a los usuarios.</p>



<h3 class="wp-block-heading">Instalación del servidor y del cliente</h3>



<p>Generalmente <strong>SSH</strong> suele venir preinstalado en tu distribución Linux, pero si no es así, procede a la instalación de los paquetes correspondientes, que son el servidor (openssh-server) y el cliente (openssh-client).</p>



<pre class="wp-block-code"><code><strong>sudo apt-get install openssh-server openssh-client</strong> <strong>-y</strong></code></pre>



<p>El paquete <strong>openssh-server</strong> proporciona el demonio <strong>sshd</strong> y <strong>sftp-server</strong> que permite a los clientes <strong>ssh</strong> y <strong>scp</strong> establecer conexiones seguras, y a los clientes <strong>sftp</strong> transferir archivos, también de forma segura.</p>



<p>El paquete <strong>openssh-client</strong> proporciona los clientes de <strong>ssh</strong>, <strong>scp</strong> y <strong>sftp</strong>, los programas <strong>ssh-agent</strong> y <strong>ssh-add</strong> para hacer más cómoda la identificación de clave pública, y las utilidades <strong>ssh-keygen</strong>, <strong>ssh-keyscan</strong>, <strong>ssh-copy-id</strong> y <strong>ssh-argv0</strong>.</p>



<h3 class="wp-block-heading">Test SSH</h3>



<p>Comprueba que el servidor SSH está habilitado y activo con la siguiente orden:</p>



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



<p>En la siguiente imagen, resaltado en color verde vemos que es así.</p>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="1022" height="495" src="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-29-18-50-48.png" alt="" class="wp-image-2097" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-29-18-50-48.png 1022w, https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-29-18-50-48-300x145.png 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-29-18-50-48-768x372.png 768w" sizes="(max-width: 1022px) 100vw, 1022px" /></figure>



<p>Hay otros comandos como son:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<pre class="wp-block-code"><code><strong>sudo systemctl enable sshd</strong> = Habilita el servicio</code></pre>



<pre class="wp-block-code"><code><strong>sudo systemctl disable sshd</strong> = Deshabilita el servicio</code></pre>



<pre class="wp-block-code"><code><strong>sudo systemctl start sshd</strong> = Inicia el servicio</code></pre>



<pre class="wp-block-code"><code><strong>sudo systemctl stop sshd</strong> = Para el servicio</code></pre>



<pre class="wp-block-code"><code><strong>sudo systemctl restart</strong> <strong>sshd</strong> = reinicia el servicio</code></pre>



<pre class="wp-block-code"><code><strong>sudo systemctl reload</strong> <strong>sshd</strong> = recarga el servicio</code></pre>
</blockquote>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Nota: La diferencia entre <strong>restart</strong> y <strong>reload</strong> es que, en el primer caso, el servicio se detiene y se vuelve a iniciar y en el segundo caso, sigue ejecutándose y vuelve a leer los archivos de configuración.</p>
</blockquote>



<h3 class="wp-block-heading">Archivos de configuración:</h3>



<p>SSH dispone de varios archivos de configuración, que son los siguientes:</p>



<p><strong>/etc/ssh/sshd_config</strong>: Archivo principal de configuración del servidor SSH.<br><br><strong>/etc/ssh/ssh_config</strong>: Archivo principal de configuración de los clientes SSH.<br><br><strong>~/.ssh/config</strong>: Archivo personal de cada usuario. Contiene la configuración utilizada por los clientes SSH. Permite al usuario local utilizar una configuración distinta a la definida en el archivo /etc/ssh/ssh_config.<br><br><strong>~/.ssh/known_hosts</strong>: Archivo personal de cada usuario. Contiene las firmas digitales de los servidores SSH a los que se conectan los clientes. Cuando éstas firmas cambian, se pueden actualizar ejecutando el comando ssh-keygen -R, pasando el nombre del anfitrión o la IP del anfitrión como argumento. Este comando elimina la entrada correspondiente en el archivo ~/.ssh/known_hosts y, permite añadir de nuevo al anfitrión con una nueva firma digital. La sintaxis genérica sería:</p>



<pre class="wp-block-code"><code><strong>ssh-keygen -R nombre_o_ip_del_servidor_SSH</strong></code></pre>



<p><strong>~/.ssh/authorized_keys</strong>: Archivo personal para cada usuario. Contiene los certificados de los clientes SSH, para permitir autenticación hacia servidores SSH sin requerir contraseña.</p>



<h3 class="wp-block-heading">Configurar SSH</h3>



<p>Tras la instalación procederemos a la configuración del servidor, para ello, editaremos el fichero de configuración /etc/ssh/sshd_config.</p>



<p>NOTA: es importante hacer copia de seguridad del archivo /etc/ssh/sshd_config antes de realizar cualquier cambio.</p>



<pre class="wp-block-code"><code>sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak</code></pre>



<p>Abrimos el archivo de confirmación con nano</p>



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



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="786" height="605" src="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-29-21-12-17.png" alt="" class="wp-image-2102" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-29-21-12-17.png 786w, https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-29-21-12-17-300x231.png 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-29-21-12-17-768x591.png 768w" sizes="auto, (max-width: 786px) 100vw, 786px" /></figure>



<p>Una forma de elevar la seguridad del servidor SSH, consiste en cambiar el número de puerto predeterminado por otro que sólo el administrador del sistema conozca. Aunque cambiar de puerto disminuye considerablemente la posibilidad de una intrusión, en internet hay cientos de robots escaneando IPs y sus respectivos puertos abiertos, con lo que al final acabas siendo encontrado.</p>



<p><strong>Port</strong> &#8211; De forma predeterminada, el servicio SSH escucha por el puerto 22. Los atacantes buscarán servidores que estén escuchando dicho puerto.Sustituye el 22 a otro puerto, preferiblemente entre el 1024 y 65535.</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="786" height="605" src="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-30-19-13-31.png" alt="" class="wp-image-2113" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-30-19-13-31.png 786w, https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-30-19-13-31-300x231.png 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/11/Captura-desde-2024-11-30-19-13-31-768x591.png 768w" sizes="auto, (max-width: 786px) 100vw, 786px" /></figure>



<p>Veamos algunas otras opciones interesantes a tener en cuenta a la hora de configurar el servidor:</p>



<p><strong>AddressFamily</strong> -Especifica qué familia de direcciones debe utilizar sshd. Los argumentos válidos son any (por defecto), inet (sólo IPv4), o inet6 (sólo IPv6).</p>



<p><strong>ListenAddress</strong> &#8211; De forma predeterminada, el servicio SSH escuchará peticiones a través de todas las direcciones IP correspondientes a todas las interfaces de red del sistema. La directriz por defecto sería: ListenAddress 0.0.0.0. Si queremos que el servidor solo escuche por la interfaz de red con IP 192.168.1.30, a la cual sólo se puede acceder desde la red local:</p>



<pre class="wp-block-code"><code>ListenAddress 192.168.1.30</code></pre>



<p><strong>LoginGraceTime</strong> &#8211; Establece el tiempo, en segundos, durante el cual la pantalla de login estará disponible para que el usuario introduzca su nombre de usuario y contraseña, si no lo hace durante ese período de tiempo el login se cerrará, evitando así dejar por tiempo indeterminado pantallas de login sin que nadie las use, o que alguien este intentando mediante un&nbsp;<strong>script</strong>&nbsp;adivinar un usuario y su contraseña. Si el valor es&nbsp;<strong>0</strong>, no hay límite de tiempo para que un usuario se autentique, lo cual no es recomendable ya que de esta forma un atacante podría utilizar ataques de fuerza bruta o usando métodos de diccionario para adivinar la contraseña, por lo tanto no es recomendable dejar esta directriz a&nbsp;<strong>0</strong>. Lo podemos dejar en&nbsp;<strong>10 segundos</strong>.</p>



<pre class="wp-block-code"><code>LoginGraceTime 10</code></pre>



<p><strong>PermitRootLogin</strong> &#8211; Probablemente sea la directriz de seguridad más importante que podemos establecer para asegurar nuestro servidor SSH. En los sistemas Unix y Linux se crea por defecto al usuario root, lo que implica que ya conocemos la existencia de al menos un usuario, ¡y que usuario!, con privilegios de adnimistrador. Muchos ataques de fuerza bruta se concentran en atacar al usuario root con la esperanza de que tenga una contraseña débil.<br>Sabiendo una parte de la ecuación (root) solo será cuestión de tiempo para que alguien con paciencia y suerte vulnere el sistema. En esta directriz denegamos el acceso al usuario root y por lo tanto, cualquier intento de ataque directo al usuario root será inútil.<br>Al denegar el acceso al usuario root, cada vez que necesitemos realizar tareas administrativas, accederemos como un usuario normal y una vez dentro, utilizando alguno de los comandos su o sudo podremos realizar dichas tareas administrativas. Por lo tanto, denegando el acceso al usuario root, el atacante tendrá que acertar tanto el nombre de un usuario del sistema como su contraseña, algo que disminuye notablemente la probabilidad de una intrusión.</p>



<p><strong>StrictModes</strong> &#8211; En esta directriz se establece que sshd revisara los modos y permisos de los archivos de los usuarios y el directorio $HOME de el usuario antes de aceptar la sesión. Esto es normalmente deseable porque a veces algunos usuarios dejan sus directorios, accidentalmente, con permiso de escritura para cualquiera. El valor predeterminado es yes, por lo tanto, lo dejaremos con su valor predeterminado.</p>



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



<p><strong>MaxAuthTries</strong> &#8211; El valor de esta directriz establece el máximo número de intentos de autenticación permitidos por conexión, es decir, la cantidad de veces que podemos equivocarnos al ingresar el usuario y/o contraseña. Una vez que los intentos alcanzan la mitad de este valor, las conexiones fallidas siguientes serán registradas. Después del máximo número de intentos se cerrará la conexión. Es posible volver a intentarlo, pero el límite de intentos por vez evita ataques basados en la persistencia de la conexión.</p>



<pre class="wp-block-code"><code>MaxAuthTries 5</code></pre>



<p><strong>MaxSessions</strong> &#8211; Especifica el número máximo de sesiones abiertas de shell, inicio de sesión o subsistema (por ejemplo, sftp) permitidas por conexión de red. Los clientes que soportan la multiplexación de conexiones pueden establecer múltiples sesiones. Si se establece MaxSessions a 1, se desactivará la multiplexación de sesiones, mientras que si se establece a 0, se evitarán todas las sesiones de shell, login y subsistema, a la vez que se permite el for- warding. El valor predeterminado es 10.</p>



<pre class="wp-block-code"><code>MaxSessions 10</code></pre>



<p>Con todo esto que hemos aprendido  ya puedes entrar a tu sistema remoto de la siguiente forma:</p>



<pre class="wp-block-verse">ssh -p 22343 tu_usuario@host_o_IP</pre>



<p>Si te interesa saber mas de como proteger tu servidor, puedes ver «<a href="https://linuxete.duckdns.org/instalar-fail2ban-en-debian-12-y-que-funcione/">Instalar Fail2ban en Debian 12 y que funcione</a>«</p>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxete.duckdns.org/conexiones-seguras-con-ssh/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Bash: orden no encontrada</title>
		<link>https://linuxete.duckdns.org/bash-no-se-encontro-la-orden/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=bash-no-se-encontro-la-orden</link>
					<comments>https://linuxete.duckdns.org/bash-no-se-encontro-la-orden/#respond</comments>
		
		<dc:creator><![CDATA[raspberry]]></dc:creator>
		<pubDate>Wed, 17 Jul 2024 17:01:50 +0000</pubDate>
				<category><![CDATA[terminal]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[no se encontró la orden]]></category>
		<guid isPermaLink="false">https://linuxete.duckdns.org/?p=1462</guid>

					<description><![CDATA[En Debian hay comandos que por defecto sólo están para el usuario root. Se almacenan la carpeta /sbin en vez de en /usr/bin. Por lo tanto al ejecutar un comando reservado como un usuario normal sin privilegios dará el siguiente error:&#160; &#160; En mi caso he tenido problemas con «ssmtp» ya que cuando intentaba enviar [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="569" src="https://linuxete.duckdns.org/wp-content/uploads/2024/07/1_v4o2AXLIJaHSZmqYZk26qA-1024x569.jpg" alt="" class="wp-image-1470" srcset="https://linuxete.duckdns.org/wp-content/uploads/2024/07/1_v4o2AXLIJaHSZmqYZk26qA-1024x569.jpg 1024w, https://linuxete.duckdns.org/wp-content/uploads/2024/07/1_v4o2AXLIJaHSZmqYZk26qA-300x167.jpg 300w, https://linuxete.duckdns.org/wp-content/uploads/2024/07/1_v4o2AXLIJaHSZmqYZk26qA-768x427.jpg 768w, https://linuxete.duckdns.org/wp-content/uploads/2024/07/1_v4o2AXLIJaHSZmqYZk26qA.jpg 1080w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>En Debian hay comandos que por defecto sólo están para el usuario root. Se almacenan la carpeta <em><strong>/sbin</strong></em> en vez de en <em><strong>/usr/bin</strong></em>. Por lo tanto al ejecutar un comando reservado como un usuario normal sin privilegios dará el siguiente error:<strong>&nbsp; &nbsp; </strong></p>



<pre class="wp-block-code"><code><strong>bash: comando: orden no encontrada </strong></code></pre>



<p>En mi caso he tenido problemas con «ssmtp» ya que cuando intentaba enviar emails desde la terminal, me devolvía un error</p>



<pre class="wp-block-code"><code>echo "Testing…1…2…3" | ssmtp <mark>mi_email@gmail.com</mark>
bash: ssmtp: orden no encontrada</code></pre>



<p>Para solucionar esto hay que crear un enlace simbólico que apunte de la carpeta /sbin a /usr/bin</p>



<h2 class="wp-block-heading">Comando ln</h2>



<p>El comando <strong>ln</strong> en Linux es utilizado para crear enlaces simbólicos y duros. Estos enlaces son útiles cuando se necesita acceder a un archivo o directorio desde diferentes ubicaciones dentro del sistema de archivos.</p>



<p>Ejemplo de como crear un enlace simbólico :</p>



<pre class="wp-block-code"><code><strong>ln -s /sbin/comando /usr/bin/comando</strong></code></pre>



<h2 class="wp-block-heading">Ejemplo práctico</h2>



<p>Enlace simbólico del comando <strong>ssmtp</strong>:</p>



<pre class="wp-block-code"><code>sudo ln -s /sbin/ssmtp /usr/bin/ssmtp</code></pre>



<p>Ahora ya lo puedes ejecutar como un usuario normal</p>



<pre class="wp-block-code"><code>echo "Probando…1…2…3" | ssmtp mi_email@gmail.com</code></pre>



<p>Si no quieres añadir un enlace simbólico y deseas ejecutarlo como un usuario normal solo hay que ejecutar el comando de la siguiente manera:</p>



<pre class="wp-block-code"><code><strong>$ sudo </strong>echo "Probando…1…2…3" | ssmtp mi_email@gmail.com</code></pre>



<p><strong>Nota</strong>, para usar el comando ssmtp (enviar emails desde la terminal) debes de tenerlo instalado y configurado.</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://linuxete.duckdns.org/bash-no-se-encontro-la-orden/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
