{"id":684,"date":"2016-03-17T00:13:29","date_gmt":"2016-03-17T06:13:29","guid":{"rendered":"http:\/\/naps.com.mx\/blog\/?p=684"},"modified":"2017-11-16T12:13:44","modified_gmt":"2017-11-16T18:13:44","slug":"instalacion-y-configuracion-de-ssh","status":"publish","type":"post","link":"https:\/\/naps.com.mx\/blog\/instalacion-y-configuracion-de-ssh\/","title":{"rendered":"Instalaci\u00f3n y configuraci\u00f3n de SSH"},"content":{"rendered":"<p>En el presente art\u00edculo veremos los comandos necesarios para la instalaci\u00f3n y configuraci\u00f3n de <strong>SSH<\/strong>, en un entorno Linux utilizando OpenSSH. Comenzamos comentando los conceptos principales sobre este protocolo.<\/p>\n<div id=\"attachment_689\" style=\"width: 1290px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/03\/instalacion-y-configuracion-de-SSH.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-689\" class=\"size-full wp-image-689\" src=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/03\/instalacion-y-configuracion-de-SSH.jpg\" alt=\"instalaci\u00f3n y configuraci\u00f3n de ssh\" width=\"1280\" height=\"853\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/03\/instalacion-y-configuracion-de-SSH.jpg 1280w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/03\/instalacion-y-configuracion-de-SSH-300x200.jpg 300w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/03\/instalacion-y-configuracion-de-SSH-1024x682.jpg 1024w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><\/a><p id=\"caption-attachment-689\" class=\"wp-caption-text\">Aprende instalaci\u00f3n y configuraci\u00f3n de SSH<\/p><\/div>\n<p><!--more--><\/p>\n<h2><strong>Qu\u00e9 es SSH<\/strong><\/h2>\n<p><strong>SSH (Secure Shell)<\/strong> \u00a0es una forma segura de comunicar sistemas inform\u00e1ticos. Es un protocolo que permite establecer <strong>conexiones seguras<\/strong> con otros programas o protocolos (Maiorano A., 2009\u00a0 ). Por ello, es posible que el protocolo de correo o de transferencia de archivos puedan utilizar mecanismos de <strong>cifrado<\/strong> para mejorar su seguridad. Se le llama SSH tanto al protocolo como al programa que lo implementa.<\/p>\n<p>Con SSH podemos controlar un equipo inform\u00e1tico <strong>remotamente<\/strong> a trav\u00e9s de una red mediante un int\u00e9rprete de comandos. Su uso es similar a <strong>Telnet<\/strong>, pero es m\u00e1s seguro. (Sivianes et al, 2010 ).<\/p>\n<p>SSH utiliza <strong>encriptaci\u00f3n<\/strong> (normalmente de 128 bits) para resguardar la informaci\u00f3n que viaja a trav\u00e9s de un medio no seguro como lo es una red de datos. Para conseguir esto puede utilizar diversos algoritmos de compresi\u00f3n y encriptaci\u00f3n (como<strong> BlowFish, Triple DES, IDEA y RSA<\/strong>). Utiliza contrase\u00f1as o bien llaves <strong>DSA<\/strong> o <strong>RSA<\/strong> para la autenticaci\u00f3n y no necesariamente requiere de un servidor de llaves.<\/p>\n<p>SSH est\u00e1 basado en la arquitectura <strong>cliente-servidor<\/strong> en la que el cliente es el proceso que se ejecuta en el equipo desde donde nos conectamos, y el servidor es el que se ejecuta en el equipo sobre el que se quiere obtener una sesi\u00f3n de trabajo (G\u00f3mez, Padilla y Gil, 2007).<\/p>\n<h2><strong>OpenSSH<\/strong><\/h2>\n<p>Existe una vesi\u00f3n open source de SSH llamado <strong>OpenSSH<\/strong>. Entre sus herramientas se cuentan ssh-add, ssh-agent, ssh-keygen, ssh-keyscan, ssh-keysign y ssftp-server (Vea Programas de la suite SSH)<\/p>\n<p>OpenSSH es desarrollado por <strong>OpenBSD<\/strong> pero tambien existen versiones para el sistema operativo Windows.<\/p>\n<h2><strong>Instalaci\u00f3n y configuraci\u00f3n de SSH<\/strong><\/h2>\n<p>Usaremos un sistema basado en Debian como ejemplo.<\/p>\n<h3><strong>Instalar el cliente OpenSSH<\/strong><\/h3>\n<pre class=\"theme:terminal lang:sh decode:true\">apt-get install openssh-client<\/pre>\n<p>&nbsp;<\/p>\n<h3><strong>Instalar la aplicaci\u00f3n servidor OpenSSH<\/strong><\/h3>\n<pre class=\"theme:terminal lang:sh decode:true \">apt-get install openssh-server<\/pre>\n<p>&nbsp;<\/p>\n<h3><strong>Configuraci\u00f3n del servidor OpenSSH<\/strong><\/h3>\n<p>Antes de realizar cambios a su archivo de configuraci\u00f3n recuerde realizar una copia de respaldo y de preferencia protegerlo contra escritura. Eso es lo que realizan los siguiente comandos.<\/p>\n<pre class=\"theme:terminal lang:sh decode:true  \">cp \/etc\/ssh\/sshd_config \/etc\/ssh\/ssh_config.original\r\nchmod a-w \/etc\/ssh\/sshd_config.original<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Abrir el archivo de configuraci\u00f3n<\/strong><\/p>\n<pre class=\"theme:terminal lang:sh decode:true \">nano \/etc\/ssh\/sshd_config<\/pre>\n<p>&nbsp;<\/p>\n<h2>\u00a0<strong>Directivas de configuraci\u00f3n m\u00e1s empleadas<\/strong><\/h2>\n<table>\n<tbody>\n<tr>\n<td width=\"374\"><strong>Directiva<\/strong><\/td>\n<td width=\"374\"><strong>Uso<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"374\">PubkeyAuthentication yes<\/td>\n<td width=\"374\">Hace que sshd permita credenciales de inicio de sesi\u00f3n en clave p\u00fablica.<\/td>\n<\/tr>\n<tr>\n<td width=\"374\">Banner \/etc\/issue.net<\/td>\n<td width=\"374\">Hace que el servidor OpenSSH muestre el contenido del archivo \/etc\/issue.net como banner antes del login<\/td>\n<\/tr>\n<tr>\n<td width=\"374\">ListenAddress 0.0.0.0<\/td>\n<td width=\"374\">Hace que sshd escuche peticiones de conexi\u00f3n desde cualquier red externa.<\/td>\n<\/tr>\n<tr>\n<td width=\"374\">Port 2222<\/td>\n<td width=\"374\">Hace que OpenSSH escuche por el puerto TCP 2222 en lugar del puerto 22 (por defecto).<\/td>\n<\/tr>\n<tr>\n<td width=\"374\">PermitRootLogin no<\/td>\n<td width=\"374\">Impide que se conecten como usuario \u201croot\u201d. \u00datil para evitar ataques no deseados.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>Otras directivas que tambi\u00e9n son \u00fatiles<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"374\"><strong>Directiva<\/strong><\/td>\n<td width=\"374\"><strong>Uso<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"374\">Protocol<\/td>\n<td width=\"374\">Indica la versi\u00f3n del protocolo. Actualmente hay dos versiones, siendo la 2 la m\u00e1s segura (mit.edu, 2016)<\/td>\n<\/tr>\n<tr>\n<td width=\"374\">IdentifyFile<\/td>\n<td width=\"374\">Indica el nombre del archivo que contiene la clave p\u00fablica, normalmente ~\/.ssh\/id_rsa<\/td>\n<\/tr>\n<tr>\n<td width=\"374\">PasswordAuthentication<\/td>\n<td width=\"374\">Indica que el mecanismo de autenticaci\u00f3n a utilizar es el cl\u00e1sico (usuario y contrase\u00f1a)<\/td>\n<\/tr>\n<tr>\n<td width=\"374\">Ciphrers<\/td>\n<td width=\"374\">Indica los algoritmos de cifrado disponibles.<\/td>\n<\/tr>\n<tr>\n<td width=\"374\">RSAAuthentication<\/td>\n<td width=\"374\">Para indicar si se usa RSA en la autentificaci\u00f3n.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>Si hemos realizado cambios al archivo sshd_config hay que reiniciar el servidor para que los cambios surtan efecto. Esto se hace con el comando<\/p>\n<pre class=\"theme:terminal lang:sh decode:true \">\/etc\/init.d\/ssh restart<\/pre>\n<p>&nbsp;<\/p>\n<h2><strong>Uso del cliente SSH en sistemas Linux<\/strong><\/h2>\n<p>El comando es el siguiente: ssh <em>host_remoto<\/em><\/p>\n<p>Donde <em>host_remoto<\/em> es la IP del servidor SSH o su nombre.<\/p>\n<p>Otra forma de conectarnos es especificando el nombre de usuario en el servidor remoto.<\/p>\n<p>Ssh usuario_remoto@host_remoto<\/p>\n<h2><strong>Programas de la suite ssh<\/strong><\/h2>\n<table>\n<tbody>\n<tr>\n<td width=\"374\">Programa<\/td>\n<td width=\"374\">Descripci\u00f3n<\/td>\n<\/tr>\n<tr>\n<td width=\"374\">scp<\/td>\n<td width=\"374\">Secure Copy, ofrece un medio seguro de copiar archivos de un host a otro.<\/td>\n<\/tr>\n<tr>\n<td width=\"374\">ssh<\/td>\n<td width=\"374\">Cliente de Secure Shell.<\/td>\n<\/tr>\n<tr>\n<td width=\"374\">ssh-add<\/td>\n<td width=\"374\">Registra nuevas claves al agente de autenticaci\u00f3n<\/td>\n<\/tr>\n<tr>\n<td width=\"374\">ssh-agent<\/td>\n<td width=\"374\">Realiza la autenticaci\u00f3n al estilo RSA a trav\u00e9s de redes y permite a los host remotos acceder y almacenar claves privadas de RSA.<\/td>\n<\/tr>\n<tr>\n<td width=\"374\">sshd<\/td>\n<td width=\"374\">Servidor de Secure Shell. De forma predeterminada escucha en el puerto 22.<\/td>\n<\/tr>\n<tr>\n<td width=\"374\">ssh-keygen<\/td>\n<td width=\"374\">El generador de claves para ssh. Los usuarios pueden generar una clave RSA para autenticarse local o remotamente.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h2>Arquitectura de protocolos SSH<\/h2>\n<p>La arquitectura de protocolos enviada a la IETF para su aprobaci\u00f3n se conforma por tres componentes principales (Nichols y Lekkas, 2003).<\/p>\n<ul>\n<li><strong>Protocolo de nivel de transporte<\/strong>. Autenticaci\u00f3n del servidor, confidencialidad e integridad de los datos.<\/li>\n<li><strong>Protocolo de autenticaci\u00f3n<\/strong>. Autenticaci\u00f3n del usuario.<\/li>\n<li><strong>Protocolo de conexi\u00f3n<\/strong>. M\u00faltiples canales de datos a trav\u00e9s de un \u00fanico t\u00fanel cifrado.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<div id=\"attachment_686\" style=\"width: 736px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/03\/instalacion-y-configuracion-de-ssh.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-686\" class=\"size-full wp-image-686\" src=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/03\/instalacion-y-configuracion-de-ssh.png\" alt=\"instalacion y configuracion de ssh\" width=\"726\" height=\"416\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/03\/instalacion-y-configuracion-de-ssh.png 726w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2016\/03\/instalacion-y-configuracion-de-ssh-300x172.png 300w\" sizes=\"auto, (max-width: 726px) 100vw, 726px\" \/><\/a><p id=\"caption-attachment-686\" class=\"wp-caption-text\">Arquitectura de protocolos SSH<\/p><\/div>\n<h3><strong>Referencias<\/strong><\/h3>\n<ol>\n<li>An\u00f3nimo (2000) <strong>Linux M\u00e1xima Seguridad<\/strong>. Pearson Educaci\u00f3n.<\/li>\n<li>Gagn\u00e9 (1999). <strong>Linux System Administration. A user\u2019s guide.<\/strong> Addison Wesley.<\/li>\n<li>G\u00f3mez, Padilla y Gil (2007). <strong>Administraci\u00f3n de Sistemas Operativos Windows y Linux, un enfoque pr\u00e1ctico<\/strong>.\u00a0 RA-MA Editorial.<\/li>\n<li>Maiorano A. (2009). <strong>Criptograf\u00eda, t\u00e9cnicas de desarrollo para profesionales<\/strong>. Alfaomega.<\/li>\n<li>Mit.Edu (2016).\u00a0 <strong>Versiones del protocolo SSH<\/strong>. Disponible en [<a href=\"http:\/\/web.mit.edu\/rhel-doc\/4\/RH-DOCS\/rhel-rg-es-4\/s1-ssh-version.html\" target=\"_blank\" class=\"broken_link\">http:\/\/web.mit.edu\/rhel-doc\/4\/RH-DOCS\/rhel-rg-es-4\/s1-ssh-version.html<\/a>] consultado el [15-3-2016].<\/li>\n<li>Nichols y Lekkas (2003). <strong>Seguridad para comunicaciones inal\u00e1mbricas.<\/strong> Mc Graw Hill<\/li>\n<li>Sivianes et al (2010). <strong>Servicios en red<\/strong>. Editorial Paraninfo.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>En el presente art\u00edculo veremos los comandos necesarios para la instalaci\u00f3n y configuraci\u00f3n de SSH, en un entorno Linux utilizando OpenSSH. Comenzamos comentando los conceptos principales sobre este protocolo.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"amp_status":"","footnotes":""},"categories":[3],"tags":[44,156,5,155],"class_list":["post-684","post","type-post","status-publish","format-standard","hentry","category-seguridad","tag-linux","tag-openssh","tag-seguridad","tag-ssh"],"_links":{"self":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/684","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/comments?post=684"}],"version-history":[{"count":8,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/684\/revisions"}],"predecessor-version":[{"id":694,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/684\/revisions\/694"}],"wp:attachment":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/media?parent=684"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/categories?post=684"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/tags?post=684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}