[TRex documentation]

TRex versión 2.1.2

Guía del usuario - Introspección


SEGURIDAD


No somos expertos en seguridad, pero tratamos que TRex sea lo más seguro posible (recordemos que la seguridad no es un produco, sino un proceso como expresa Bruce Schneier). No podemos garantizar que TRex es a prueba de todo. Como de costumbre, cualquier sugerencia para mejorar la seguridad, o solucionar algunos bugs es bien recibida.

Toda la información enviada hacia o desde TRex puede ser vista por cualquiera que esté realmente decidido a hacerlo. No hay encripción hecha cuando se recibe o envía información, incluyendo las passwords enviadas al servidor de correo para la lectura de los e-mails (más seguridad es agregada a TRex según este evoluciona). Alternativamente las passwords nunca son enviadas en las páginas de HTML, lo que hace casi imposible que sea guardada una página con una password.

La password de usuario de TRex se encuentra almacenada, en forma encriptada, en el archivo pass. Esta es una precaución menor, ya que si alguien puede leer el archivo pass, podrá leer los mensajes almacenados en el mismo directorio. Sin embargo si los archivos sólo pueden ser leídos por el usuario con el que es ejecutado el web server, entonces sólo este podrá hacer las operaciones requeridas. Como precaución adicional los directorios de usuario no deben ser accesibles a través del web server en forma directa.

