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.