Guía para la instalación de OpenSSH (y II)v

Ofrecemos una breve guía sobre como obtenerlo, verificar su integridad,
compilarlo, instalarlo, así como unas nociones básicas acerca la
configuración del mismo.

Finalizada la compilación sin errores disponemos de una copia

personalizada de OpenSSH lista para su instalación, realizando los

siguientes pasos:

$ su

Password:

# find /* > OpenSSH1

#

make install

# find /* > OpenSSH2

# diff OpenSSH1 OpenSSH2 >

OpenSSH-Installed

Los pasos que realizamos son los siguientes:

En primer lugar, nos hacemos administrador del sistema, debido a que la

instalación de OpenSSH debe realizarse en determinados directorios sobre

los que únicamente el administrador tiene privilegios de escritura.

A

continuación obtenemos una relación de todos los archivos existentes en

el sistema y la salvamos en un archivo temporal.

El tercer paso

consiste en ejecutar make install para proceder a la instalación de

OpenSSH.

Repetimos la operación de obtener un listado de todos

los archivos existentes en el sistema. Comparando con diff las dos

listas, antes y después de la instalación, obtendremos la relación de

todos los cambios que ha realizado la instalación de OpenSSH en nuestro

sistema.

Verificación

La forma más simple de verificar que la nueva versión es totalmente

operativa consiste en probarla. Para ello, es necesario ejecutar el

servidor de SSH y realizar una serie de comprobaciones básicas

#

/usr/sbin/sshd

# telnet localhost 22

Trying 127.0.0.1…

Connected to localhost.

Escape character is ‘]’.

SSH-2.0-OpenSSH_3.8.1p1

Hasta ahora todo parece correcto. A

continuación, podemos utilizar el cliente ssh para realizar una conexión

al servidor:

# ssh usuario@localhost

The authenticity of host

‘localhost (127.0.0.1)’ can’t be established.

RSA key fingerprint is

05:75:98:18:fd:52:ae:1b:8a:2f:7f:1c:0b:5b:ff:d6.

Are you sure you

want to continue connecting (yes/no)? yes

Warning: Permanently added

‘localhost’ (RSA) to the list of known hosts.

usario@localhost’s

password:

$

El cliente SSH ha podido establecer la conexión

con el servidor, nos avisa de que no puede establecer la autenticidad

del servidor ya que no identifica la clave pública del mismo dentro del

archivo de sistemas de confianza por lo que nos pide si realmente

queremos conectar con él. A continuación pide la contraseña del usuario

y, si facilitamos la correcta, nos devuelve el indicador del shell.

Si esto no funciona. es hora de utilizar las funciones de depuración, tanto en

el servidor (/usr/sbin/sshd -d3) como en el cliente (ssh -v) que son de

gran ayuda para identificar los problemas.

Configuración de SSH

Si lo que hemos realizado es una actualización de OpenSSH, ya hemos

terminado. En cambio, si es una instalación nueva, existe un paso

adicional: crear los archivos de configuración del servidor (sshd) y del

cliente (ssh). Vamos a mostrar una configuración simple que pueda servir

de base para personalizar a los requerimientos especiales de cada

instalación.

Archivo de configuración del servidor SSH

Editar el archivo /etc/ssh/sshd_config tomando como ejemplo el que

incluimos a continuación:

– — sshd_config —

Port 22

Protocol 2

ListenAddress x.x.x.x

HostKey /etc/ssh/ssh_host_key

HostKey /etc/ssh/ssh_host_rsa_key

HostKey /etc/ssh/ssh_host_dsa_key

ServerKeyBits 768

LoginGraceTime 60

KeyRegenerationInterval 3600

PermitRootLogin no

IgnoreRhosts yes

IgnoreUserKnownHosts yes

StrictModes yes

X11Forwarding no

X11DisplayOffset 10

PrintMotd

yes

KeepAlive yes

SyslogFacility AUTHPRIV

LogLevel INFO

RhostsAuthentication no

RhostsRSAAuthentication no

RSAAuthentication no

PasswordAuthentication yes

PermitEmptyPassowrds no

AllowUsers sysadmin

UsePrivilegeSeparation

yes

Subsystem sftp /usr/libexec/openssh/sftp-server

– —

sshd_config —

En esta configuración, indicamos que sólo se

utiliza el protocolo SSHv2, la interfaz (indicada por la dirección IP)

asociada al servidor, la ubicación de las claves del servidor, el tamaño

de la clave y la auto-regeneración automática de la misma, ignorar los

archivos rhosts y shosts, los tipos de autenticación que se permiten

(como hemos configurado el servidor para que sólo utilice SSHv2, no

permitimos la utilización de claves RSA para la autenticación), etc.

Todos los parámetros que utilizamos en esta configuración están pensados para

un servidor SSH con autenticación de usuarios mediante contraseña y

utilizando las diversas opciones de seguridad disponibles.

Archivo de configuración del cliente SSH

El archivo de configuración del cliente es /etc/ssh/ssh_config.

Aconsejamos

utilizar las siguientes opciones:

– —

ssh_config —

Host *

ForwardAggent no

ForwardX11 no

RhostsAuthentication no

RhostsRSAAuthentication no

RSAAuthentication no

PasswordAuthentication yes

FallBackToRsh no

UseRsh no

BatchMode no

CheckHostIP yes

StrictHostKeyChecking yes

IdentityFile ~/.ssh/identity

IdentityFile ~/.ssh/id_dsa

IdentityFile ~/.ssh/id_rsa

Port 22

Protocol 2

Cipher blowfish

EscapeChar ~

Host x.x.x.x

# Opciones especificas para

# un servidor

SSH concreto

– — ssh_config —

En este archivo de

configuración se activan las características generales de seguridad del

cliente SSH para realizar únicamente conexiones con protocolo SSHv2,

permitiendo la autenticación mediante contraseñas.

Asimismo se

deshabilitan expresamente algunas opciones que pueden provocar agujeros

en la seguridad, como la posibilidad de utilizar rsh si no es posible

establecer una conexión SSH.

Adicionalmente, en función de la

versión del sistema operativo que se utilice existen otros archivos que

puede ser necesario configurar, tales como la configuración del soporte

PAM de OpenSSH (habitualmente, /etc/pam.d/sshd) y el script para

ejecutar sshd automáticamente cada vez que arranca el sistema. Debido al

carácter general de este boletín, no podemos cubrir todas las posibles

variantes, por lo que el lector deberá acudir a la documentación

específica de su sistema.