Cada vez que un usuario hace login, un identificador de sesión (session ID) se crea y almacena en el archivo sessID del area del usuario. Un nuevo login re-escribe el archivo sessID y el identificador anterior no servirá. Este archivo es eliminado durante la desconexión (logout). Cada script que accede una area del usuario verifica que que se le entregue el nombre de usuario y el session ID corespondientes. Esta información es pasada entre scripts a través de formularios (tags FORM). Cada vez que se comprueba el session ID, también se verifica que esta no haya expirado (expresado en la variable $time_til_expire del módulo Common.pm. Si la sesión duró más de los segundos especificados, el session ID no funcionará.

El archivo user_info.db almacena almacena el resto de la información. Esta podría ser abusada, por lo que debe protegerse su acceso de otros usuarios.

Los nombres de usuario y las passwords se limitan a ciertos caracteres, pero el resto de los datos poseen mayor libertad.

Protección de usuarios no deseados: Si no se quiere que cualquier usuario pueda generar una cuenta, hay dos opciones : colocar el script new_account.pl en un directorio que esté protegido con una password (el archivo login.pl debe apuntar a la nueva ubicación) y que sólo ese usuario tenga permisos para crear directorios o que se deba correr manualmente el script new_account.pl (no accesible desde web). Esta última opción da mucho mayor control sobre la creación de cuentas.


LOGIN DE PRUEBA


Si se ingresa el usuario althepal, no es necesario hacer cambios al archivo folders para esta cuenta, excepto si se quieren marcar los mensajes cómo leídos. Esta cuenta existe para permitir el ingreso a TRex antes de instalarlo y crear una cuenta. El nombre "althepal" se haya codificado en cada script.


DIRECTORIOS


Cuando descompacta el archivo que contiene la distribución de TRex (TRex-x.y.z.tar.gz) una cantidad de directorios se crean, y cada uno tiene su razón de ser (déjennos el beneficio de la duda). Por favor presten atención y disfruten de TRex !!!

Directorio de Documentos : Dentro de este hay toda la documentación provista con TRex en unos pocos idiomas (sólo inglés y español por ahora). Ah, si estás leyendo esto es porque ya encontraste la documentación !!
Se debe copiar todo el directorio en el que corresponde al URL indicado por la variable $man_URL, ubicada dentro del archivo Common.pm (si $man_URL apunta al URL http://localhost/htdocs/TRex/man, entonces debe copiarse al directorio que implementa el URL indicado)

Directorio de Imágenes: Todas las imágenes que tienen una dependencia del idioma están aquí. Se debe copiar todo el directorio en el que corresponde al URL indicado por la variable $img_URL, ubicada dentro del archivo Common.pm (si $img_URL apunta al URL http://localhost/htdocs/TRex/images, entonces debe copiarse al directorio que implementa el URL indicado)

Directorio de Programas : Se usa para guardar todos los scripts de Perl. Cualquier archivo que termine en pl o pm debe estar colocado aquí. Este directorio necesita ser accesible por web con permiso de ejecución. Dependiendo de su instalación, deberá colocarse debajo del directorio cgi-bin.
Se debe copiar todo el directorio en el que corresponde al URL indicado por la variable $dir_URL, ubicada dentro del archivo Common.pm (si $dir_URL apunta al URL http://localhost/cgi-bin, entonces debe copiarse al directorio que implementa el URL indicado)

Directorio de bibliotecas : Dentro de su directorio de programas hay uno denominado lib que contiene todos lso módulos Perl (archivos .pm) que conforman la clase TRex. Se debe hacer un directorio 'TRex' dentro del directorio site_perl que se encuentra dentro del directorio donde se encuentra instalado Perl (normalmente /usr/lib/perl5 o c:\perl\lib) y copiar o mover a él todos los archivos ubicados dentro del directorio lib.

Directorio de e-mails de usuarios : Se utiliza para almacenar todos los datos de los usuarios, por lo que NO DEBE HABER ACCESO DESDE EL WEB SERVER A ESTOS DIRECTORIOS O CUALQUIERA PODRÍA MIRAR EL E-MAIL DE CUALQUIER OTRO. Los únicos archivos que se necesitan son folders.start y 999999. A cada usuario se le otorga un directorio con el mismo nombre que su nombre de usuario. La estructura necesaria para un nuevo usuario se genera en el proceso de creación de este.

Se puede ver una descripción detallada de la estructura de directorio.

Directorio de pieles: Todas las imágenes que componen las distintas pieles de TRex se encuentran en este directorio. Se pueden crear nuevas pieles generando nuevos directorios dentro de esta, usando el nombre de la nueva piel como nombre de directorio y generando imágenes de 24 x 24 pixels. Copie (o mueva) todo el directorio en el que corresponde al URL indicado por la variable $skin_URL, ubicada dentro del archivo Common.pm (si $skin_URL apunta al URL http://localhost/htdocs/TRex/skins, entonces debe copiarse al directorio que implementa el URL indicado).


PERSONALIZACIÓN


El único archivo que debe modificarse para hacer funcionar TRex es Common.pm.
Hay cinco variables que deben ser cambiadas para personalizarlo a un server en particular.

o Ubicación de archivos
Common.pm contiene lo relativo a directorios de usuario y URLs. La variable para el directorio de usuario deberá ser la ubicación de un directorio en su sistema de archivos, pero las referencias a URLs deben ser de la forma "http://your.domain/directory".

Las siguientes variables en Common.pm deben ser cambiadas para reflejar su ambiente :
$dir_URL --- Indica el URL donde están ubicados los scripts de Perl (directorio program en la distribución)
$db_path --- Indica el directorio donde se encuentran los archivos de usuario
$img_URL --- Indica el URL donde están ubicadas las imágenes (directorio images en la distribución)
$man_URL --- Indica el URL donde están ubicado el manual del usuario (directorio doc en la distribución)
$skin_URL --- Indica el URL donde están ubicadas las pieles (directorio skins en la distribución)
$skin --- Indica la piel a usar (es el nombre de uno de los directorios existentes en $skin_URL)
$lang --- Idioma favorito (en este momento sólo están disponibles Inglés y Español)
@reserved_files --- Una lista de archivos que no deben ser mostrados cuando se muestra el directorio correspondiente al area de subida de archivos. Están colocados los elmentos "." y "..", pero si está usando una plataforma que no los utiliza (por ejemplo Mac OS) deben hacerse los cambio necesarios para que reflejen su plataforma.

o Desconexión automática
El número de segundos para que una sesión expire puede ser controlada con la variable $time_til_expire.

o Hora del server
$time_off_from_NY debe ser ajustada al número de segundos por delante de la hora de New York. Cada usuario puede ajustar su franja horaria en la sección de información al usuario. Actualmente pueden manejarse franjas horarias de Estados Unidos de América. Estamos trabajando para que esto sea ajustable a cualquier franja horaria.

Nota para usuarios internacionales: Este programa está escrito, principalmente, para usuarios de Estados Unidos de América. Por esta razón se preguntan sólo 4 zonas horarias. En tanto no haya sido convertido a formato internacional, colocar la variable $time_off_from_NY en 0 y franja horaria Este.


USER SETUP


La creación de una cuenta es hecha por el usuario, seleccionando un usuario y palabra clave, a través del script new_account.pl que puede ser accedida desde la página inicial. Este script agrega dos directorios para cada usuario: uno con el nombre asignado y otro para el area de subida de archivos. Dentro del directorio de usuario deben estar los siguientes archivos : folders, pass y address_book. Para ver una descripción de tallada de estos archivos haga click aquí

Una vez que el usuario tiene una cuenta, el usuario puede acceder a través de la página de login. Una vez en el programa, el usuario debe agregar la información necesaria para recibir y enviar e-mails. Esta información es agregada accediendo a uno de los botones disponibles en la parte superior. Si todo fucniona correctamente el usuario debe poder acceder a sus e-mails.


LOGGING


El sistema de logging se basa en el módulo Log::Log4perl, por lo que la habilidad de logging, sus características básicas (y los archivos de configuración) se derivan de este. Se puede encontrar más información en el site de búsqueda de CPAN

La configuración default de TRex hace que se lea el archivo de configuración según se indica en $logConfigFile (el valor por default es /etc/TRex/log4perl.conf), que a su tiene almacenada la siguiente configuración :

log4perl.rootLogger=INFO, ErrorLog, AccessLog, DebugLog
log4perl.TRex.Storage.EMail=DEBUG, ErrorLog, AccessLog, DebugLog

log4perl.appender.DebugLog=Log::Dispatch::File           
log4perl.appender.DebugLog.filename=/var/log/TRex/debug.log       
log4perl.appender.DebugLog.mode=append
log4perl.appender.DebugLog.min_level=debug
log4perl.appender.DebugLog.max_level=debug
log4perl.appender.DebugLog.layout=PatternLayout           
log4perl.appender.DebugLog.layout.ConversionPattern=[%d] %L %c - %m (%M)%n 

log4perl.appender.AccessLog=Log::Dispatch::File
log4perl.appender.AccessLog.filename=/var/log/TRex/access.log
log4perl.appender.AccessLog.mode=append
log4perl.appender.AccessLog.min_level=info
log4perl.appender.AccessLog.max_level=notice
log4perl.appender.AccessLog.layout=PatternLayout
log4perl.appender.AccessLog.layout.ConversionPattern=[%d] %m (%M)%n

log4perl.appender.ErrorLog=Log::Dispatch::File
log4perl.appender.ErrorLog.filename=/var/log/TRex/error.log
log4perl.appender.ErrorLog.mode=append
log4perl.appender.ErrorLog.min_level=warning
log4perl.appender.ErrorLog.layout=PatternLayout
log4perl.appender.ErrorLog.layout.ConversionPattern=[%d] %m (%M)%n
Esta, a su vez, divide el area de logging en tres logs distintos : Un punto a tener en cuenta es que cuando se graba un error este corresponde a la infraestructura subyacente (sistema operativo) y no a la lógica derivada de cada módulo. Por ejemplo si sobre un archivo no puede obtenerse un lock este error es grabado en el error.log y el access.log pero si un directorio necesita ser renombrado y este no puede encontrarse, entonces sólo es un intento fallido (no hay falla de la estructura subyacente) y sólo se graba en el access.log.

Esta configuración por default puede cambiarse para ajustarse a la instalación en la que debe ejecutarse.


PANTALLAS


Estas pantallas están reducidas en un 25%, por lo que todo se ve mucho más claro que como los mostramos.

Página principal
Componer un mensaje
Libreta de direcciones
Carpetas
Espacio personal de archivos
Búsqueda

Esta es la pantalla principal de acceso a TRex.
La parte superior es la tabla de contenidos o TOC.
La parte naranja a la izquierda es el scritp de funciones, donde se ubican los botones para cambiar de carpeta, mover y borrar e-mails. Estas funciones operan sobre la ventana de la derecha , si uno o más mensajes están seleccionados, o sobre la ventana inferior.
La ventana debajo de la tabla de contenidos contiene un resúmen de la información de cada mensaje de la carpeta que está siendo mostrada.
La parte inferior se utiliza para leer mensajes.

main amail page

Pantalla usada para componer un mensaje. Los adjuntos se agregan utilizando el formulario al final de la página. El link a la libreta de direcciones nos permite agregar destinatarios desde la libreta de direcciones.

amail compose screen

Esta es la libreta de direcciones. Los contactos se muestran en la parte superior, los grupos en la parte inferior.

Esta página muestra la información de cada uno de las carpetas de e-mail del usuario.

Esta página muestra los archivos que fueron almacenados en el servidor.


Esta es la página de búsqueda


[TRex documentation]

TRex versión 2.1.2

Guía del usuario - Introspección