16.3. Controlar el acceso a las prestaciones de UUCP

UUCP es un sistema bastante flexible. Con esa flexibilidad viene la necesidad de controlar cuidadosamente el acceso a sus prestaciones para prevenir abusos, tanto intencionados como accidentales. Las principales propiedades a tener en cuenta por el administrador de UUCP son la ejecución de órdenes remotas, la transferencia de ficheros y el reenvío. Taylor UUCP proporciona medios para limitar la libertad de máquinas UUCP remotas al aprovechar cada una de estas prestaciones. Con una cuidadosa selección de los permisos, el administrador de UUCP puede asegurarse de preservar la seguridad de la máquina.

16.3.1. Ejecución de órdenes

Es tarea de UUCP copiar ficheros de un sistema a otro y solicitar la ejecución de ciertas órdenes en sistemas remotos. Evidentemente, usted como administrador querrá controlar qué derechos garantiza a otros sistemas— permitirles ejecutar cualquier orden que elijan en su sistema definitivamente no es una buena idea.

De manera predeterminada, las únicas órdenes que permite ejecutar Taylor UUCP a otros sistemas en su máquina son rmail y rnews, que se usan habitualmente para intercambiar correo-e y noticias de Usenet sobre UUCP. Para cambiar el conjunto de órdenes para un sistema en particular, puede usar la palabra clave commands en el fichero sys. De manera similar, puede querer limitar la ruta de búsqueda a los directorios que contengan las órdenes permitidas. Puede cambiar la ruta de búsqueda permitida para una máquina remota con la sentencia command-path . Por ejemplo, puede querer permitir al sistema pablo ejecutar la orden bsmtp además de rmail y rnews:[1]
    system          pablo
    ...
    commands        rmail rnews bsmtp

16.3.2. Transferencias de ficheros

Taylor UUCP también le permite ajustar las transferencias de ficheros con un gran detalle. De manera extrema, puede desactivar las transferencias hacia y desde un sistema en particular. Simplemente configure request como no, y el sistema remoto no podrá ni descargar ficheros de su sistema ni enviarle fichero alguno. De manera similar, puede prohibir a sus usuarios que transfieran ficheros hacia o desde un sistema configurando transfer como no. De manera predeterminada, se permite a los usuarios de los sistemas local y remoto tanto cargar como descargar ficheros.

Además, puede configurar hacia y desde qué directorios pueden copiarse ficheros. Normalmente querrá restringir el acceso desde los sistemas remotos a una jerarquía de un único directorio, pero permitiendo a sus usuarios el envío de ficheros desde sus directorios de usuario. Comúnmente, se permite a los usuarios remotos recibir ficheros sólo desde el directorio UUCP público /var/spool/uucppublic. Éste es el lugar tradicional donde poner los ficheros disposición pública, de manera similar a los servidores FTP en Internet. [2]

Taylor UUCP ofrece cuatro órdenes diferentes para configurar los directorios de envío y recepción de ficheros. Se trata de: local-send, que especifica la lista de directorios desde los que un usuario puede solicitar a UUCP que envíe ficheros; local-receive, que proporciona una lista de directorios desde los que un usuario puede solicitar recibir ficheros; y remote-send y remote-receive, que se comportan de manera análoga desde un sistema externo. Observe el siguiente ejemplo:
    system          pablo
    ...
    local-send      /home ~
    local-receive   /home ~/receive
    remote-send     ~ !~/incoming !~/receive
    remote-receive  ~/incoming

La orden local-send permite a los usuarios de su máquina enviar cualquier fichero bajo /home y desde el directorio público de UUCP hacia pablo. La orden local-receive les permite entonces recibir tanto en el directorio receive de uucppublic en el que cualquiera puede escribir, o en cualquier fichero con permisos de escritura universal bajo /home. La directiva remote-send permite a pablo solicitar ficheros desde /var/spool/uucppublic, excepto los de los directorios incoming y receive. Esto se le señala a uucico precediendo los nombres de los directorios con signos de exclamación. Finalmente, la última línea permite a pablo subir ficheros a incoming.

Uno de los mayores problemas con la transferencia de ficheros usando UUCP es que sólo recibe ficheros en los directorios con permiso de escritura universal. Esto puede tentar a algunos usuarios a poner trampas para otros usuarios, etc. Sin embargo, no hay salida a este problema excepto la desactivación total de la transferencia de ficheros por UUCP.

16.3.3. Reenviar

UUCP ofrece un mecanismo para que otros sistemas lleven a cabo transferencias de ficheros por usted. Por ejemplo, suponga que su sistema tiene acceso por uucp a un sistema llamado seci, pero no a otro sistema llamado uchile. Esto le permite hacer que seci descague un fichero desde uchile por usted y se lo envíe a su sistema. La siguiente orden lograría esto:
    $ uucp -r seci!uchile!~/find-ls.gz ~/uchile.files.gz

A esta técnica de pasar una tarea a través de muchos sistemas se la conoce como reenvío. En su propio sistema UUCP, querrá limitar el servicio de reenvío a unas pocas máquinas en las que confíe para no acabar con una monstruosa factura telefónica tras descargar por ellas las fuentes de la última versión de X11R6.

De manera predeterminada, Taylor UUCP prohibe el reenvío. Para habilitar el reenvío en un sistema en particular, puede usar la orden forward. Esta orden especifica una lista de sitios hacia o desde los que el sistema puede solicitarle reenviar tareas. Por ejemplo, el administrador UUCP de seci tendría que añadir las siguientes líneas al fichero sys para permitir a pablo solicitar ficheros desde uchile:
    ####################
    # pablo
    system          pablo
    ...
    forward         uchile
    ####################
    # uchile
    system          uchile
    ...
    forward-to      pablo

La entrada forward-to para uchile es necesaria para que cualquier fichero devuelto por él se pase realmente a pablo. De otra manera, UUCP se desharía de ellos. Esta entrada usa una variación de la orden forward que permite a uchile enviar ficheros sólo a pablo a través de seci y no a la inversa.

Para permitir el reenvío a cualquier sistema, use la palabra clave especial ANY (las mayúsculas son necesarias).

Notas

[1]

bsmtp se usa para enviar correo con SMTP por lotes.

[2]

Puede usar una tilde (~) para referirse al directorio público de UUCP, pero sólo en los ficheros de configuración de UUCP; fuera de ellos suele traducirse en el directorio principal del usuario.