Servidor SSH

Estamos de vacaciones y llueve, ¿escuchamos radio o configuramos un servidor SSH?

¿SSH? ¿qué es?
Básicamente es el nombre de un protocolo que sirve para acceder y administrar computadoras de una red en forma remota. La forma de trabajo es similar al viejo telnet, pero la diferencia radica en que SSH establece la conexión y el envío de datos mediante el uso de técnicas de encriptación. De aquí es que procede su nombre: Secure Shell.
La utilidad de SSH es amplia, ya que muchas aplicaciones pueden tornarse seguras por ejecutarse en túneles SSH. Como ejemplo de estas aplicaciones tenemos a X Window, Apache (aquí hay un howto), MySQL y otras más (acá hay más datos).

Haciendo historia
Hacia 1995 apareció la primera versión de SSH, liberada como software libre pero con el correr del tiempo la licencia fue cambiando hasta que se transformó en software propietario. En octubre de 1999, un grupo de desarrolladores de OpenBSD (liderados por el inefable Theo de Raadt) comenzaron a trabajar sobre una versión libre del programa original y así nació OpenSSH (acá está la historia). Actualmente OpenSSH es la implementación libre más conocida del protocolo SSH y hay paquetes disponibles para todas las distribuciones *nix.
OpenSSH incluye los siguientes programas:

  • ssh: es el cliente que se conecta, inicia y mantiene la sesión remota. Su sintaxis básica es ssh usuario@servidor
  • scp: sirve para copiar archivos desde la máquina local hacia la máquina remota. Su sintaxis básica es scp miarchivo usuario@servidor.
  • sftp: se usa para la transferencia de archivos en forma interactiva, similar a como lo hace ftp, pero usando un túnel SSH.
  • sshd: el demonio SSH

Hacia 1996 SSH fue aceptado como protocolo estandar por la IETF.

Instalación
Como ya mencioné, hay disponibilidad de paquetes de OpenSSH para todas las distribuciones *nix, por lo que bastaría con entrar a nuestro repositorio e instalarlo. En caso de no existir un paquete, bueno, hay que descargar el código fuente y compilarlo.

