Use la opción –VALIDATE junto con la opción –COMMANDS cada vez que especifique comandos que sean posiblemente peligrosos para la seguridad de la máquina. –VALIDATE es simplemente un nivel adicional de seguridad además de la opción –COMMANDS, aunque es una manera más segura de abrir el acceso a comandos que ALL.
–VALIDATE proporciona un cierto grado de verificación de la identidad del emisor comprobando el nombre de host de un equipo que llama con el nombre de inicio de sesión que utiliza. La siguiente cadena garantiza que si una máquina que no sea widget ni gadget intenta iniciar sesión como Uwidget, la conexión se rechaza.
LOGNAME=Uwidget VALIDATE=widget:gadget
La opción –VALIDATE requiere que los equipos con privilegios tengan un inicio de sesión y una contraseña únicos para las transacciones del UUCP. Un aspecto importante de esta validación es que el inicio de sesión y la contraseña que están asociados con esta entrada están protegidos. Si un desconocido obtiene esa información, esa opción –VALIDATE particular ya no puede considerarse segura.
Considere cuidadosamente a qué equipos remotos otorga inicios de sesión y contraseñas con privilegios para transacciones del UUCP. Proporcionar a un equipo remoto un inicio de sesión y una contraseña especiales con las capacidades de acceso a archivos y ejecución remota es como otorgar a cualquier usuario de dicho equipo un inicio de sesión y una contraseña comunes en su equipo. Por lo tanto, si no puede confiar en algún usuario del equipo remoto, no proporcione a ese equipo un inicio de sesión y una contraseña con privilegios.
La siguiente entrada LOGNAME especifica que si uno de los equipos remotos que afirma ser eagle, owl o hawk inicia sesión en su equipo, debe haber utilizado el inicio de sesión uucpfriend:
LOGNAME=uucpfriend VALIDATE=eagle:owl:hawk
Si un desconocido obtiene la contraseña y el inicio de sesión uucpfriend, el enmascaramiento es sencillo.
No obstante, ¿en qué se relaciona esta entrada con la opción –COMMANDS, que aparece sólo en las entradas MACHINE? Esta entrada enlaza la entrada MACHINE (y la opción –COMMANDS) a una entrada LOGNAME que está asociada con un inicio de sesión con privilegios. Este enlace es necesario porque el daemon de ejecución no se ejecuta mientras el equipo remoto tiene una sesión iniciada. En realidad, el enlace es un proceso asíncrono que no sabe qué equipo envió la solicitud de ejecución. Por lo tanto, la verdadera pregunta es: ¿cómo sabe el equipo de dónde vinieron los archivos de ejecución?
Cada equipo remoto tiene su propio directorio de cola de impresión en el equipo local. Estos directorios de cola de impresión tienen permiso de escritura que se otorga únicamente a programas del UUCP. Los archivos de ejecución del equipo remoto se colocan en el directorio de cola de impresión después de que se transfieren a su equipo. Cuando el daemon uuxqt se ejecuta, puede utilizar el nombre del directorio de cola de impresión para buscar la entrada MACHINE en el archivo Permissions y obtener la lista COMMANDS. O bien si el nombre del equipo no aparece en el archivo Permissions, se utiliza la lista predeterminada.
En este ejemplo, se muestra la relación entre las entradas MACHINE y LOGNAME:
MACHINE=eagle:owl:hawk REQUEST=yes \ COMMANDS=rmail:/usr/local/rnews \ READ=/ WRITE=/ LOGNAME=uucpz VALIDATE=eagle:owl:hawk \ REQUEST=yes SENDFILES=yes \ READ=/ WRITE=/
El valor de la opción –COMMANDS significa que los usuarios remotos pueden ejecutar rmail y /usr/local/rnews.
En la primera entrada, debe asumir que cuando desea llamar a uno de los equipos de la lista, en realidad llama a eagle, owl o hawk. Por lo tanto, los archivos que se colocan en uno de los directorios de cola de impresión de eagle, owl o hawk son colocados allí por uno de esos equipos. Si un equipo remoto inicia sesión e indica que es uno de esos tres equipos, los archivos de ejecución también se colocan en el directorio de cola de impresión con privilegios. Por lo tanto, tiene que validar que el equipo tenga el inicio de sesión uucpz con privilegios.