TERM Como
Patrick Reijnen,
[email protected]
Traducci�n de Alfonso Belloso,
[email protected]
v1.0, 1 Enero de 1995
Lo que sigue es una gu�a detallada de configuraci�n del programa de
comunicaciones term en Linux.
______________________________________________________________________
�ndice General:
1. Informaci�n
1.1. Copyright statement
1.2. DISCLAIMER
2. Introducci�n
2.1. Sobre este Documento
2.2. �Qu� es el TERM?
3. C�mo funciona el TERM
3.1. Nomenclatura
4. Poniendo a punto las cosas.
4.1. Qu� necesitas tener de antemano.
4.2. Explicaci�n de conceptos.
4.2.1. ``Sharing'' (compartici�n).
4.2.2. `` Full TERM networking '' (conexi�n de red completamente
TERM)
4.3. Compilaci�n del TERM
4.3.1. Construir el term hasta la versi�n 1.15
4.3.2. Construir el term , versiones 1.16 hasta 1.19
4.3.3. Construir el TERM , versiones 2.0.0 y superiores
4.4. client.a, libtermnet.a, libtermnet.sa, libtermnet.so
4.5. Estableciendo variables de entorno.
4.6. Probar el TERM
4.7. TERM y los programas de comunicaciones.
4.7.1. kermit
4.7.2. seyon
4.8. Hacer un enlace transparente.
4.9. Ejecutar linecheck
4.10. Prueba a correr el TERM
4.11. Terminar tu conexi�n term
4.12. C�mo eliminar TERM de tus particiones.
4.13. Optimizaci�n de la conexi�n
4.14. Resoluci�n de problemas
5. Clientes TERM
6. X y TERM
7. tredir
7.1. � tredir puede morder!
7.2. Trucos tontos de tredir
7.2.1. X window
7.2.2. Correo con TERM
8. tudpredir
9. Automatizando las cosas.
10. Portando software para usarlo con term .
10.1. Portar y compilar los fuentes.
10.2. Termificar ( termify ).
11. Clientes term .
11.1. Clientes term disponibles en los servidores ftp .
11.2. El paquete termnet .
11.3. Solicitado, pero a�n no soportado:
12. Term y la seguridad
12.1. trsh .
12.2. txconn y xauth
12.3. sxpc , xhost y xauth
13. Cosas a recordar
14. Estabilidad de las versiones de term
15. Tabla de velocidad de term .
16. Pistas y trucos encontrados en la red
17. Otras Cosas
18. Reconocimientos
19. Anexo: El INSFLUG
______________________________________________________________________
1. Informaci�n
1.1. Copyright statement
This document may be distributed freely as a whole in any form and
free of charge. Parts of this document may be distributed, provided
that this copyright message is included and the reader is informed
that this is not the full HOWTO document. Furthermore , there is to be
a pointer as to where the full document can be obtained. Specifically,
it may be included in commercial distributions, without prior consent.
However, I would like to be informed of such usage.
This HOWTO may be translated into any language, whatsoever, provided
that you leave this copyright statement and the disclaimer intact, and
that a notice is appended stating who translated the document.
1.2. DISCLAIMER
While I have tried to include the most correct and up-to-date
information available, I cannot guarantee that usage of the
information in this document does not result in loss of data. I
provide NO WARRANTY about the information in this HOWTO and I cannot
be made liable for any consequences for any damage resulting from
using information in this HOWTO.
2. Introducci�n
2.1. Sobre este Documento
Este COMO intenta aclarar algunas de las confusiones al usar term, el
gran programa de Michael O'Reilly que permite multiplexar tu l�nea
serie y establecer una conexi�n de red. De principio a fin, los
documentos que vienen con el term son bastante buenos, y este COMO no
pretende reemplazarlos. La intenci�n de este documento es dar una
idea de fondo de c�mo trabaja el term y detallar los pasos para
conseguir algunos de los servicios de red m�s comunes trabajando bajo
term. Se debe hacer hincapi� en que este documento no cubre todo lo
que se debe saber sobre el term. Despu�s de leerlo, deber�an leerse
las manpages sobre term, ya que �stas incluyen informaci�n que no se
encuentra aqu�.
2.2. �Qu� es el TERM?
term es un programa, escrito por Michael O'Reilly,
[email protected] , que corre sobre una l�nea serie para permitir a
conexiones m�ltiples operar de forma concurrente --es decir, puedes
estar recibiendo un fichero con tu m�dem mientras trabajas en un
sistema remoto (distinto)-- a trav�s de la misma conexi�n m�dem. El
term tambi�n se puede usar para abrir ventanas de cliente X sobre una
conexi�n serie. Por medio de las utilidades tredir y tupredir de las
versiones 2.0.x y superiores del term, �ste puede proporcionar muchos
de los servicios de red ``tradicionales'': mail, news, ftp, telnet,
xarchie, etc. En esencia, term es muy parecido a otros protocolos
serie como SLIP o PPP. La ventaja de term es que puede correr
enteramente desde el espacio de usuario, sin requerir soporte del
kernel ni del sistema o administradores de red.
A diferencia de SLIP o PPP, tu m�quina no llega a tener su propia
direcci�n IP. Todo el tr�fico deber� ir dirigido al host remoto, y
ser� redirigido a tu m�quina mediante TERM.
3. C�mo funciona el TERM
Antes de experimentar con term es altamente aconsejable leer primero
este cap�tulo completo y el fichero INSTALLATION que viene con el
paquete. Tambi�n conviene echar una ojeada a las p�ginas de manual de
linecheck, (term)test y term. Esto te ayudar� a trabajar m�s f�cil y
m�s r�pido.
3.1. Nomenclatura
Asumo que est�s llamando a un sistema a trav�s de alg�n tipo de
servidor de terminal. Utilizo los t�rminos ``local'' y ``remoto'' para
referirme a los sistemas conectados en casa y en la red
respectivamente (a no ser que los use para referirme a alguna otra
cosa :-).
term proporciona a la m�quina local, que no tiene conexi�n de red,
pero que est� conectada por una l�nea serie a una m�quina remota, la
cual a su vez est� conectada a una red, servicios de red. Observemos
c�mo una m�quina con una conexi�n de red ``tradicional'' proporciona
estos servicios.
Primero el usuario invoca un programa, como telnet o ftp, que requiere
un servicio de red. Lo que estos programas hacen es hacer una llamada
del sistema solicitando servicios de red. El sistema operativo obtiene
entonces estos servicios a trav�s de su interface de red (por ejemplo,
manda y recibe paquetes sobre la ethernet).
SLIP y PPP hacen exactamente esto, convirtiendo la l�nea m�dem en un
interface de red, lo cual en principio no es diferente de una
ethernet. La pega est� en que estos protocolos hacen de la m�quina
conectada por m�dem parte de la red, justo como cualquier otra
m�quina. Esto exige toda la tarea administrativa asociada al hecho de
ser un nodo de la red (m�s a�n, ya que el enlace m�dem tambi�n hay que
administrarlo).
En ausencia de una conexi�n de red como SLIP o PPP, �qu� es lo que se
hace t�picamente?. Bien, llamas a tu m�quina conectada a la red, lees
tu correo, tus news, etc, si necesitas un fichero, primero te lo
transfieres a la m�quina remota y entonces te lo env�as a la m�quina
local usando el kermit o alg�n otro programa de comunicaciones.
Esto es una pena, especialmente porque en realidad s�lo puedes hacer
que una cosa use el enlace m�dem a la vez. La idea que hay detr�s del
term es b�sicamente automatizar y multiplexar este proceso. El term
se invoca en ambas m�quinas, local y remota, y los dos procesos se
comunican entre s� por la l�nea m�dem. Cuando necesitas un servicio
de red, haces una solicitud al daemon del term local, el cual
transmite la petici�n al daemon del term en la m�quina remota
(conectada a la red). El resultado se devuelve a trav�s de la l�nea
m�dem.
Para ser m�s precisos, pongamos que quieres conseguir un fichero por
ftp. Primero necesitas una versi�n de ftp que pueda hablar con term.
Invocas termftp como lo haces con un ftp normal, pongamos 'termftp
nethost.gov', pero esta versi�n especial hace su solicitud de red al
daemon del term local en vez de al kernel. El term local transfiere
esta petici�n, a trav�s de la l�nea del m�dem, al term remoto, el cual
establece una conexi�n con nethost.gov, y transmite los datos de
vuelta sobre el enlace m�dem.
term es lo suficientemente listo como para tener muchas cosas
diferentes funcionando a la vez, por lo que puedes tener varias
sesiones de red distintas usando el mismo enlace m�dem; por ejemplo
puedes estar dentro de otra m�quina lejana v�a termtelnet mientras
contin�a la transferencia del termftp.
Si esto es demasiado abstracto (o engorroso) no te preocupes; la
informaci�n importante que hay que extraer de esta secci�n es que hay
dos copias del term corriendo, una a cada lado del enlace m�dem.
4. Poniendo a punto las cosas.
4.1. Qu� necesitas tener de antemano.
Antes de comenzar a construir y usar el TERM debes asegurarte de que
tienes incluido el soporte TCP/IP en el kernel. Adem�s, aseg�rate de
que est� activo el interface loopback de TCP/IP. Si �ste es tu caso,
puedes seguir con el resto de esta secci�n.
4.2. Explicaci�n de conceptos.
En las versiones nuevas del term han aparecido dos conceptos nuevos.
Estos dos conceptos se explican en los siguientes apartados.
4.2.1. ``Sharing'' (compartici�n).
A partir de la versi�n 1.16 aparece el concepto de compartir la
conexi�n TERM con otros usuarios. Esto significa que cuando habilitas
la caracter�stica ``shared'' (compartida), m�s gente podr� usar la
misma conexi�n TERM que t� est�s usando, es decir, cuando est�s
trabajando en tu m�quina remota a trav�s de tu conexi�n TERM (has
usado trsh en tu m�quina local para acceder, por ejemplo) otra persona
en tu m�quina local podr� usar la misma conexi�n TERM al mismo tiempo
para transmitir un fichero con ftp a su cuenta en tu m�quina local
desde un ftp site de cualquier lugar del mundo.
Cuando deshabilitas la caracter�stica ``shared'' (compartida) (o sea,
ejecutas TERM en modo privado) t� y solo t� (sin contar a root :-)
puede usar la conexi�n TERM.
Por supuesto, s�lo necesitas instalar el ``shared'' TERM en el extremo
en el que quieres permitir a la gente usar la misma conexi�n TERM que
t� est�s usando. As� que, si otra gente tiene cuenta en tu m�quina
local y quieren usarlo desde alg�n lugar de tu red remota habilitas la
caracter�stica shared en el extremo remoto de tu conexi�n TERM. De
esta forma toda esta gente puede acceder a tu m�quina a la vez
compartiendo la misma conexi�n TERM entre s� y contigo mismo. (NOTA:
el primer ejemplo necesitaba habilitar la caracter�stica shared en el
extremo local de la conexi�n TERM).
NOTA para la instalaci�n como root:
Cuando instalas TERM como root, primero debes crear un grupo TERM
(antes de compilar) sin miembros, a�adiendo la siguiente l�nea en
/etc/group:
term::16:root
o cualquier otro GID no usado en lugar del 16 si �ste ya est� en uso.
Despu�s de compilar e instalar coloca al TERM y sus clientes el SGID
term:
chgrp term <cliente_term>
chmod g+s <cliente_term>
Tambi�n cualquier programa que hagas utilizable con TERM debe tener
SGID TERM.
4.2.2. `` Full TERM networking '' (conexi�n de red completamente
TERM)
A partir de la versi�n 2.0.0 de TERM se usa el concepto full TERM
networking (conexi�n de red totalmente TERM). Cuando tu �nica conexi�n
con el mundo exterior es una conexi�n TERM, tienes una red full TERM
(completamente TERM) y deber�as compilar el TERM con full TERM
networking. En este caso se ha puesto un fichero llamado termnet en
el directorio compartido. Esto dice a TERM que tu �nica conexi�n con
el exterior es a trav�s del TERM.
Cuando tambi�n tienes alg�n otro tipo de conexi�n de red adem�s de los
programas (pasados a TERM) de la conexi�n TERM, primero intenta que
realicen su trabajo usando esta otra conexi�n. Si �sta falla entonces
se invoca el TERM y se intenta realizar el trabajo a trav�s de la
conexi�n TERM. Para aclarar esto, ahora se da un ejemplo en el que el
se usa telnet hecho utilizable en TERM. Este telnet deber�a funcionar
con y sin TERM.
telnet localhost
no usa el TERM para conectar, pero
telnet zeus.cs.kun.nl
usar� el TERM s�lo si no tienes otro tipo de conexi�n de red.
El full TERM networking tambi�n implica el mentir sobre el nombre del
host local, diciendo que es el host remoto en su lugar. Adem�s,
provoca que bind (0) act�e siempre en el host remoto. En esencia hace
que muchos programas puedan usarse sin ir a trav�s del TERM mientras
el TERM est� corriendo. Desafortunadamente, la mayor�a de programas y
demonios UDP no funcionar�n con TERM sin estos inc�modos trucos.
4.3. Compilaci�n del TERM
Si tienes suerte esto s�lo debe implicar un make. Sin embargo, lo m�s
probable es que necesites hacer m�s. Debido a nuevas opciones en las
versiones nuevas del TERM (sharing, configure) ahora es un poco m�s
complicado crear el ejecutable del TERM. Hoy en d�a pueden seguirse un
par de caminos para obtener el ejecutable.
Para cubrir todos los caminos a seguir con los que puede construirse
el TERM vamos a dividir esta secci�n en tres partes:
1. Construir el TERM hasta la versi�n 1.15
2. Construir el TERM, versiones 1.16 hasta 1.19
3. Construir el TERM, versiones 2.0.0 y superiores
4.3.1. Construir el term hasta la versi�n 1.15
Para estas versiones del term, la compilaci�n no deber�a implicar
ejecutar m�s que estos comandos
make DO=install OS-type
make installman
Encontrar�s el term, sus clientes y las p�ginas de manual (man)
c�modamente construidas e instaladas y listas para usar despu�s de
esto.
Adem�s, necesitar�s crear un directorio $HOME/term. Este directorio lo
usar� el term para buscar su fichero termrc.
La �nica cosa que puedes querer hacer es cambiar algunos de los paths
en el Makefile, o cambiar alguna opci�n del compilador.
4.3.2. Construir el term , versiones 1.16 hasta 1.19
Para construir el term ahora puedes elegir una de las siguientes
formas:
1. Como un usuario normal, construir el term en modo privado
2. Como un usuario normal, construir el term en modo shared
3. Como root, construir el term en modo privado
4. Como root, construir el term en modo shared
Abajo se explicar� c�mo habilitar/deshabilitar la opci�n shared
durante la compilaci�n del term
1. Eres un usuario normal (sin acceso de root) y NO quieres COMPARTIR
(SHARE) la conexi�n term con otros usuarios.
Como usuario que no quiere compartir la conexi�n term con otros
usuarios deber�as hacer lo siguiente para construir el term:
make DO=install OS-type
make installman
Despu�s de esto, el term, sus clientes y las p�ginas de manual est�n
generados e instalados.
Adem�s, necesitar�s crear un directorio $HOME/term. Este directorio lo
usar� el term para buscar su fichero termrc.
La �nica cosa que puedes querer hacer es cambiar algunos de los paths
en el Makefile o cambiar alg�n par�metro del compilador.
2. Eres un usuario normal (sin acceso de root) y SI quieres COMPARTIR
(SHARE) la conexi�n term con otros usuarios.
Como usuario que quiere compartir la conexi�n term con otros
usuarios deber�as hacer lo siguiente para construir el term:
make DO=installshare USERSHARE=$HOME/term OS-type
make installman
Despu�s de esto, el term, sus clientes y las p�ginas de manual estar�n
compiladas e instaladas.
Adem�s, tendr�s un directorio $HOME/term (por defecto) con permisos
drwxrwxr-x. En este directorio encontrar�s al menos el socket usado
por el term para sus conexiones (tmp/private/socket=).
3. Eres root y NO quieres COMPARTIR (SHARE) la conexi�n term con otros
usuarios.
Como root que no quiere compartir la conexi�n term con otros
usuarios deber�as hacer lo siguiente para construir el term:
make DO=install OS-type
make installman
Despu�s de esto, el term, sus clientes y las p�ginas de manual estar�n
compiladas e instaladas.
Adem�s, tendr�s un directorio llamado /usr/local/lib/term (por
defecto) con permisos drwxr-xr-x. En este directorio encontrar�s al
menos el socket usado por el term para sus conexiones (tmp/pri�
vate/socket=).
4. Eres root y quieres COMPARTIR (SHARE) la conexi�n term.
Primero, aseg�rate de haber le�do la secci�n sobre ``sharing''
anterior.
Como root que quiere compartir la conexi�n term deber�as hacer lo
siguiente:
make DO=installshare OS-type
make installman
Despu�s de esto, el term, sus clientes y las p�ginas de manual estar�n
compiladas e instaladas.
Adem�s, tendr�s un directorio llamado /usr/local/lib/term (por
defecto) con permisos drwxrwxr-x. En este directorio encontrar�s al
menos el socket usado por el term para sus conexiones (tmp/pri�
vate/socket=).
4.3.3. Construir el TERM , versiones 2.0.0 y superiores
Primero aseg�rate de haber le�do la secci�n sobre ``full term
networking'' de arriba.
Para las versiones de term 2.0.0 y superiores hay muchas formas de
generar el binario del term y los clientes. Todo esto puede hacerse
tanto por root como por un usuario cualquiera:
1. Generar el term en modo privado sin full term networking
2. Generar el term en modo privado con full term networking
3. Generar el term en modo shared sin full term networking
4. Generar el term en modo shared con full term networking
En estas versiones de term ha aparecido una nueva forma de compilar,
usando el script configure. Cuando se ejecuta configure �ste chequea
en que sistema operativo est�s tratando de instalar el term, si el
directorio origen est� disponible o no, y si hay puesta alguna opci�n
runtime. De acuerdo con las cosas encontradas configure crea entonces
un Makefile usando Makefile.in que se entrega con el paquete del term.
Dos de las opciones m�s importantes para configure son --root y --user
que establecen si el term ser� instalado por root o por un usuario
cualquiera. Se pueden usar otras opciones para instalar el term de la
forma que quieras (con paths no est�ndar, por ejemplo).
1. Generar el term en modo privado sin full term networking
Para generar el term de este modo necesitas ejecutar los siguientes
comandos (tanto para root como para cualquiera):
make install installman
Esto genera los binarios, instal�ndolos junto con las p�ginas de man�
ual.
2. Generar el term en modo privado con full term networking
Para generar el term de este modo necesitas ejecutar los siguientes
comandos (tanto para el root como para cualquiera):
make installnet installman
Esto genera los binarios, instal�ndolos junto con las p�ginas de man�
ual.
3. Generar el term en modo shared sin full term networking
Para generar el term de este modo necesitas ejecutar los siguientes
comandos (tanto para el root como para cualquiera):
make share installman
Esto genera los binarios e instala estos binarios y las p�ginas de
manual.
4. Generar el term en modo shared con full term networking
Para generar el term de este modo necesitas ejecutar los siguientes
comandos (tanto para el root como para cualquiera):
make share installnet installman
Esto genera los binarios e instala estos binarios y las p�ginas de
manual.
4.4. client.a, libtermnet.a, libtermnet.sa, libtermnet.so
Con el term se suministra una librer�a con funciones para clientes
term.
Hasta la versi�n 1.16 esta libreria se llamaba client.a. Durante la
compilaci�n de term se generaba esta librer�a, que despu�s se usaba en
la compilaci�n de los clientes term. No se instalaba en otro
directorio.
A partir de la versi�n 1.16 se cambi� el nombre de la librer�a por
libtermnet.a. Hasta la versi�n 1.19 esta librer�a se crea en el
directorio term y despu�s se usa durante la compilaci�n de los
clientes term. No se instala en otro directorio.
A partir de la versi�n 2.0.0, adem�s de libtermnet.a tambi�n se crean
libtermnet.so y libtermnet.sa (libreria shared y librer�a exported
initialized) durante la instalaci�n del paquete term. Durante la
instalaci�n de todas las partes del paquete, estos tres ficheros de
librer�as se instalan en el directorio /usr/local/lib (por defecto).
Y despu�s se hace un enlace desde libtermnet.so.2 a
libtermnet.so.2.x.x.
Finalmente se ejecuta ldconfig para crear los enlaces necesarios y el
cach� (para uso del enlazador din�mico, ld.so) para las librer�as
compartidas m�s recientes que se encuentran en los directorios
especificados en la l�nea de comandos, en el fichero /etc/ld.so.conf,
y en los directorios permitidos (/usr/lib y /lib).
Si la instalaci�n se hace correctamente, los tres ficheros de librer�a
podr�n ser usados por los clientes de term que son generados con
librer�as din�micas en lugar de est�ticas. Estas librer�as tambi�n se
pueden usar ahora para portar tu software propio a fin de poderlo usar
con el term (ver m�s adelante).
4.5. Estableciendo variables de entorno.
term reconoce un par de variables de entorno que pueden definir los
usuarios. Las tres primeras de �stas que se explicar�n son:
� TERMDIR
� TERMSHARE
� TERMMODE
Definiendo estas variables puedes controlar el modo en que se ejecuta
el term.
Para versiones del term hasta la 1.15 s�lo es importante la variable
TERMDIR (estas versiones no reconocen el modo shared). Para estas
versiones TERMDIR se deber�a definir como sigue:
setenv TERMDIR $HOME # csh o tcsh
export TERMDIR=$HOME # bash
A partir de la versi�n 1.16 term tambi�n reconoce las variables
TERMSHARE y TERMMODE. Con estas variables se le puede indicar al term
que funcione en modo privado o en modo compartido. Explicaremos como
definir las variables para ambos modos.
1. Ejecutar term en modo privado puede hacerse definiendo las
variables TERMDIR y TERMMODE de la siguiente forma:
Para csh o tcsh:
setenv TERMDIR $HOME
setenv TERMMODE 0
Para bash:
export TERMDIR=$HOME export TERMMODE=0
2. Si quieres usar el term en modo compartido hay dos formas de
definir las variables:
a. Si term se instala como un programa SUID s�lo se debe definir
TERMMODE. (README en el paquete del term).
setenv TERMMODE 'numero' # csh o tcsh
export TERMMODE='numero' # bash
En 'numero' debe ponerse 1 si se est� usando una versi�n del term
entre la 1.16 y la 1.19 (README.share en el paquete del term) y 2
si se est� usando la versi�n de term 2.0.0 o superior (README.secu�
rity en el paquete del term).
b. Si term se instala como un programa SGID las variables se deben
definir del siguiente modo:
Para csh o tcsh:
setenv TERMMODE 1
setenv TERMDIR /usr/local/lib/term
setenv TERMSHARE $TERMDIR
Para bash:
export TERMMODE=1
export TERMDIR=/usr/local/lib/term
export TERMSHARE=$TERMDIR
Poniendo las variables de esta forma har� posible que se ejecuten
clientes viejos (linkados con una versi�n antigua del client.a) en
modo compartido (shared).
A partir de la versi�n 2.0.0, term tambi�n reconoce la variable
TERMSERVER. Se necesita definir esta variable cuando se tienen varios
m�dems y mas de una conexi�n a la vez. Para especificar que conexi�n
usar, se debe ejecutar el term con un nombre de servidor:
nohup term -v /dev/modem1 Connection1 & nohup term -v /dev/modem2 Connection2 &
Los usuarios deber�an definir la variable TERMSERVER con el nombre de
conexi�n que quieran usar:
setenv TERMSERVER Connection1 # csh o tcsh
export TERMSERVER=Connection2 # bash
4.6. Probar el TERM
Haz un make test (o make termtest para versiones nuevas del term) para
generar el demonio de prueba del term. (term)test funciona ejecutando
dos copias del term en tu sistema, una ``local'' y una ``remota''.
Ambas leer�n tu termrc; de modo que puedas ajustar su comportamiento.
Ahora ejecuta (term)test. Deber�as poder hacer un trsh y un tupload.
Prueba con:
tupload ./term /usr/tmp
deber�as de conseguir tener una copia del binario term en /usr/tmp ).
La salida del term local deber�a aparecer en local.log y la remota en
remote.log. Puedes ejecutar term con el par�metro -d255 para poder
registrar lo que ocurra en estos ficheros, o habilitar el debugging en
tu termrc.
NOTA: Ejecuta el test como ./test para evitar el test del sistema.
4.7. TERM y los programas de comunicaciones.
Antes de poder usar term, tienes que establecer una conexi�n v�a m�dem
usando un programa de comunicaciones como kermit o seyon. En la
documentaci�n del programa encontrar�s qu� tienes que hacer para
conectarte con la m�quina remota.
Cuando hayas establecido la conexi�n y quieras ejecutar term,
necesitas suspender o salir del programa de comunicaciones sin cerrar
la conexi�n.
A continuaci�n explicar� c�mo hacer esto con algunos programas de
comunicaciones.
4.7.1. kermit
Iniciar term cuando se usa kermit es f�cil. En el prompt local de
kermit se teclea ``suspend'', de modo que volver�s al prompt de Linux.
Desde este prompt puedes ya establecer la conexi�n term.
4.7.2. seyon
Una forma de iniciar chequeo de l�nea o TERM cuando usas seyon es
poner linecheck y TERM en el men� Transfer (controlado por el fichero
$HOME/.seyon/protocols).
A�ade al fichero $HOME/.seyon/protocols lo siguiente:
"Line check" "$cd /tmp; linecheck"
"Term" "$term -c off -w 10 -t 150 -s 38400 -l $HOME/tlog"
Ahora, cuando inicies linecheck o term en la m�quina local, selecciona
en el men� Transfer el �tem ``Line Check'' o ``Term''.
Por supuesto, tambi�n podr�as usar el bot�n de comando de shell y
teclear en el cuadro de di�logo que se te abrir� los comandos
linecheck o term. Esto mismo hace redirecci�n autom�tica al comando.
4.8. Hacer un enlace transparente.
Presumiblemente, puedes establecer una conexi�n m�dem entre tus hosts
local y remoto. T�picamente lo que haces es, llamar a alg�n tipo de
servidor de terminales y conectas con tu host remoto a trav�s de �l.
Tambi�n sueles usar para ello software de terminal, como kermit o
seyon para comunicar con tu m�dem (los ejemplos de este documento usan
el kermit, ya que es el que usa el autor). Si est�s teniendo problemas
con el m�dem, o con el software de terminal, echa una ojeada al Serial
HOWTO; esto deber�a ayudarte.
Una vez establecido el enlace, querr�s hacerlo lo m�s transparente
posible. Comprueba los comandos en el servidor de terminal (help o ?
suele ser un buen comienzo). Busca la opci�n 8 bits siempre que sea
posible. Esto puede implicar cambiar la forma en que accedes a tu
sistema, por ejemplo, si el servidor usa rlogin, tendr�s que usarlo
poniendo el par�metro -8 para hacerlo transparente.
Especialmente vigila el control de flujo por xon/xoff. No lo
necesitas. Intenta habilitar el control de flujo por hardware,
rts/cts. Puede que tengas que mirar la documentaci�n de tu m�dem para
saber c�mo configurarlo para hacer comunicaciones rts/cts de 8 bits.
4.9. Ejecutar linecheck
ATENCI�N: En algunos documentos las opciones de l�nea de comandos para
linecheck se citan en orden incorrecto. He comprobado esto y he
hallado que el orden de las opciones que menciono aqu� abajo es el
correcto.
NOTA: a partir de la versi�n de term 2.3.0 linecheck ya no necesitar�
tener el nombre del fichero de log en la l�nea de comandos. Escribir�
su salida al fichero linecheck.log en el directorio desde el que se
ejecute linecheck.
linecheck es un programa que se entrega con el term. Comprueba la
transparencia de un enlace, produciendo informaci�n de configuraci�n
que necesita el term para funcionar correctamente. linecheck manda
todos los 256 caracteres de 8 bits posibles sobre el enlace y verifica
que cada uno se transmite correctamente.
Hay que configurar term para manejar caracteres que no pueden ser
transmitidos por el enlace, y linecheck determina cu�les son estos
caracteres. Debes usar linecheck despu�s de haber establecido un
enlace m�dem lo m�s transparente posible. Para correr linecheck haz lo
siguiente:
1. En el sistema remoto, ejecuta linecheck linecheck.log
2. Vuelve a tu sistema local y suspende tu programa de comunicaciones
(^Z en kermit) (si no te robar� caracteres del linecheck).
3. En el sistema local ejecuta
linecheck linecheck.log > /dev/modem < /dev/modem
Cuando termine linecheck encontrar�s un conjunto de n�meros al final
de los ficheros linecheck.log. Estos son los que deber�as poner como
linecheck.log local dec�a que 'escape' era el 29 y 157. As� que, mi
termrc local escapa (evita) estos caracteres y mi termrc remoto
ninguno. Si se escapa (evita) un car�cter en un extremo, tambi�n debo
ignorarlo (ignore) en el otro; as� que, en este ejemplo, deber�a
ignorar 29 y 157 en mi sistema remoto.
Si linecheck se cuelga, prueba a usar
linecheck linecheck.log 17 19
en el sistema remoto, y
linecheck linecheck.log 17 19 > /dev/modem < /dev/modem
en el sistema local. Esto evitar� tus caracteres de xon/xoff (control
de flujo), que colgar�n tu l�nea si tienes control de flujo por
software. Si soluciona los problemas de cuelgues, tendr�s que
escapar/ignorar 17/19 en ambos termrc. Si tu servidor de terminal
tiene otros caracteres que lo cuelguen, prueba a correr lineckeck con
esos caracteres escapados como el ejemplo de arriba. Puedes marcar
esos caracteres si linecheck se cuelga. Si es este el caso, m�talo, y
luego mira en los logs. Los �ltimos caracteres transmitidos es
probable que sean los culpables. Vuelve a intentarlo escapando estos
caracteres.
En resumen, mi termrc local tiene las l�neas:
escape 29
escape 157
y mi termrc remoto tiene las l�neas:
ignore 29
ignore 157
ya que mi linecheck.log remoto dec�a que 'escape 29 y 157'.
4.10. Prueba a correr el TERM
Accede a tu sistema remoto, haciendo el enlace lo m�s transparente
posible (si no lo has hecho a�n). Arranca term en el extremo remoto.
Yo lo hago as�:
exec term -r -l $HOME/tlog -s 38400 -c off -w 10 -t 150
Vamos a desgranar las opciones una por una (ten en cuenta que con
igual facilidad podr�a poner estas opciones en mi termrc. Lo hice as�
porque evitaba tener que editar un fichero mientras pon�a a punto el
term).
exec implica destruir la shell actual, corriendo en su lugar el
programa indicado. Ejecuto las cosas con exec porque no pretendo usar
mi shell de login de nuevo; estar�a desperdiciando memoria. Si est�s
depurando el enlace y eres capaz de abortar el term remoto, puede que
no quieras hacer el exec.
La opci�n -r es necesaria s�lo en un extremo. term ver� a este extremo
como el remoto de la conexi�n (ten en cuenta que el extremo remoto del
term puede ser tu propia m�quina local). Si no usas esta opci�n en un
extremo los clientes de term se caer�n espont�neamente.
-l $HOME/tlog. Esto registra los errores en el fichero tlog en mi
directorio home. Muy �til para depurar. No hay raz�n para no ponerlo.
-s 38400 : Tengo un m�dem 14400, con compresi�n. Para ratios de
compresi�n �ptimos, necesito poder mandar bits al pipe lo m�s r�pido
posible. Para un m�dem m�s lento, deber�a ser un n�mero menor. F�jate
que si tienes una UART 16450 en tu puerto serie, las velocidades altas
pueden provocar p�rdida de datos por desbordamiento del chip de tu
puerto serie. term se recuperar� de esto, pero si ves muchos mensajes
en tu log, (o recibes ``overrun warnings'' en versiones del kernel
0.99pl15 en adelante) necesitar�s reducir este n�mero.
-c off : Desactiva la compresi�n de datos. Tengo un m�dem con
compresi�n, y no necesito comprimir las cosas dos veces.
-w 10 -t 150 : De nuevo estas son opciones para optimizar mi enlace de
m�dem r�pido. Pongo mi ventana a 10 y mi timeout a 150. Esto lo hago
de acuerdo con la recomendaci�n de la p�gina de manual de term_setup.
Vuelve sobre tu m�quina local y suspende tu programa de comunicaciones
(^Z en kermit). No querr�s que est� corriendo a la vez que term, ya
que luchar�a con el term por el puerto serie. Si puedes convencer a
tu m�dem de que no cuelgue cuando salgas de tu programa de
comunicaciones (cuando cambia el DTR), podr�as salir del programa en
este punto.
Ahora lanza el term local. Yo uso:
term -c off -l $HOME/tlog -s 38400 -w 10 -t 150 < /dev/modem > /dev/modem &
Necesito decirle al term donde est� el m�dem; As� que apunto tanto la
entrada como la salida est�ndar a /dev/modem (eso es lo que hacen < y
>). Tambi�n lo hago correr en background; de modo que puedo usar esta
consola para otra cosa si la necesito.
term deber�a de funcionar ya :-). Prueba con trsh, a ver qu� pasa. Si
se cuelga, o el enlace parece lento, echa una ojeada a tu tlog en
ambos extremos. �Tienes timeouts o mensajes de error? Si es as�,
entonces es que has configurado algo mal. Vu�lvelo a intentar (despu�s
de que hayas terminado de leer esto :-). Observa que la conexi�n no
parecer� muy r�pida, especialmente si usas compresi�n - ser� un poco a
saltos. La velocidad real aparece durante transmisiones de ficheros y
similares.
4.11. Terminar tu conexi�n term
Muy probablemente, una vez que hayas hecho un mont�n de trabajo usando
el term, querr�s terminar el trabajo y deshacer tu conexi�n term. Para
poder hacer esto hay cuatro formas:
1. Matar (kill) los programas term a ambos lados de la conexi�n. Esta
es la forma menos recomendada de terminar tu conexi�n.
2. Una forma mejor es ejecutar el siguiente comando localmente:
echo '00000' > /dev/modem
Esto terminar� la conexi�n term correctamente. Funcionar� en todas las
versiones del term. Hay que asegurarse de que la secuencia contiene al
menos cinco ceros.
3. En el termrc de versiones 2.0.0 y superiores se puede incluir una
sentencia terminate <cualquier cadena>. Esto establece una cadena
que har� que salga del term (``00000'' por defecto). Debe ser de
una longitud de 5 caracteres por lo menos, para evitar
terminaciones accidentales.
4. A partir de la versi�n 1.14 existe el programa tshutdown (realmente
para la versi�n 1.14 est� disponible como patch, para versiones m�s
recientes se incluye en el paquete). Ejecutando tshutdown, la
conexi�n term finalizar� perfectamente.
4.12. C�mo eliminar TERM de tus particiones.
Ok, me hab�is preguntado por esto. As� que voy a presentar los pasos a
seguir para desinstalar term:
� Eliminar directorios con su contenido. Dependiendo de c�mo hayas
instalado term, tendr�s uno o m�s de los siguientes directorios:
$HOME/.term/termrc
$HOME/.term/termrc.<servidor>
$HOME/term/termrc
$HOME/term/termrc.<servidor>
/usr/local/lib/term/termrc
/usr/local/lib/term/termrc.<servidor>
/etc/termrc
/etc/termrc.<servidor>
Estos directorios pueden eliminarse con su contenido, usando
/bin/rm -rf
� El grupo term. En alg�n momento de la instalaci�n tuviste que crear
un grupo llamado term. Busca en /etc/group una l�nea con ese grupo
y b�rrala.
� Los ejecutables y paquetes del term. Esta es la parte m�s dif�cil.
Para los ejecutables, busca en el directorio /usr/local/bin o
$HOME/bin.
Con otros ejecutables que hiciste compatibles con term no puedo
ayudarte. Necesitas saber qu� ejecutables modificaste para saber
cu�les borrar. No olvides ficheros de configuraci�n y otros que
vengan con esos ejecutables.
� Ficheros de librer�a. Lo mejor es teclear lo siguiente:
cd /
find . -name libtermnet* -exec /bin/rm {} \;
Esto encontrar� y borrar� todos los ficheros de librer�a relacionados
por todo tu disco duro.
� Ficheros include. De nuevo, lo mejor es que teclees esto:
cd /
find . -name termnet.h -exec /bin/rm {} \;
� Manuales en l�nea. Cuando instalaste term los manuales se colocaron
en uno de los directorios siguientes:
/usr/local/man/man1
/usr/local/man/cat1
$HOME/man/man1
$HOME/man/cat1
Debes buscar por lo menos las siguientes p�ginas de manual: term,
term_clients, term_setup, tdownload, linecheck, trdate, trdated,
termrc, termtest, tmon, tredir, trsh, tshutdown, tudpredir, tupload,
txconnand y por �ltimo, tiptest.
� Directorio temporal del usuario. Borra el directorio
/usr/tmp/private y sus contenidos.
Despu�s de todo este ejercicio, podr�s estar bastante seguro de que
has borrado todo lo relacionado con term.
4.13. Optimizaci�n de la conexi�n
Una vez que consigues ejecutar el term, puede que quieras intentar
optimizar las cosas. Una buena forma de medir la velocidad de tu
enlace es corriendo tmon en una ventana mientras transfieres un
fichero en otra. Intenta con ficheros de texto y ficheros comprimidos
suficientemente grandes; el texto a secas deber�a dar un factor del
doble de r�pido que el comprimido. Los par�metros que querr�s ajustar
son baudrate [velocidad del puerto] (-s), compression (-c), windows
[tama�o de ventana] (-w), timeout [tiempo de espera] (-t) y retrain
(-A).
Cuidado con el par�metro retrain. Con la versi�n 1.19 del term obtengo
peor rendimiento, que va de un 80% a un 90% comparado con la ejecuci�n
del term sin el par�metro retrain. No est� claro si se trata de un bug
en la versi�n 1.19 y si este problema existe s�lo en la versi�n 1.19
del term.
Baudrate: el n�mero m�ximo de bits por segundo que el term intentar�
enviar a trav�s del enlace serie. term evitar� enviar caracteres a una
velocidad superior a �sta. Por defecto se usa la velocidad del puerto
serie del ordenador, pero hay que avisar que �sta puede ser demasiado
alta si el m�dem funciona a una velocidad menor sobre la l�nea
telef�nica. La opci�n baudrate est� indicada para sistemas que
almacenan en buffer la salida al m�dem. Durante la configuraci�n y el
ajuste es mejor usar un baudrate peque�o que uno que sea demasiado
grande. Para enlaces de alta velocidad (> 38400), ponerlo sin l�mite
ser� probablemente ventajoso. Esto se consigue usando el valor off.
term confiar� entonces solamente en el kernel para controlar el flujo.
Compression: necesitar�s poner en on si no tienes un m�dem con
compresi�n. Si tienes un m�dem de �stos, pon compression off, de lo
contrario estar�s comprimiendo las cosas dos veces, lo que
habitualmente incrementa la cantidad de datos transmitidos. Los m�dems
con compresi�n son aquellos que usan los protocolos MNP-5 o V42.bis.
Observa la documentaci�n del m�dem y el mensaje del m�dem cuando
conecta.
Windows: este es el n�mero de unidades de datos, o paquetes, que el
term enviar� por la l�nea antes de obtener reconocimiento (ack) desde
el term remoto. Para m�dems r�pidos, aumentar esto puede ser una
mejora; para enlaces m�s lentos esto puede saturar el extremo remoto.
Timeout: el tiempo que el term esperar� a un ack. Si has aumentado
windows y est�s teniendo timeouts en el fichero de log, prueba a
aumentar este valor.
Para un 14400/V42.bis, yo uso -c off -w 10 -t 150. Consigo unos 1700
cps en ficheros comprimidos y 3500 cps en ficheros ASCII usando
tupload.
4.14. Resoluci�n de problemas
En esta secci�n se dan algunas opiniones sobre qu� comprobar cuando se
tienen problemas ejecutando el term o alguno de sus clientes.
� �Has borrado la estructura de directorios del term? En las nuevas
versiones del term ha cambiado un par de veces la estructura del
�rbol de directorios bajo /usr/local/lib/term. Si no te has dado
cuenta de ello, puedes haber causado todo tipo de mensajes de
error. Lo mejor es borrar el �rbol de directorios bajo
/usr/local/lib/term (salvando tu termrc) y entonces instalar la
nueva versi�n. De esta forma evitas pelearte con un �rbol de
directorios lioso.
� �Borraste los sockets antiguos? Cuando pongas al d�a tu versi�n del
term borra todos los sockets (llamados socket=) creados por el
term. El no hacer esto puede causar extra�os problemas. Para
averiguar qu� socket est� atendiendo el term, puedes usar el
programa netstat.
� �El term no compila correctamente en SunOS 4.1.3? Has configurado
el term con ./configure --user. Durante la compilaci�n est�s
teniendo un error de ensamblador, relacionado con que el par�metro
-k no es reconocido. La raz�n de este error es desconocida. La
soluci�n es configurar el term con librer�as est�ticas. Es decir,
tendr�s que hacer ./configure --user --static y entonces seguir con
el proceso de compilaci�n como sueles hacerlo normalmente. Ahora el
term deber�a compilar correctamente.
� �El termtest te est� presentando el error:
Term: failed to connect to term socket '/root/.term/sockettest'
(Term: falla la conexi�n al socket de term '/root/.term/sockettest')
Cuando termtest corre espera que el ejecutable term est� en el mismo
sitio que �ste. Cuando haces un make install antes de ejecutar
termtest, el binario de TERM es movido a /usr/local/bin (u otro simi�
lar).
Para ello hay que hacer algo parecido a esto:
ln -s /usr/local/bin/term /usr/src/term-<numero_de_version>/term
� �Est�s usando el binario adecuado? El term se ha modificado
bastante, y muchos sistemas tienen versiones diferentes de los
programas rondando por ellos. Aseg�rate de que est�s usando la
versi�n correcta. Esto tambi�n se aplica al linecheck. Puede
usarse una orden del tipo bash -a, o el comando whereis para saber
qu� programa se est� ejecutando. Las versiones de term posteriores
a 1.11 deber�an mostrar su n�mero de versi�n al comenzar. (Aunque
la versi�n 1.14 dice ser la 1.12. Sigh.)
� �Tienes el termrc correcto en el lugar adecuado? Dependiendo de la
versi�n de term que est�s corriendo y el modo en que instalaste el
term (siendo root o usuario) este fichero debe estar en uno de los
siguientes directorios:
/usr/local/lib/term/termrc
/usr/local/lib/term/termrc.<servidor>
/etc/termrc
/etc/termrc.<servidor>
Algunos sistemas tienen termrc's preinstalados; aseg�rate de que no
est�n antes de instalar. Si est�s ejecutando cosas como root, busca en
/.term.
El term crea ficheros (sockets en realidad) mientras se ejecuta; de
modo que tiene su propio directorio, ~/.term, donde est� el fichero
termrc (n�tese, �no hay un punto precediendo a termrc!).
� �Encuentra el term su fichero termrc? Cuando inicias term a ambos
lados, deber�as ver mensajes como este de abajo:
Term version: 2.2.9
Reading file: /usr/local/lib/term/termrc
Using shared mode.
Cuando falta la segunda l�nea el term no puede encontrar su fichero
termrc y sabes que algo ha ido mal durante la instalaci�n (a no ser
que no est�s usando el fichero termrc y est�s introduciendo todas las
opciones en l�nea de comandos :-). Comprueba la localizaci�n y los
permisos del fichero termrc en el lugar donde term no puede encontrar
su fichero termrc.
� �Es correcta la sintaxis de las entradas en el termrc? Un problema
com�n es que la gente que necesite usar el escape e ignorar ciertos
caracteres, los introduzca as� en el fichero termrc:
escape 1,4,30,255
ignore 1,4,30,255
Aunque si term no reconoce lo anterior tampoco avisar� de ello. Sim�
plemente lo ignorar�.
Cuando tienes que ignorar o ``escapar'' caracteres, tendr�s que poner�
los en diferentes l�neas del fichero termrc, cada l�nea comenzando por
la palabra escape o ignore. S�lo cuando haya que hacerlo con varios
caracteres deber� hacerse de la siguiente forma:
escape 16-19 # escapar caracteres 16, 17, 18, 19
escape 23 # 23
escape 255 # ...y 255
ignore 16-19 # ignorar caracteres 16, 17, 18, 19
ignore 23 # 23
ignore 255 # ...y 255
� �Est� montado tu directorio term o .term con NFS? Si tu directorio
term o .term est� montado con NFS necesitas poner el par�metro
-DTERM_NFS_DIR en la l�nea CFLAGS del Makefile. Aunque, al autor el
usar este par�metro le produce un error de compilaci�n al compilar
term 1.19 en una m�quina con SunOS 4.*.
� �Pertenecen los ficheros y directorios al usuario y grupo correcto
y tienen los permisos adecuados? Esto no deber�a ser problema ya
que estos permisos se ponen durante la fase de instalaci�n. Sin
embargo, cuando portas tus propios programas a term debes
prevenirte de ello. Tambi�n cuando se cambia el modo en que esta
trabajando term (por ejemplo de modo privado a modo shared) deben
adaptarse las propiedades y permisos de ficheros y directorios.
� �Est�s obteniendo el error gethostbyname: <hostname>: Non-
authoritative `host not found', o `server failed'?
Para resolver esto tienes que chequear las siguientes cosas:
1. �Est� configurado correctamente el fichero /etc/hosts?
<hostname> no es el nombre de tu host (las versiones viejas de
SLS y algunas viejas y nuevas versiones Slackware se entregan
con el hostname darkstar, por ejemplo). Cambia esto en el
fichero. Debe contener al menos una l�nea como la que sigue (el
formato se describe encima de ella):
# Formato del fichero:
# IP_NUMBER HOSTNAME ALIASES
#
# Este es el nombre de tu maquina, en primer lugar, seguido de aliases
#
127.0.0.1 localhost linuxpc.dominio linuxpc
Cuando tu �nica conexi�n con el exterior se hace mediante term, la
l�nea anterior es la �nica que debe aparecer en /etc/hosts. No pon�
gas otros nodos de Internet en ese fichero, pues term no trabajar�
con ellos.
2. �Puede leer todo el mundo tus ficheros /etc/rc* y
/etc/resolv.conf?
chmod ugo+r
3. Por �ltimo, aseg�rate de haber instalado el loopback-interface
de TCP/IP en tu m�quina. Puedes comprobarlo ejecutando el
comando ifconfig. Cuando est� instalado dicho interface, se ver�
lo siguiente en pantalla:
lo Link encap:Local Loopback
inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.255.255.0
UP BROADCAST LOOPBACK RUNNING MTU:2000 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:4984 errors:0 dropped:0 overruns:0
Durante el arranque tambi�n puedes ver qu� protocolos se utilizan.
En mi m�quina aparece lo siguiente:
IP Protocols: ICMP, UDP, TCP
Para m�s informaci�n sobre c�mo instalar el loopback-interface,
l�ete el NET-HOWTO.
� �Est�s obteniendo todo tipo de mensajes timed out en tus ficheros
log de term? Esto significa que tu conexi�n de term no est�
optimizada. Un peque�o n�mero de esos mensajes nunca es problema.
Estos son debidos muy posiblemente a que los factores temporales
influyen en la conexi�n f�sica entre tus hosts remoto y local.
Cuando tienes un mont�n de estos mensajes todo el tiempo, tu
conexi�n se ralentizar� considerablemente. Tienes que ajustar los
par�metros mencionados en la anterior secci�n ``''. Adem�s, esta
parte de la instalaci�n es un proceso de prueba y error. No se
pueden dar unas reglas fijas sobre los valores a colocar en los
variados par�metros ya que son muchos los factores que influyen en
la conexi�n. Estos factores difieren entre las conexiones e
incluso en el tiempo.
� �No te funcionan los ftp con puertos redirigidos? Es un problema
habitual con ftp, que necesita trabajar con los puertos 20 y 21. La
�nica soluci�n es usar una versi�n TERMificada de ftp o ncftp. Sin
embargo, algunas de estas aplicaciones adaptadas tampoco
funcionar�n.
5. Clientes TERM
Term proporciona varios clientes por defecto. Esto incluye trsh, tmon,
tupload, tredir, txconn y en nuevas versiones trdate, trdated.
Adem�s, a partir de la versi�n 2.0.0 est� disponible tudpredir y desde
la versi�n 2.1.0 tambi�n tdownload. Esta secci�n har� referencia a
trsh, tmon, tupload, tdownload, trdate y trdated. El resto tiene su
propia secci�n cada uno. No funcionar� ning�n cliente de term hasta
que se haya establecido un enlace term.
tmon es una utilidad simple para monitorizar las estad�sticas del
enlace. Imprime un diagrama de tiempo de caracteres transmitidos y
recibidos. Se invoca simplemente como tmon. Desde la versi�n 1.11,
tmon ha tenido un bug que provoca que alguna informaci�n se trunque
(??).
trsh es similar a rsh. Sin argumentos, genera una shell interactiva en
el sistema remoto (esto es, te introduce directamente en el sistema
remoto). trsh es uno de las principales maneras de acceder al extremo
remoto del enlace a trav�s de term. Si se le pasa un argumento, trsh
ejecuta ese argumento como un comando en el sistema remoto. Por
ejemplo, con trsh ls se obtendr�a una lista de ficheros del directorio
home del sistema remoto.
tupload transfiere un fichero, si se indica como primer argumento,
desde el sistema local al remoto. Por defecto los ficheros se pondr�n
en el mismo directorio desde el que se invoc� term en el otro extremo.
Para colocar los ficheros en otro directorio se deben poner sus
nombres como segundo argumento a tupload. Por ejemplo, si se desea
poner una copia del fichero term114.tar.gz en /usr/tmp en el sistema
remoto, se escribir�a tupload term114.tar.gz /usr/tmp.
Cuando se usa tupload es posible utilizar comodines como en tupload
a.*. La shell expande los comodines y llama a tupload como tupload
a.1 a.2 ......
tdownload transferir� un fichero, si se indica como primer argumento,
desde el sistema remoto al local. Por defecto, los ficheros se
colocar�n en el mismo directorio desde el que se invoc� al term en el
lado local. Para colocar los ficheros en otro directorio, hay que
indicar sus nombres como segundo argumento a tdownload. Por ejemplo si
se quiere poner una copia del fichero term114.tar.gz en /usr/tmp del
sistema local, escribir�a tdownload term114.tar.gz /usr/tmp.
Cuando se usa tdownload no es posible utilizar comodines como
tdownload a.*. La raz�n es que el directorio remoto no est� disponible
para la shell local cuando se usa tdownload; de modo que la shell
local no puede expandir los comodines.
trdate es una utilidad de puesta en hora. Lee la hora en la m�quina
remota y pone el reloj local con la hora del remoto. Se debe ejecutar
como root.
trdated es la versi�n demonio de trdate. Cuando se pone en marcha en
rc.local se ejecuta como un demonio en cuyo caso ajusta el tiempo cada
5 minutos (por defecto). Incluso si no existe conexi�n term, este
demonio se pondr� en marcha si se coloca en rc.local. Una vez que se
cree una conexi�n term, comenzar� a ajustar la hora.
6. X y TERM
term permite a los usuarios abrir ventanas X en la m�quina local desde
clientes que est�n corriendo en una m�quina de la red. Esto se hace
usando el cliente txconn. txconn se ejecuta en el remoto, la m�quina
conectada en red; se invoca simplemente como txconn. Se coloca en
background y devuelve un n�mero a la salida est�ndard; este n�mero es
el n�mero de display que los clientes deben usar para acceder al
servidor X de la m�quina local. Un ejemplo aclarar� �sto. Estoy
accediendo a mi cuenta, v�a trsh, en mi host remoto, llamado ``foo''.
En foo realizo lo siguiente:
foo$ txconn
Xconn bound to screen 10
:10
foo$
Ahora, para cualquier host en el que quiera correr un cliente X, o
sea, verlo en el servidor X de mi m�quina local, har�:
setenv DISPLAY foo:10
(para bash deber�a usarse export DISPLAY=foo:10). En algunos casos
adem�s de eso puede ser necesario hacer un xhost + foo en la m�quina
local. Ahora, cuando arranque el cliente, intentar� conectar con la
pantalla 10 de la m�quina foo, pero txconn estar� escuchando en esa
pantalla, y pasar� todos los paquetes con protocolo X v�a term al
servidor X en el host local; es decir, la ventana se abrir� en la
m�quina local.
Es posible trabajar en el otro sentido - correr un cliente en la
m�quina local y tener abierta la ventana en una m�quina remota de la
red; sin embargo, retrasaremos esta explicaci�n hasta despu�s de haber
comentado tredir.
txconn no es terriblemente seguro; cualquiera puede conectar con el
servidor local v�a term y provocar todo tipo de da�os. Si este tipo de
cosas son preocupantes, podr�a ser una buena idea considerar el uso de
xauth para autorizar las conexiones. Consulte la p�gina de manual
sobre xauth.
El protocolo X no es muy eficiente; desperdicia algo de ancho de
banda. Esto no suele ser un problema en una ethernet, pero puede ser
un crimen v�a m�dem. Se supone que X11R6 presenta una versi�n de bajo
ancho de banda del protocolo X, LBX. Si, por el contrario, se est�
usando X11R5 puede recurrirse a una utilidad llamada sxpc que comprime
el protocolo X, mejorando la respuesta sobre l�neas serie. sxpc
incluye un texto sobre c�mo hacerlo funcionar con term, y est�
recomendado. El paquete sxpc tambi�n explica como usar xauth; por lo
que est� doblemente recomendado.
7. tredir
tredir es una de las utilidades m�s potentes de term, permitiendo que
la mayor�a de los servicios de red importantes puedan obtenerse en un
enlace term. Antes de explicar c�mo se usa tredir, es necesario dar
algunas nociones sobre los servicios de red.
Ya se ha hablado antes sobre los servicios de red, pero no se ha dicho
exactamente qu� son. Los servicios son justo eso - servicios que
proporciona la red. Ejemplos de servicios incluyen telnet, que
proporciona logins entre m�quinas, el ftp (File Transfer Protocol), o
Protocolo de Transferencia de Ficheros, que transfiere ficheros entre
m�quinas, y smtp, el protocolo de transmisi�n de correo, que se usa
siempre que se env�a un correo electr�nico.
Cada servicio de red tiene un n�mero de puerto asociado a �l. El mapeo
de n�meros de puerto con los servicios correspondientes se da en el
fichero /etc/services. Este fichero deber�a ser el mismo en todas las
m�quinas conectadas a Internet.
�Como se accede a estos servicios? Cada m�quina en red corre un
demonio llamado inetd, el cual escucha los intentos de conexi�n a los
puertos de red. Estas peticiones pueden llegar tanto desde la red,
como desde la propia m�quina. Un servicio de red se obtiene conectando
con un puerto inetd en particular. Cuando se hace una solicitud de
red, inetd conoce exactamente qu� servicio est� implicado, por el
n�mero de puerto al que se hizo la solicitud. Si se configura inetd
para hacerlo, proporcionar� el servicio adecuado a la conexi�n que lo
solicita. La configuraci�n de inetd es la que se da en el fichero
/etc/inetd.conf, que contiene una lista de los servicios que
proporciona inetd. Para m�s informaci�n vea las p�ginas de manual de
inetd e inetd.conf.
Se puede comunicar directamente con los servicios de red usando telnet
(n�tese bien, no termtelnet). Por ejemplo, para hablar con el demonio
de sendmail (o smtp) en la m�quina nombre_de_m�quina;, se puede hacer
un telnet nombre_de_m�quina smtp , o telnet nombre_de_m�quina 25, (ya
que 25 es el puerto asignado a smtp en /etc/services). Deber�a obtener
una agradable bienvenida del demonio de la m�quina remota. Este es un
truco muy �til para depurar problemas de red y chequear puertos
redirigidos con tredir (ver abajo).
tredir funciona de modo similar a inetd. Funciona en background como
un demonio, escuchando los puertos de red, esperando a una petici�n.
Cuando se hace una solicitud de un servicio, en vez de proporcionar
ese servicio, como hace inetd, tredir traslada la solicitud a trav�s
del enlace term hasta el term remoto, quien hace la solicitud a la
red, devolviendo el resultado de nuevo por el enlace hasta el cliente
local. tredir puede trasladar la solicitud a cualquier m�quina de la
red, pero por defecto la env�a a la m�quina al otro extremo del enlace
term. tredir ``redirige'' los servicios TCP (Transmision Control
Protocol) a trav�s del enlace term.
Un ejemplo lo aclarar�. Vamos a redirigir un puerto local al puerto
telnet de la m�quina remota. Para hacer esto pondr�amos tredir 2023
23. Ahora, cualquiera que conecte al puerto 2023 de la m�quina local
ser� redirigido al puerto 23 (telnet) de la m�quina remota. Aqu� va
una sesi�n de ejemplo; la m�quina local es mimaquina.modem.casa y la
remota es netsun.
$ tredir 2023 23
Redirecting 2023 to 23
$ telnet localhost 2023
Trying 127.0.0.1...
Connected to mimaquina.modem.casa
Escape character is '^]'.
SunOS UNIX (netsun)
login:
Este ejemplo es realmente muy �til. Si en su lugar hiciera el tredir
sobre netsun, entonces podr�a hacer telnet a mimaquina desde la red
simplemente conect�ndome al puerto redirigido de la m�quina en red
(usando telnet) - esto es, telnet netsun 2023.
El principio general de uso del tredir es redirigir el servicio
deseado a una m�quina de la red. El siguiente ejemplo nos permitir�
leer las News en la m�quina local a trav�s del enlace term desde un
servidor de News de la red. Las News las proporciona el servicio nntp,
puerto 119. Todos los lectores de News decentes permiten especificar
qu� puerto van a utilizar, ya sea en un fichero de configuraci�n o en
una variable de entorno. Vamos a especificar que el puerto local sea
el 2119. Ahora supongamos que el servidor de News es news.domain.org;
entonces le diremos al software de lectura de News que el servidor
nntp se encuentra en el puerto 2119 del host local. Como esto
depender� del lector de News que se use, probaremos el enlace con
telnet en lugar de ejecutar un lector de News:
$ tredir 2119 news.domain.org:119
Redirecting 2119 to news.domain.org:119
$ telnet localhost 2119
Trying 127.0.0.1...
Connected to mimaquina.modem.casa.
Escape character is '^]'.
200 news.domain.org InterNetNews NNRP server INN 1.4 07-Dec-41 ready
(posting ok).
Si ha podido llegar tan lejos, todo lo que tiene que hacer es
configurar su lector de News para poder leer las News desde casa v�a
term. (n�tese bien, si lee las News de este modo, aseg�rese de que en
todos los mensajes que deje ponga una cabecera Reply-To: a una
direcci�n de correo en la que pueda ser localizado, o de lo contrario
la gente que quiera ponerse en contacto con Ud. mandar� el correo a
cualquier dato que su lector de News ponga en la cabecera From:).
7.1. � tredir puede morder!
El astuto lector, tras leer el �ltimo ejemplo se preguntar� porqu� se
redirigi� en puerto 2119 al puerto 119 --ya que el puerto por defecto
de los lectores de News es el 119--, �porqu� no podr�a hacer un tredir
119 news.domain.org:119 y evitar la configuraci�n del lector de News?
La respuesta es que todos los puertos con n�meros inferiores a 1024
son ``puertos reservados'', y �nicamente el superusuario puede
escucharlos. Si se desea tomar un riesgo en seguridad y hacer de
tredir un programa suid, o ejecutar tredir como root, entonces se
pueden redirigir puertos reservados y evitar as� la molestia de
renombrar servicios.
Otro problema de usar los puertos reservados es que inetd a menudo ya
est� escuchando en esos puertos, y solamente un programa puede
escuchar un puerto a la vez. Si se quiere usar tal puerto, se debe
cambiar inetd.conf de modo que inetd ya no escuche en ese puerto que
se quiere redirigir. Esto se hace f�cilmente comentando la l�nea
correspondiente al servicio poniendo el car�cter # al comienzo de la
misma. El superusuario tiene que mandar una se�al HUP a inetd (kill -1
<inetd-pid>) para hacer que vuelva a leer su configuraci�n.
7.2. Trucos tontos de tredir
En esta secci�n describiremos algunos de los usos m�s comunes de
tredir. Ya hemos descrito como redirigir los servicios nntp y telnet;
Ahora daremos algunos ejemplos m�s complicados.
7.2.1. X window
En una secci�n previa, se describi� como hacer que un cliente X que
corre en la red abra una ventana en la m�quina de casa usando txconn.
La misma t�cnica se podr�a usar en la m�quina de casa para mostrar un
cliente en la m�quina del lado remoto del enlace term. �Pero c�mo
puede uno ver un cliente X en una m�quina de red que no es el extremo
remoto? La respuesta se basa en conocer que X usa un servicio de red
concreto igual que los otros programas que hemos explicado. Un
servidor X escucha peticiones de red en un puerto cuyo n�mero viene
dado por la f�rmula: puerto = 6000 + n�mero de display, p.ej. un
servidor X manejando la pantalla 0 en una m�quina escuchar�a el puerto
6000, si estuvi�ramos manejando la pantalla 2, escuchar�a el puerto
6002. Si se pone la variable de entorno DISPLAY en maquinaX:n, los
clientes X tratar�n de conectar con el puerto 6000+n de maquinaX.
Podemos usar esto para trucar los clientes X de la m�quina local y
abrir ventanas en displays remotos. Supongamos que quiero abrir un
xterm, corriendo en mi m�quina local, en el display 0 de la m�quina
maquinaX, que esta corriendo en alg�n lugar de la red. Primero
escoger� un n�mero de display local, digamos que el 2 (no se usa el 0,
ya que es el que estar� usando el servidor X local). Mapear� este
display al display 0 de maquinaX. En t�rmino de puertos, esto
significa que quiero redirigir el puerto local 6002 al puerto remoto
6000. Har� lo siguiente:
$ tredir 6002 xmachine:6000
$ setenv DISPLAY localhost:2
$ xterm
Esto deber�a abrir un xterm en la m�quina maquinaX. Observe que he
puesto el DISPLAY a localhost:2. Esto es porque los clientes X usan a
veces sockets de dominio unix en lugar de sockets de dominio Internet,
a su propio criterio, cuando conectan con un display local, si DISPLAY
se pone a :2. localhost:2 indica que use una conexi�n TCP.
Observe que en lo que concierne a maquinaX, la solicitud X viene de la
m�quina del extremo remoto del enlace term (m�quinaremota) - de modo
que si necesita autorizar la conexi�n, deber�a hacer bien xhost +
m�quinaremota en maquinaX, o bien usar xauth para actualizar el
fichero .Xauthority en su m�quina local para el display n�mero 2,
usando la clave de maquinaX.
De nuevo, para acelerar las conexiones X, se puede usar el programa
sxpc, que incluye una explicaci�n sobre c�mo usar tredir para
establecer el enlace y autorizarlo usando xauth.
7.2.2. Correo con TERM
Est� bien, vosotros lo ped�steis. El correo electr�nico tiene la
justificada reputaci�n de ser una de las cosas m�s dificiles de hacer
funcionar bien en un sistema UNIX. Para conseguir que el term funcione
correctamente con el correo es preciso entender c�mo funciona el
correo, lo cual va m�s all� del objetivo de este documento.
Para aprender m�s sobre correo, deber�a consultar un libro de
administraci�n de sistemas UNIX y/o la FAQ de la conferencia
comp.mail.misc, disponible en el ftp an�nimo de
ftp://rtfm.mit.edu/pub/usenet/comp.mail.misc.
Tambi�n tiene a su disposici�n 2 paquetes en el ftp an�nimo de
sunsite.unc.edu que le ayudar�n a poner en marcha el correo bajo term
- son term.mailerd+smail de Byron A. Jeff y BCRMailHandlerXXX de Bill
C. Riemers.
Como se ha dicho, haremos una breve descripci�n de como funciona el
correo electr�nico. Hay dos partes que hacen funcionar el correo, el
env�o de mensajes y la recepci�n de los mismos. Comenzaremos con el
env�o de mensajes desde su ordenador local a la red.
Hay dos clases de programas de correo. El primero es el Agente de
Correo de Usuario (MUA - Mail User Agent). Los MUAs ayudan a leer,
componer y mandar mensajes. Ejemplos de MUAs son el elm, pine, mail y
vm. Los MUAs no usan para nada la red; solamente agrupan los mensajes
- el trabajo duro de env�o de correo se hace a trav�s de la segunda
clase de programas, los agentes de transferencia de correo (MTA - Mail
Transfer Agent). Estos son invocados desde los MUAs. Toman el mensaje,
deciden d�nde enviarlo observando la direcci�n, y finalmente lo env�an
a trav�s de la red.
Los dos MTAs mas comunes en sistemas Linux son sendmail y smail. La
idea b�sica es hacer que su MTA se conecte a otro MTA que est�
corriendo en otra m�quina de la red que sepa qu� hacer con su mensaje.
Esto se consigue redirigiendo un puerto local hacia el puerto smtp de
la m�quina en red. Entonces debe indicar a su MTA que tome todos los
mensajes con los que no sepa que hacer, y los env�e fuera a trav�s del
puerto redirigido de su m�quina local al MTA de la m�quina remota, la
cual encaminar� los mensajes hacia su destino correcto.
�C�mo hacemos esto usando smail? Primero redirigiremos un puerto al
puerto smtp de la m�quina de correo de la red (mailhost):
tredir XXXX mailhost:25
donde XXXX es el n�mero de puerto al que se conecta smail en el host
local (tenga en cuenta que hay que dar un nombre al puerto en
/etc/services para hacer que smail lo reconozca). smail tiene varios
ficheros de configuraci�n que generalmente est�n en
/usr/local/lib/smail. Los que nos interesan son config, routers y
transports. Observar que presumimos que ya ha configurado smail
correctamente para el correo local - env�o a ficheros y tuber�as y
dem�s cosas. De nuevo, consulte la documentaci�n si no lo ha hecho.
En el fichero config, ponemos la siguiente definici�n:
smart_path=localhost
localhost es la m�quina a la que se conecta smail cuando no sabe que
hacer con un mensaje.
En routers ponemos:
smart_host:
driver=smarthost,
transport=termsmtp;
path = localhost
En transports ponemos:
termsmtp: driver=tcpsmtp,
inet,
return_path,
remove_header="From",
append_header="From: SU_DIRECCION_DE_RED",
-received,
-max_addrs, -max_chars;
service=SU_SERVICIO_SMTP,
En el de arriba, las l�neas header cambian la cabecera From en todo
correo saliente por la direcci�n SU_DIRECCION_DE_RED, que ser� la
direcci�n de red a la que quiere que le env�en el correo. Si su enlace
term va a ser usado por m�s de una persona, tendr� que hacer algo m�s
laborioso, como mantener una base de datos de direcciones de red de
usuarios locales e insertar las mismas en las cabeceras From:.
La l�nea service es el nombre del n�mero de puerto local que ha
redirigido al puerto smtp de la m�quina conectada a la red. En mi
versi�n de smail no es posible ponerlo como un n�mero, asi que tengo
que ponerlo como un nombre, como ``foo'', y entonces definir ``foo''
en /etc/services de modo que sea el n�mero del puerto redirigido. Si
usa un suid de tredir y se redirige el puerto smtp (25), no es
necesario definir esto.
Esto deber�a ser suficiente para hacerlo funcionar. Si decide usar
sendmail la base es la misma pero difiere en los detalles. Ronald
Florence (
[email protected]) me dijo que el sendmail de Sun no mandar�
mensajes m�ltiples encolados a trav�s de un puerto redirigido; el
sendmail 8.6.9 de BSD funciona bien. �l hizo los siguientes cambios al
sendmail.cf para que funcionase con term. En este caso se usa el
puerto por defecto de sendmail (25) para el tr�fico sobre una ethernet
local de forma que el correo Internet se pasa al puerto TCP
redirigido.
#
# Crear el mailer termsmtp, el cual envia el correo via el puerto TCP
# redirigido
#
Mtermsmtp,P=[TCP], F=mDFMuCXe, S=22, R=22, A=TCP $h PORTNUMBER
Aqu�, PORTNUMBER es el n�mero del puerto redirigido en la m�quina
local. Este deber�a ser un puerto sin usar por encima del 2000.
Seguidamente le decimos a sendmail a que m�quina conectarse, y ponemos
a termsmtp como mailer por defecto.
#
# relevo de correo principal
#
DMtermsmtp
#
# maquina del relevo principal: usa el mailer $M para enviar el
# correo de otros dominios
#
DR HOSTNAME
CR HOSTNAME
Aqu� HOSTNAME es el nombre de tu host local (�funcionar� localhost?).
La �ltima entrada va debajo de Rule 0 para pasar el correo Internet.
# Pass other valid names up the ladder to our forwarder
R$*<@$*.$+>$* $#$M $@$R $:$1<@$2.$3>$4
[email protected]
Cuando la conexi�n term se haya establecido con el host Internet,
ejecute los siguientes comandos en la m�quina local.
tredir PORTNUMBER internet.host:25
/usr/lib/sendmail -q
Pasamos ahora a la recepci�n de correo electr�nico usando term.
Asumiremos que el correo se env�a a su cuenta en el servidor de correo
(mailhost) de la red. La soluci�n m�s simple es usar trsh o termtelnet
para acceder al servidor y leer su correo all�.
Sin embargo, tambi�n es posible hacer pasar el correo autom�ticamente
a su m�quina local. Una forma de hacer esto es usar el Post Office
Protocol, (POP). POP fue dise�ado precisamente para este prop�sito:
enviar correo a m�quinas que tienen conexiones de red espor�dicas.
Para usar POP ha de tener instalado un servidor POP en mailhost.
Suponiendo que lo tiene, puede usar entonces un cliente POP para
recoger su correo cada poco tiempo. Esto se hace, como podr�a esperar,
usando tredir. El servicio POP es el 110 (Observe que hay un protocolo
m�s antiguo, POP-2, que usa el puerto 109; en este documento
describiremos POP-3, que es la �ltima versi�n de POP). Hay varios
clientes POP disponibles. Uno, escrito en el lenguaje de scripts perl,
es pop-perl-1.X, escrito por William Perry y mantenido por m� mismo -
puede encontrarse en sunsite en /pub/Linux/system/Mail.
Para usar POP se redirige un puerto local al puerto 110 de mailhost y
se configura el cliente para recoger su correo de localhost usando el
puerto local. Como ejemplo, supongamos que hay un servidor POP
corriendo en mailhost. Redirigiremos en puerto local 2110, y
ejecutamos el cliente pop-perl:
$ tredir 2110 mailhost:110
Redirecting 2110 to mailhost:110
$ pop
Username: bill
Password: <introduzca su password para mailhost>
Pop Host: name of local
Pop Port: 2110
Starting popmail daemon for bill
Si no tiene un servidor POP disponible, el paquete BCRMailHandler
tiene un programa para capturar su correo desde un enlace term hasta
su m�quina local. No lo he usado, pero cualquier comentario de alguien
que lo haya hecho ser� bienvenido. Tambi�n puede usar el paquete
term.mailerd+smail para este prop�sito. Sin embargo, BCRMailHandler y
term.mailerd+smail ya no funcionan con versiones de term 2.0.0 o
superiores.
8. tudpredir
tudpredir es similar a tredir si se observa lo que estos programas
hacen y c�mo se ejecutan. La gran diferencia entre los dos es que
tredir se usa para redirigir servicios de red TCP, mientras tudpredir
redirige servicios de red UDP (User Datagram Protocol) a trav�s de un
enlace term. Una diferencia m�s importante entre los dos programas es
que tredir se convierte en un demonio en segundo plano una vez que se
ha establecido el puerto local, mientras los comandos tudpredir hay
que ponerlos en segundo plano manualmente.
El formato de una llamada a tupredir es:
tudpredir [esta_maquina:]puerto [la_otra_maquina:]puerto
9. Automatizando las cosas.
Ahora que ya sabe c�mo conseguir todos los servicios de red sobre
term, ser�a bonito colocar las cosas de tal modo que su enlace se
establezca y configure autom�ticamente. B�sicamente hay infinitas
formas de hacerlo, dependiendo de que programa de comunicaci�n utilice
y c�mo acceda a su sistema remoto.
Un programa que yo no he usado, pero que he o�do que es bastante
agradable, es fet: un front-end para term. Est� dise�ado para
introducirle en un sistema remoto y poner en marcha term y todos sus
tredirs. Cualquier comentario sobre fet ser� bienvenido.
Le dar� un ejemplo de una serie de comandos que usa kermit para
introducirse en el sistema remoto y que efect�a todas las
inicializaciones de term. Obviamente, si usa estos ejemplos, tendr�
que modificarlos para sus propios procedimientos de acceso.
El comando que se invoca en este caso es la shell script knet, dada
por:
#!/bin/sh
/usr/bin/kermit -y $HOME/.kerm_term > $HOME/klog < /dev/null 2>& 1
exec $HOME/bin/tstart >> $HOME/klog 2>& 1
La script .kerm_term viene dada por:
pause 2
# El numero al que llamar
output atdtXXXXXXX \13
# Acceso al servidor de terminal
input 145 {name: }
output MYNAME \13
input 3 {word: }
output MYPASSWORD \13
input 5 {xyplex>}
# Hacer la linea transparente
output term telnet-t \13
output term stopb 1 \13
# Conectar al host remoto
output telnet remotehost.somedomain.org \13
input 10 {ogin: }
output MYOTHERNAME \13
input 3 word:
output MYOTHERPASSWORD \13
pause 5
# Lanzar term en el host remoto
output exec term -s 38400 -l $HOME/tlog -w 10 -t 150 \13
! /usr/bin/term -r -l $HOME/tlog -s 38400 -c off -w 10 -t 150 < /dev/modem > /dev/modem &
# Abrir otros clientes aqui
suspend
!killall -KILL term
y finalmente, el script tstart que lanza los clientes term es:
#!/bin/sh
#
# Esto hace que salga el correo, pueda leer news, y pueda recoger correo.
#
/usr/local/bin/tredir 2025 25 2119 newshost:119 2110 pophost:110
#
# Puedo abrir una Xwindow aqui
#
/usr/local/bin/trsh -s txconn
#
# Ahora recibire el correo....
#
/usr/local/bin/pop
#
# Limpiar la cola, en caso de boo-boos
#
/usr/bin/runq
#
# Acabado
#
echo ^G^G > /dev/console
Cuando por fin quiera cerrar la conexi�n, retoma y termina el kermit.
La �ltima l�nea del script mata el term local y al sistema a su estado
inicial. (-- Nota del autor: en lugar de hacer !killall -KILL term,
creo que ser�a posible hacer solamente !tshutdown. �Funcionar� esto
tambi�n? --)
Como ya dije, hay zillones de formas de hacerlo; estas s�lo se han
citado como ejemplos para que pueda comenzar. Otros ejemplos pueden
encontrarse en los paquetes autoterm y JoelTermStuff.
10. Portando software para usarlo con term .
En principio, todos los programas que se puedan usar sobre una red
pueden usarse en combinaci�n con term. Algunos de ellos podr�
encontrarlos ya como binarios con soporte para term. Esto incluye
telnet, (nc)ftp, mosaic y muchos otros. La mayor�a de estos programas
se han compilado para term 1.17 o anteriores. A pesar de eso, a�n
deber�an funcionar con versiones m�s nuevas de term.
Otra forma de hacer que los programas funcionen con term es portarlos
usted mismo. Este proceso es el que se describe en la siguiente
subsecci�n.
El �ltimo modo de compatibilizar sus programas con term es
termific�ndolos.
10.1. Portar y compilar los fuentes.
Portar software a term se puede hacer usando un procedimiento bastante
sencillo:
Si est� instalado en /usr/local por root:
1. A�ada a los flags de compilaci�n -include
/usr/local/include/termnet.h
2. y a�ada a la lista de librer�as -ltermnet
Si est� instalado en su directorio home:
1. A�ada a los par�metros de compilaci�n -include $HOME/term/termnet.h
2. y a�ada a la lista de librer�as -L$HOME/term -ltermnet
Ahora compile el software como se describe en el documento INSTALL o
README que venga con el software. �Ya estar�a todo!
En este momento los comandos deber�an funcionar con y sin term.
telnet localhost
no usa term para conectar, pero
telnet bohr.physics.purdue.edu
usar� term s�lo si no hay otro tipo de conexi�n de red.
Algunos comandos, como rlogin, s�lo pueden ser usados por root y por
el propietario de la conexi�n term (personas privilegiadas).
Algunos comandos term ser�n transparentes a term y s�lo usar�n term
cuando no haya otra opci�n. Algunos ejemplos t�picos son telnet y ftp.
Otros requieren un par�metro externo para indicarles que les es
posible usar term. En estos programas se incluyen xarchie, fsp e
ytalk.
Se puede poner el par�metro a estos programas para que usen term, bien
colocando la variable de entorno TERMMODE como se especifica en
README.security, o bien, ejecutando make installnet. Eventualmente,
el fichero termnet creado contendr� instrucciones de red espec�ficas,
pero por ahora s�lo est� probada su existencia.
Si se a�ade una conexi�n ethernet, puede simplemente quitar el fichero
termnet y �continuar usando los mismos binarios!
NOTA: Aquellos programas que fueron portados en los tiempos del
client.a, a�n pueden ser recompilados para usarlos con versiones
nuevas de term cambiando simplemente la referencia a client.a por
libtermnet.a.
10.2. Termificar ( termify ).
Este paquete convertir� los binarios enlazados din�micamente para usar
term.
Antes de poder termificar deber� asegurarse de que tiene una versi�n
2.2i (en esta versi�n 2.2.8?) de term o posterior y libc.so.4.5.26 o
posterior. Entonces hay que crear el fichero libt.so.4 en el
directorio /lib (ver el fichero README del paquete).
El problema en este momento es que hay que rehacer el fichero
libt.so.4 cada vez que renueve la versi�n de term.
Despu�s de crear la librer�a podr� dejar que termify ``digiera'' al
programa que se quiere hacer term-compatible, usando el comando:
termify <programa>
Si no le gusta el resultado puede des-termificar el programa que acaba
de termificar, usando el comando:
termify -u <programa>
Por fin, el paquete tambi�n contiene un script para termificar
completamente smail; de modo que no son necesarias definiciones
especiales de transporte. La �nica cosa que quiz� quiera cambiar es la
direcci�n del From:.
11. Clientes term .
11.1. Clientes term disponibles en los servidores ftp .
A continuaci�n se da una lista de aplicaciones que corren con term. Yo
no digo que esta lista est� completa; as� que cualquier a�adido ser�
bienvenido. Siempre que sea posible indicar� el site y directorio
donde se pueda encontrar la aplicaci�n. Si indico sunsite.unc.edu (--
En Espa�a contamos con un magn�fico y veloz mirror de SunSite,
localizable en sunsite.rediris.es--) como el lugar donde encontrar la
aplicaci�n, quiero decir que puede encontrarla en uno de los dos
directorios siguientes:
1.
ftp://sunsite.unc.edu/pub/Linux/apps/comm/term/apps
2.
ftp://sunsite.unc.edu/pub/Linux/apps/comm/term/extra
�All� vamos! :-)
paquete TERM:
tupload
tdownload (versiones 2.1.0 y posteriores)
trsh
tmon
tredir
tudpredir (versiones 2.0.0 y posteriores)
txconn
trdate(d)
tshutdown
libtermnet
Transferencia de ficheros:
ftpd sunsite.unc.edu
termncftp sunsite.unc.edu
ncftp185 sunsite.unc.edu:/pub/Linux/system/Network/file-transfer
fsp sunsite.unc.edu:/pub/Linux/system/Network/file-transfer
Sistemas de Informaci�n:
lynx
Mosaic sunsite.unc.edu:/pub/Linux/system/Network/info-systems/Mosaic
chimera
netscape sunsite.unc.edu:/pub/Linux/system/Network/info-systems
httpd
xgopher
gopher sunsite.unc.edu
Acceso remoto:
termtelnet sunsite.unc.edu
rlogin physics.purdue.edu:/pub/bcr/term/extra
rsh physics.purdue.edu:/pub/bcr/term/extra
Noticias (news):
tin 1.3 sunsite.unc.edu:/pub/Linux/system/Mail/news
news2 sunsite.unc.edu
Correo:
slurp sunsite.unc.edu
smail sunsite.unc.edu
term.mailerd+smail sunsite.unc.edu
BCRMailHandlerXXX physics.purdue.edu:/pub/bcr/term
Scripts automatizadores:
JoelTermStuff sunsite.unc.edu
autoterm sunsite.unc.edu
fet sunsite.unc.edu
Otros programas:
inetd sunsite.unc.edu
rdate sunsite.unc.edu
xgospel sunsite.unc.edu:/pub/Linux/games/x11/networked
termify physics.purdue.edu:/pub/bcr/term/extra
xboard sunsite.unc.edu
ircII sunsite.unc.edu:/pub/Linux/system/Network/chat
whois
xwebster sunsite.unc.edu
sxpc ftp.x.org:/R5contrib
xztalk sunsite.unc.edu:/pub/Linux/apps/sound/talk
11.2. El paquete termnet .
El paquete termnet-2.0.4-Linux-bin.tar.gz
(
ftp://sunsite.unc.edu/pub/Linux/apps/comm/term) contiene un par de
clientes precompilados, un par de scripts, p�ginas de manual y
libtermnet.so.2.00.04. Los clientes se han compilado usando esta
versi�n de libtermnet.so. El paquete contiene los siguientes clientes:
fet perl sperl4.036 tmon tshutdown xgopher
finger perl4.036 suidperl trdate tudpredir ytalk
ftp rcp taintperl trdated tupload
fwhois rlogin telnet tredir txconn
ncftp rsh term trsh xarchie
AVISO: El paquete tambi�n contiene el conjunto completo de clientes
compilados de term 2.0.4 incluyendo el mismo term. No instale este
paquete hasta que est� seguro de lo que quiere. Destruir� otras
versiones de term y sus clientes si empieza a enredar con los
ejecutables.
11.3. Solicitado, pero a�n no soportado:
1. DOOM: El problema con este juego parece ser el hecho de que usa el
puerto 5029 ya sea como cliente o como servidor.
2. NFS: El servidor NFS se supone que s�lo acepta llamadas si el
socket que solicita la conexi�n est� ligado a un puerto por debajo
del 1024. Esto parece ser problem�tico. Sin embargo, algunos
servidores NFS tienen una opci�n insegura. En este caso NFS podr�a
funcionar ocasionalmente, si se le a�ade al term soporte RPC.
12. Term y la seguridad
En esta secci�n puntualizar� algunos aspectos sobre la seguridad
usando TERM. Los problemas ser�n expuestos junto a un mecanismo para
aumentar su seguridad.
12.1. 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.
12.2. txconn y xauth
txconn 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.
12.3. sxpc , xhost y xauth
sxpc 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:
� Alguien puede saber lo que hay en tu pantalla
� Alguien puede saber lo que tecleas
� Alguien puede teclear sobre alguna de tus ventanas (por ejemplo, un
comando que borre tus ficheros :-( )
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.
13. Cosas a recordar
En esta secci�n intento obsequiarle con una lista de direcciones ftp
de utilidad, URL's, etc. donde puede encontrar software e informaci�n
sobre term.
Ftp:
�
ftp://sunsite.unc.edu:/pub/Linux/apps/comm/term/
�
ftp://sunsite.unc.edu:/pub/Linux/docs/HOWTO/
�
ftp://physics.purdue.edu:/pub/bcr/term/
URL:
�
http://sunsite.unc.edu/mdw/HOWTO/Term-HOWTO.html
�
http://www.bart.nl/~patrickr/term-howto/Term-HOWTO.html (siempre
tiene la �ltima versi�n)
�
http://physics.purdue.edu/~bcr/homepage.html
Netnews:
comp.os.linux.announce aqui se anuncian nuevas versiones de term
comp.os.linux.help aqui puede poner sus dudas sobre term
comp.os.linux.misc o aqui
comp.protocols.misc las respuestas a las preguntas son enviadas aqui.
Cuando comience a hacer preguntas en las news, por favor, aseg�rese de
que da a la gente del grupo tanta informaci�n como necesitan para
resolver su problema (versi�n de term, de qu� modo establece su
conexi�n, etc.).
En este momento hay en uso muchas versiones de term y todas ellas
tienen sus problemas comunes y espec�ficos. Adem�s, cuando quiera una
respuesta �til, al menos indique qu� versi�n de term est� usando. De
lo contrario, en algunos casos s�lo por adivinaci�n ser� posible
ayudarle a resolver sus problemas.
Documentos relacionados:
� Using Term to Pierce an Internet Firewall HOWTO de Barak
Pearlmutter,
[email protected]
� Cortafuegos-Como (-- Disponible en castellano, consulte la secci�n
``''--) de David Rudder,
[email protected]
� Serial HOWTO, de Greg Hankins,
[email protected]
� Net-2/Net-3 HOWTO de Terry Dawson,
[email protected]
14. Estabilidad de las versiones de term
Hay muchas versiones de term rondando en estos momentos. El que
mantiene el term, Bill Riemers, ha hecho una lista de versiones de
term indicando qu� versiones son estables y qu� versiones es mejor
evitar. La lista es la siguiente:
term110 --> no puedo decir con seguridad
term111 --> no puedo decir con seguridad
term112 --> no puedo decir con seguridad
term113 --> no puedo decir con seguridad
term114 --> version BETA bastante estable
term115 --> version BETA inestable BETA
term116 --> version BETA inestable BETA
term117 --> version BETA inestable BETA
term118 --> version BETA semiestable
term119 --> version GAMMA estable
term-2.0.X --> BETA versiones BETA semiestables
term-2.1.X --> mas versiones BETA estables
term-2.2.X --> nuevas versiones BETA
term-2.3.X -->
15. Tabla de velocidad de term .
Gracias a Bill McCarthy ahora disponemos de una tabla con informaci�n
de la velocidad de term para diferentes m�dems, versiones de term y
condiciones de conexi�n. El prop�sito es dar, tanto a los usuarios
nuevos como a los experimentados, una idea de lo que otra gente est�
usando y los resultados que consiguen.
LINUX TERM CHART 8/14/94
|___velocidad/marca____|___vel. linea__|__cps med__|__max.__|__ver term_|
| 1) USR SP 14.4 | 9600 | 950 | 963 | 1.17 |
| 2) USR SP 14.4 | 14400 | 1376 | n/a | 1.18p06 |
| 3) Zoom 2400 | 2400 | 220 | 230 | 1.19 |
| 4) Boca V.32bis 14 | 57600 | 1400 | n/a | 1.01/09? |
| 5) Viva 14.4 | 14400 | 1300 | n/a | 1.16 |
| 6) USR SP 14.4 | 14400+ | 1550 | 1680 | 1.19 |
| 7) Intel 14.4 Fax | 14400 | 1400 | 1650 | 2.0.4 |
| 8) cable tv hookup | 57600 | 1500 | 1800 | 1.18p06 |
| 9) Twincom 144/DFi | 57600 | 1500 | 4000? | 2.0.4 |
| 10) USR SP 14.4 | 14400 | 1200 | 1500 | 1.08 |
| 11) cable tv hookup | 19200 | 1300 | 1800 | 1.19 |
|-----------------------------------------------------------------------|
+parametros en el termrc:
1) default escapes 2) window 5 3) baudrate 2400 4) n/a
baudrate 9600 timeout 200 window 3
window 10 noise on
timeout 150
5) compress off 6) baudrate 19200 7) ignore 19+17 8) compress off
window 10 compress on window 4 escape 0, 13,
timeout 150 timeout 90 16-19, 255
baudrate 38400 baudrate 0
shift 224
flowcrtl 500
window 10
timeout 70
retrain on
breakout 24
9) compress off 10) compress off 11) baudrate 19200
baudrate 57600 baudrate 38400 compress on
window 10 escape 17, 19 shift 224
timeout 200 remote escape 0, 13 16-17
noise on 19, 255
share on window 10
remote timeout 40
Escapar caracteres en un extremo implica ignorarlos en el otro extremo.
16. Pistas y trucos encontrados en la red
En los grupos de news relacionados con Linux surgen de nuevo muchas
preguntas sobre term cada 15 d�as, junto con las respuestas a estas
preguntas. Para reducir el tr�fico del grupo de news, intentar� hacer
un resumen de esas preguntas y las respuestas a las mismas. Algunas de
las respuestas han sido probadas por m�, ya que tambi�n tuve los
citados problemas. Otras simplemente las he tomado sin comprobarlas.
� Mucha gente, en especial los que usan Ultrix, parecen tener
problemas con el vi porque les muestra menos de 24 l�neas en
ventanas con 24 l�neas. Hay dos formas de resolver este problema:
1. Acceda al sistema remoto usando:
trsh -s telnet <hostname>
2. Ponga resize; clear en su fichero .login
3. La mejor soluci�n parece ser poner lo siguiente en el remoto:
stty 38400
� Mucha gente parece tener problemas con ca�das de la conexi�n term,
cualesquiera que sean los motivos de la ca�da. As� que antes de
poner en marcha aplicaciones, la gente quiere saber si su conexi�n
term sigue viva o no. Esto se puede probar usando estos peque�os
ejemplos de shell scripts:
Si est� usando tcsh:
if ( { trsh -s true } ) then
...
endif
Si est� usando bash:
if trsh -s true; then
...
fi
� El navegador de WWW netscape causa a la gente problemas para
funcionar con term. La buena noticia es que puede funcionar. He
aqu� c�mo:
1. Termificar el netscape
2. Lanzar termnetscape. En el men� Options | Preferences |
Mail/Proxys dejar todos los campos proxy en blanco; poner en el
campo SOCKS: remotehost y 80
3. Ignorar el error que saldr� en el men� de opciones.
4. Si no funciona bien: en el men� Options | Preferences |
Mail/Proxys dejar todos los campos proxy en blanco, poner en el
campo SOCKS: none y 80
5. Ignorar el error que saldr� en el men� de opciones.
Scott Blachowicz me envi� un mensaje diciendo que hay una forma
f�cil de hacer que Netscape u otro navegador funcione bien con term
si tiene instalado un servidor proxy (como el httpd del CERN) para
ser usado en el lado remoto del enlace term. En el lado local
tendr�s que hacer esto entonces:
�
tredir local:8080 remota:80
Donde remota es el nombre remoto del servidor proxy.
� Ejecuta el navegador, y en las opciones o como se llame, pon los
proxies como local, puerto 8080. En algunos navegadores esto se
hace mediante variables de entorno como:
export http_proxy=
http://localhost:8080/
export ftp_proxy=
http://localhost:8080/
17. Otras Cosas
Algunas cosas que se podr�an incluir:
� Aumento de soluciones a problemas
� Extensi�n del tema sobre seguridad
� termwrap
� Sugerencias
De todos modos, si tiene sugerencias, cr�ticas, o cualquier otra cosa
que decir sobre este documento, por favor, �h�galo!. Como Bill
Reynolds est� muy ocupado en estos momentos, yo, Patrick Reijen, me he
hecho cargo de la autor�a del Term-COMO. Se me puede encontrar
(actualmente) en
[email protected] o en
[email protected].
18. Reconocimientos
Hay que dar las gracias a mucha gente. Primero y principalmente a
Michael o'Reilly y todos los desarrolladores del term, que nos han
proporcionado esta gran herramienta. Tambi�n quisiera agradecer a
todos los que dieron su experiencia y contribuyeron a este COMO. Esto
incluye a Ronald Florence, Tom Payerle, Bill C. Riemers, Hugh Secker-
Walker, Matt Welsh, Bill McCarthy, Sergio y todos los que me olvido de
mencionar.
19. Anexo: El INSFLUG
El INSFLUG forma parte del grupo internacional Linux Documentation
Project, encarg�ndose de las traducciones al castellano de los Howtos
(Comos), as� como la producci�n de documentos originales en aquellos
casos en los que no existe an�logo en ingl�s.
En el INSFLUG se orienta preferentemente a la traducci�n de documentos
breves, como los COMOs y PUFs (Preguntas de Uso Frecuente, las FAQs.
:) ), etc.
Dir�jase a la sede del INSFLUG para m�s informaci�n al respecto.
En la sede del INSFLUG encontrar� siempre las �ltimas versiones de las
traducciones: www.insflug.org. Aseg�rese de comprobar cu�l es la
�ltima versi�n disponible en el Insflug antes de bajar un documento de
un servidor r�plica.
Se proporciona tambi�n una lista de los servidores r�plica (mirror)
del Insflug m�s cercanos a Vd., e informaci�n relativa a otros
recursos en castellano.
Francisco Jos� Montilla,
[email protected].