Configuración
Hecha la instalación pasemos a la parte de configuración.
Dentro del directorio /etc/ssh/ se encuentra el archivo sshd_config, que controla la configuración general de OpenSSH; en este archivo editamos los siguientes parámetros (las líneas que comienzan con # son comentarios):


####################
#### sshd_config
#### Enero - 2008
####################

# De manera predeterminada SSH usa el puerto 22.El cambio es opcional

Port 1604
# Especifica la familia de direcciones a usar.
# 'any' , 'inet' (para IPv4) o 'inet6' (para IPv6)

AddressFamily any
# Versión del protocolo SSH a usar.

Protocol 2
# Tiempo de espera a que el usuario inicie la sesión normalmente.En segundos.

LoginGraceTime 20
# Permitir que sshd controle los permisos de archivos y el
# directorio home del usuario antes de aceptar la sesión.

StrictModes yes
# Máximo número de intentos de autentificación por conexión.

MaxAuthTries 2
# Autentificación por contraseña de usuario

PasswordAuthentication yes
# Permitir el ingreso de usuarios con contraseñas vacías

PermitEmptyPasswords no
# Permitir que root pueda iniciar sesión en forma remota

PermitRootLogin no
# Permitir que se puedan correr aplicaciones gráficas en forma remota

X11Forwarding no
# Imprimir el contenido de un archivo antes que el usuario se autentifique

Banner /etc/motd
# Imprimir el Message Of The Day (MOTD)

PrintMotd no
# Loggear información adicional cuando el usuario inicia una sesión.

PrintLastLog yes
# Pasar privilegios del proceso creado al usuario que inició la sesión

UsePrivilegeSeparation yes
# Tiempo de espera en segundos para solicitar respuesta de un cliente inactivo

ClientAliveInterval 15
# Cantidad de envíos de solicitud de respuesta del cliente.
# Si no hay respuesta y pasada la cantidad la sesión se cierra.

ClientAliveCountMax 3
# Cantidad de conexiones concurrentes sin autentificar por dirección IP.
# Las conexiones adicionales son rechazadas hasta una autentificación correcta.

MaxStartups 2
# Usuarios que pueden iniciar sesión en forma remota

AllowUsers daniel

####################

Algunas aclaraciones:

  • Cambiar el número de puerto por otro evita que los scripts automatizados de crackeo localizen nuestro servidor en la Internet. El cambio es opcional.
  • Como dije al principio, por medio de SSH es posible ejecutar aplicaciones gráficas que se encuentren en el servidor. La configuración del parámetro X11Forwarding permite (o niega) esta característica.
  • El método de autentificación en OpenSSH es variado, siendo el más sencillo usar el par usuario/contraseña (usuario definido en el servidor). Otros métodos (como el de claves públicas) pueden ser presentados en otra instancia de este mini-howto.
  • Si el servidor tiene definido varios usuarios, se puede seleccionar cuales de ellos van a tener acceso remoto por medio del parámetro AllowUsers. Recomiendo la lectura del manual para conocer su potencia.
  • OpenSSH no cierra sesiones inactivas ni se puede configurar para que realice algo parecido. Para ello hay que definir la variable TMOUT del shell (está en bash y ksh).


Clientes

Siendo SSH un protocolo ya establecido, existen clientes de SSH para casi todos los sistemas operativos conocidos, solamente basta buscar en Google.
Uno de los más conocidos es PuTTY, disponible para las plataformas Windows y *nix y existe una versión llamada PuTTY Portable que puede ejecutarse desde un pendrive, CD o cualquier otro dispositivo transportable.
La siguiente es una imagen que muestra a PuTTY en acción:

 

PuTTY en accion


Para los *nix tenemos en Konqueror el componente FISH (basta con colocar en la barra de direcciones fish://usuario@servidor), también Midnight Commander trae su "conexión por sHell" o en una consola se puede usar el cliente ssh de la manera tradicional: ssh usuario@servidor.

 



Final. Es esto o mirar Utilísima el sábado en la noche.

Saludos

Tags:

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ChispoX
Eee daniel q buen HOWTO xD

Eee daniel q buen HOWTO xD

Enviado por ChispoX (no verificado) el Vie, 01/02/2008 - 19:53.
Imagen de yojota
Gracias

Gracias dany pero alguien sabe como puedo hacer para que solo se pueda conectar un solo usuario con una sola passd o algo por el estilo... 

yojota

Enviado por yojota el Jue, 14/02/2008 - 11:17.
Imagen de daniel
AllowUsers

es la respuesta. Podés ver un poco más de AllowUsers en la página del manual de sshd_config
Estoy preparando un mini-HowTo acerca de grupos, su y sudo para complementar el asunto del servidor SSH.
Saludos

Enviado por daniel el Jue, 14/02/2008 - 11:55.
Imagen de yojota
Gracias

Listo lo vamos a probar el finde

sino nunca mas me voy a poner a estudiar jajaja 

yojota

Enviado por yojota el Jue, 14/02/2008 - 19:00.
Imagen de daniel
Bug en paquete OpenSSL de Debian

El día 13 de mayo se dio a conocer en distintos websites (LWN.net y Barrapunto entre otros) la noticia acerca de la existencia de una debilidad criptográfica en los paquetes OpenSSL de Debian. Este fallo afecta a la distribución Debian y a todas las que derivan de ella. Transcribo de Bugtraq:

" ... This is a Debian-specific vulnerability which does not affect other operating systems which are not based on Debian. However, other systems can be indirectly affected if weak keys are imported into them. ..."

En Kriptópolis explican cómo surgió este fallo en el paquete de Debian.

Los paquetes que solucionan este fallo ya están disponibles.

Saludos

Enviado por daniel el Vie, 16/05/2008 - 13:41.

Inicio de sesión

Comentarios

Fotos previas USL

     

Distribuir

Distribuir contenido

Encuesta