Cómo instalar la última versión de OpenSSH en Red Hat Enterprise Linux 5.5

Valoración del Usuario:  / 0
MaloBueno 

Este artículo explica cómo compilar e instalar la última versión de OpenSSH en un servidor Red Hat. Ya sea para corregir errores de seguridad o incorporar nuevas funcionalidades.

OpenSSH (Open Secure Shell) es un conjunto de aplicaciones que permiten realizar comunicaciones cifradas a través de una red, usando el protocolo SSH. Fue creado como una alternativa libre y abierta al programa Secure Shell, que es software propietario. Sus desarrolladores aseguran que OpenSSH es más seguro que el original, lo cual es debido a la conocida reputación de los desarrolladores de OpenBSD por crear código limpio y perfectamente auditado, lo que contribuye a que sea más seguro. Su seguridad también es atribuible al hecho de que su código fuente se distribuya libremente con una licencia BSD.



La suite OpenSSH incluye las siguientes herramientas:

  • ssh: reemplaza a rlogin y telnet para permitir el acceso remoto a otro sistema.
  • scp: reemplaza a rcp para copiar archivos de un sistema remoto a otro.
  • sftp: implementa el servicio ftp sobre un túnel SSH.
  • sshd: implementa el servicio SSH
  • ssh-keygen: una herramienta para inspeccionar y generar claves RSA y DSA que son utilizadas para la autenticación del cliente o usuario.
  • ssh-agent y ssh-add: herramientas para simplificar la autenticación, manteniendo las claves listas para no tener que volver a introducir la frase de acceso cada vez que se utiliza la clave.
  • ssh-keyscan: herramienta para escanear una lista de clientes y recolectar sus claves públicas.

El servidor en cuestión es un Red Hat Enterprise Linux 5.5:

[root@pepeserver37 /]# cat /etc/issue
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
Kernel \r on an \m

La versión de OpenSSH instalada actualmente, proveniente de los repositorios, es la 4.3:

[root@pepeserver37 ~]# rpm -qa openssh
openssh-4.3p2-41.el5

Antes de instalar la última versión, es necesario desinstalar el paquete proveniente de los repositorios. Para ello ejecutar:

rpm -e openssh-clients
rpm -e openssh-server
rpm -e openssh-askpas
rpm -e openssh

Utilizaremos el directorio base /usr/local/src/:

cd /usr/local/src/

Debemos descargar la última versión disposnible de OpenSSH desde http://www.openssh.org/portable.html, en el momento de escribir este artículo es la 6.2. Seleccionar un mirror (el que consideremos más cercano, en mi caso Buenos Aires) y descargar con wget:

wget http://openbsd.org.ar/pub/OpenBSD/OpenSSH/portable/openssh-6.2p1.tar.gz

Extraer el contenido del paquete:

tar -xzvf openssh-6.2p1.tar.gz

Cambiar al directorio de fuentes, compilar e instalar:

cd openssh-6.2p1
./configure                                                                                       
make                                                                                              
make install

Luego de instalar es necesario copiar el script de inicio del servicio al directorio /etc/init.d para poder iniciar y detener el servicio utilizando el comando service:

cp /usr/local/src/openssh-6.2p1/opensshd.init /etc/init.d/opensshd
chmod +x  /etc/init.d/opensshd

Editar el script de inicio (/etc/init.d/opensshd) y agregar las líneas de comentario para chkconfig:

    # chkconfig: 2345 80 20
    # description: OpenSSH weon!

Esta información indica que el script debe ser iniciado en los niveles 2, 3, 4, y 5, que su prioridad de start debe ser 80 (números grandes indican menor prioridad), y que su prioridad de stop debe ser 20. chkconfig también soporta los encabezados de comentario en formato LSB, por ejemplo:

    ### BEGIN INIT INFO
    # Provides: foo
    # Required-Start: bar
    # Defalt-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Description: Foo init script
    ### END INIT INFO

Luego de haber agregado la información de inicio para chkconfig, agregar el servicio "opensshd":

chkconfig --add opensshd

De esta forma, chkconfig actualiza la jerarquía de directorios /etc/rc[0-6].d, que se utiliza para mantener los links simbólicos a los scripts de inicio de servicios de acuerdo a cada runlevel.

Antes de iniciar el servicio es necesario copiar las viejas claves del servidor ssh para que los clientes no reciban la advertencia de autenticidad del servidor:

The authenticity of host 'pepeserver37 (192.168.1.37)' can't be established.
RSA key fingerprint is c7:35:90:32:8d:b9:87:62:0a:7d:eb:26:3f:08:6b:08.
Are you sure you want to continue connecting (yes/no)?

El comando rmp -e no elimina los archivos de claves ssh_host_dsa_key, ssh_host_dsa_key.pub, ssh_host_key, ssh_host_key.pub, ssh_host_rsa_key, ssh_host_rsa_key.pub. Copiarlos al directorio /usr/local/etc/:

cp /etc/ssh/ssh_host_* /usr/local/etc/

Finalmente es posible iniciar el servicio:

service opensshd start

Para verificar la conexión SSH, acceder desde un host remoto mediante:

[pepe@pepebox ~]$ ssh root@pepeserver37.pepe.org
root@pepeserver37.pepe.org's password:
Last login: Thu Feb 31 17:07:46 1954 from pepebox.pepe.org
[root@pepeserver37 ~]#

Exito!



Suscribirse

    Registrate para recibir las novedades y artículos por correo electrónico.

Social

Linuxito en G+