Uno de los métodos de conexión más usados por sus niveles de seguridad y de compatibilidad es la conexión SSH. Ésta nos garantiza una conexión segura para la transferencia de datos. Para lograr mejorar los niveles de conectividad y de prestaciones a través de SSH, contamos con un recurso llamado OpenSSH mediante el cual todo el proceso de conectividad será administrado de una forma mucho más clara y concreta. A través de este tutorial veremos cómo instalar OpenSSH en Linux para contar con mejores opciones a la hora de proteger la transferencia de información.
- Las operaciones remotas las cuales se realizan haciendo uso de ssh, scp y sftp.
- Administración de claves a través de ssh-add, ssh-keysign, ssh-keyscan y ssh-keygen.
- El lado del servicio está compuesto por sshd, sftp-server y ssh-agent.
- Proyecto de código abierto con licencia gratis.
- OpenSSH está disponible bajo una licencia BSD.
- Diversas opciones de criptografía como AES, ChaCha20, RSA, ECDSA, Ed25519 y más.
- Reenvío X11 el cual permite el cifrado del tráfico de X Windows remoto, así evitamos que los atacantes puedan acceder a los xterms remotos o insertar comandos maliciosos.
- Reenvío de puertos la cual permite el reenvío de conexiones TCP/IP hacia una máquina remota a través de un canal encriptado.
- Mejores niveles de autenticación los cuales protegen contra varias fallas de seguridad.
- Soporte de cliente y servidor SFTP.
- Ahora se permite especificar la mayoría de los números de puerto a través de nombres de servicio de getservbyname.
- Es posible que la directiva de configuración de IdentityAgent acepte nombres de variables de entorno.
- Admite sesiones de señalización a través del protocolo SSH.
- Es compatible con "ssh -Q sig" para enumerar las opciones de firma admitidas.
- Admite listas de revocación de claves (KRL) para revocar las claves especificadas por el hash SHA256.
A continuación, veremos cómo instalar OpenSSH en Linux.
- C compiler
- Zlib 1.1.4 o 1.2.1.2 o superior
- LibreSSL o OpenSSL >= 1.0.1 < 1.1.0
1. Instalar cliente OpenSSH en Linux
Antes de iniciar vamos a comprobar la versión de SSH instalada con el siguiente comando:
ssh -V
Ahora vamos a instalar las dependencias las cuales son las herramientas de desarrollo o elementos esenciales de compilación, así como otros paquetes necesarios, para ello ejecutamos alguno de los siguientes comandos:
sudo yum group install 'Development Tools' sudo yum install zlib-devel openssl-devel
sudo dnf group install 'Development Tools' sudo dnf install zlib-devel openssl-devel
sudo apt update
Allí ingresamos la letra S para confirmar la descarga e instalación de OpenSSH.
sudo apt install build-essential zlib1g-dev libssl-dev
2. Instalar servidor OpenSSH en Linux
Ahora vamos a crear un entorno para instalar el servidor OpenSSH versión 7.9, para ello será necesario crear un nuevo usuario y grupo del sistema llamado "sshd", luego asegurarlo con chroot, ejecutamos las siguientes líneas:
sudo mkdir /var/lib/sshd sudo chmod -R 700 /var/lib/sshd/ sudo chown -R root:sys /var/lib/sshd/ sudo useradd -r -U -d /var/lib/sshd/ -c "sshd privsep" -s /bin/false sshd
Los parámetros usados son:
-r
-U
-d
-c
-s
Una vez realizado esto, vamos a descargar la última versión de OpenSSH ejecutando la siguiente línea:
wget -c https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.9p1.tar.gz
Procedemos a descomprimir el archivo descargado y acceder al nuevo directorio:
tar -xzf openssh-7.9p1.tar.gz cd openssh-7.9p1/
El siguiente paso es construir e instalar el servidor OpenSSH a través de las opciones "--with-md5-passwords, --with-privsep-path y --sysconfdir", los cuales instalarán todos los archivos en el directorio /usr/local/ la cual es la instalación predeterminada PREFIX. Para ver todas las opciones disponibles vamos a ejecutar “./configure -h” y a partir de allí será posible personalizar la instalación según sea necesario:
./configure -h
Si deseamos habilitar el soporte de PAM y SELinux, vamos a agregar las opciones –with-pam y –with-selinux así:
./configure --with-md5-passwords --with-pam --with-selinux --with-privsep-path=/var/lib/sshd/ --sysconfdir=/etc/ssh make sudo make install
Finalmente, podemos comprobar que disponemos de la última versión de OpenSSH ejecutando:
ssh -V
Los archivos de configuración de OpenSSH están en las siguientes rutas:
~/.ssh/*
/etc/ssh/ssh_config
/etc/ssh/sshd_confi
Podemos ver como OpenSSH es una alternativa práctica para administrar y contar con mejores opciones a la hora de usar SSH.