Term y la seguridadEn esta sección puntualizaré algunos aspectos sobre la seguridad
usando TERM. Los problemas serán expuestos junto a un
mecanismo para aumentar su seguridad.
trsh.trsh es inseguro si se usa para acceder al Linux local desde
el sistema remoto. El problema con TERM y sus clientes es que
en el otro extremo de la comunicación el superusuario puede ejecutar
programas de TERM.
Esto también indica que el ``root'' del otro sistema puede ejecutar
trsh y entrar con los privilegios del propietario de la conexión
fácilmente. Si este propietario es ``root'' la habremos liado.
La solución es simple: poner la siguiente línea en el fichero termrc
de la máquina local:
denyrsh on
Con esto, nadie podrá usar trsh desde el sistema remoto para entrar
en el local. Cuando tú mismo quieras entrar, podrás hacerlo aún usando
telnet y puertos redirigidos.
txconn y xauthtxconn no es terriblemente seguro; cualquiera puede conectar al
servidor local con term y hacer de todo. Si te preocupa, puedes
usar xauth para establecer las autorizaciones de acceso. Mira el
ejemplo de la siguiente sección.
sxpc, xhost y xauthsxpc en combinación con xhost + es muy peligroso si no usas
xauth.
Usar xauth es muy importante para mantener la seguridad cuando se usa
sxpc. Si no usas xauth al usar sxpc, será muy peligroso
tener xhost +. Algunos peligros son:
:-( )xauth forma parte de las versiones R4 y posteriores de X. Aquí
describiremos cómo usar básicamente el xauth. Esta configuración es
vulnerable al husmeo de la red, pero puede convivir con ella fácilmente.
NOTA: cuando uses xauth asegúrate que la variable
$DISPLAY no tiene el valor localhost (o
localhost:loquesea). Si tu variable $DISPLAY vale
localhost, los clientes no podrán encontrar la información de
autorización. Lo mejor es usar el nombre real de la máquina. Si sigues las
instrucciones de compilación del README, y compilas sin la variable
-DNOGETHOSTNAME puede que todo funcione.
Sea C la máquina que ejecuta clientes, y D la máquina que pone la pantalla.
Primero, elige una ``clave'', de hasta 16 pares de dígitos hexadecimales
(números del rango 0-9 y a-f). Necesitarás proporcionar esta clave en
el lugar de <clave> en este ejemplo:
En C:
% xauth
xauth: creating new authority file $HOME/.Xauthority
Using authority file $HOME/.Xauthority
xauth> add Nombre_de_C:8 MIT-MAGIC-COOKIE-1 <clave>
xauth> exit
En D:
% xauth
xauth: creating new authority file $HOME/.Xauthority
Using authority file $HOME/.Xauthority
xauth> add Nombre_de_D/unix:0 MIT-MAGIC-COOKIE-1 <clave>
xauth> add Nombre_de_D:0 MIT-MAGIC-COOKIE-1 <clave>
xauth> exit
Cuando inicies el servidor X en D deberías poner el parámetro
-auth $HOME/.Xauthority. Puede que necesites crear o
editar el fichero $HOME/.xserverrc para controlar el
inicio del servidor X. Por ejemplo:
#!/bin/sh
exec X -auth $HOME/.Xauthority $*
Asegúrate que el fichero .Xauthority es legible sólo por C y
por D.