You are on page 1of 18

Curso avanzado de Linux

Rafael Varela Pet

Unidad de Sistemas
rea de Tecnologas de la Informacin y Comunicaciones
Universidad de Santiago de Compostela

Curso avanzado de GNU/Linux


Curso avanzado Linux

Administracin remota con


SSH

Curso avanzado de GNU/Linux


SSH - Introduccin

SSH: Secure SHell


Dos versiones del protocolo: SSH1 y SSH2
SSH1 es inseguro, slo se debera usar en
circunstancias especiales
OpenSSH:
Implementacin libre de SSH
Dos ramas de desarrollo. Una para OpenBSD y otra
portable para diversos S.O.

Curso avanzado de GNU/Linux


OpenSSH

Comandos bsicos: ssh, scp, sftp


Sustituyen a rlogin/telnet, rcp y ftp
Servidor: sshd
Otras utilidades:
ssh-add, sftp-server, ssh-keygen, ssh-agent y ssh-
keyscan

Curso avanzado de GNU/Linux


OpenSSH. Autentificacin

keyboard-interactive: mtodo genrico para casos


en que se necesiten datos suministrados por el
usuario. Mtodos soportados:
password
PAM (Pluggable Authentication Modules)
Autentificacin con clave pblica: cada usuario
genera un par de claves pblica/privada. Se
autentican depositando su clave pblica en el
servidor
Curso avanzado de GNU/Linux
SSH Clave pblica

Primero es necesario generar nuestro par de


claves con el comando sshkeygen
Depositamos la clave pblica en el servidor
remoto, en ~/.ssh/authorized_keys
Disponemos de un script para automatizarlo:
sshcopyid
Desactivar autentificacin con usuario/contrasea
en/etc/ssh/sshd_config
Curso avanzado de GNU/Linux
SSH Clave pblica

Una clave privada sin proteger puede representar


un problema de seguridad
Si cae en manos ajenas otro puede autenticarse
sin necesidad de usuario/contrasea
Ms seguro usar claves cifradas:
Especificando una clave al llamar a sshkeygen
Usando posteriormente sshkeygenp

Curso avanzado de GNU/Linux


OpenSSH - Agente

ssh-agent: gestiona las claves privadas cuando


usamos autentificacin de clave pblica
ssh-add: incorpora identidades al agente ssh
Inicio automtico en la sesion X-Window:
Aadir use-ssh-agent a /etc/X11/Xsession.options

Curso avanzado de GNU/Linux


OpenSSH - Tneles X-Window

Aplicaciones X a travs del tnel SSH


Habilitar en el servidor, en
/etc/ssh/sshd_config
Habilitarlo al iniciar la conexin:
sshXusuario@host

Curso avanzado de GNU/Linux


OpenSSH - Uso no interactivo

Podemos lanzar comandos sin invocar una shell:


sshusuario@hostdfh

Restricciones en ~/.ssh/authorized_keys:
from=host1,host2,command=/bin/dfkKEY
user@host

Curso avanzado de GNU/Linux


OpenSSH. Tneles locales

Ejemplo:
sshL2143:pop.usc.es:143usuario@servidor

Redirige el puerto local 2143 al 143 en pop.usc.es


a travs de servidor

Curso avanzado de GNU/Linux


OpenSSH -Tneles remotos

Ejemplo:
sshR8080:www.usc.es:80usuario@servidor

Abre el puerto 8080 en servidor. Las conexiones


a ese puerto se redirigen al puerto 80 de
www.usc.es a travs de la mquina local

Curso avanzado de GNU/Linux


OpenSSH - Tneles

Al establecer el tnel tambin obtenemos una


shell en el servidor remoto
La opcin -N permite no ejecutar nada en el
servidor SSH. Ejemplo:
sshNR8080:www.usc.es:80usuario@servidor

La opcin -f hace que el proceso ssh se ejecute en


segundo plano. Ejemplo:
sshfNR8080:www.usc.es:80usuario@servidor

Curso avanzado de GNU/Linux


OpenSSH Proxy SOCKS

Podemos obtener ms flexibilidad haciendo que


OpenSSH funcione como proxy SOCKS
Ejemplo:
sshD1080usuario@servidor

Curso avanzado de GNU/Linux


VPN basada en SSH

Permite unir dos redes de forma segura


La opcin PermitTunnel en sshd_config
establece:
Si el servidor SSH admite esta funcionalidad
Qu tipo de trfico (nivel 2 o 3)
No es demasiado eficiente. Adecuado para
montajes temporales

Curso avanzado de GNU/Linux


VPN basada en SSH

Utilidad:
No hay que tunelizar puertos independientes
Permite canalizar trfico no orientado a conexin:
ICMP, UDP
Emplea el pseudodispositivo de red tun
Preparativos:
#aptitudeinstallumlutilities
#echo1>/proc/sys/net/ipv4/ip_forward

Curso avanzado de GNU/Linux


VPN basada en SSH

Ejemplo. Conexin punto a punto :


En el cliente:
#tunctlttun0
#sshfw0:1servidor_sshtrue
#ifconfigtun0192.168.19.1\
pointopoint192.168.19.2\
netmask255.255.255.0
En el servidor:
#tunctlttun1
#ifconfigtun1192.168.19.2\
pointopoint192.168.19.1\
netmask255.255.255.0

Curso avanzado de GNU/Linux


Resolucin problemas

Opcin -v muestra informacin sobre la conexin


Repitiendo la opcin (hasta 3 veces) obtenemos
ms datos
Ejemplo:
sshvvusuario@host

Curso avanzado de GNU/Linux

You might also like