EL MUNDO DE WINDOWS - UNIX
------------------------------------------------Vamos a intentar ver la interoperatividad del mundo Windows y del mundo Unix, y ver que en una red corporativa, ambos pueden coexistir sin ningún problema. Veremos igualmente la conectividad y los sistemas de archivos.
Empezaremos con uno de los aspectos más importantes en toda red: los permisos y seguridad. Comenzamos con ellos porque a los largo de los sucesivos puntos que iremos viendo, se utilizan los conceptos anteriores como ideas básicas. Posteriormente veremos la conectividad y los sistemas de archivos así como el nuevo paquete de Microsoft para Windows NT / 2000 para UNIX (SFU), y al final se examinarán las diferencias entre las interfaces de comandos de Windows 2000 y de Unix.
PERMISOS Y CONCEPTOS DE SEGURIDAD
-----------------------------------------------------------------
Una de las mayores diferencias entre los sistemas operativos, y el mundo Windows y Unix no es una excepción, es el modo en que se tratan los permisos y la seguridad. Estas diferencias, a veces, son sutiles y suelen llevar al usuario incauto a realizar suposiciones falsas.
* Veamos como muestra Unix las características de un archivo:
-rwxr-x-x 2 usuario1 dba 15234 Apr 10 18:43 pruebas
Aquí se indica prácticamente todo lo que hace falta saber sobre un archivo con respecto a la seguridad y a los permisos. Empecemos a analizar desde la parte izquierda y veamos qué significa y su comparación con Windows 2000.
El primer guión (-) indica que ese archivo NO es un directorio (o carpeta). Si lo fuera, aparecería una "d" en su lugar. Unix trata los directorios meramente como otro archivo, aunque especial, y los permisos tienen un significado ligeramente diferente cuando hacen referencia a un directorio y a un archivo.
Los tres caracteres siguientes, corresponden a los permisos del propietario, que puede ser distinto de su creador original, ya que Unix, permite a los usuarios "dar" archivos a otros usuarios. La "r" indica que el propietario tiene derecho a leer (read) el archivo, la "w" significa que puede escribir (write) en él, y la "x" permite al propietario del archivo ejecutarlo, si fuese un programa.
* En Windows, el sistema operativo decide si un programa es ejecutable basándose en el nombre del archivo. Si el nombre del archivo tiene una extensión .COM, .EXE, .BAT o .CMD, puede ejecutarse siempre que el usuario tenga los permisos correspondientes. En Unix, no hay ninguna asociación entre la extensión y la ejecutabilidad del archivo, de hecho, la mayor parte de los archivos Unix no tienen ninguna extensión. Lo único que determina que el archivo es un ejecutable, es su permiso. Por tanto, aunque la convención en un sistema dado pueda ser denominar siempre a las secuencias de comandos de la interfaz de comandos (el equivalente Unix de los archivos por lotes o archivos .BAT) con un nombre que acabe en .sh o .ksh, esto no tiene significado real. El archivo debe recibir el permiso de ejecución para poder ejecutarlo.
Los caracteres quinto, sexto y septimo corresponden a los permisos de los miembros del mismo grupo del propietario del archivo. La "r" significa que los miembros del grupo pueden leer, el "-" significa que no tienen èrmiso de escribir en él, borrarlo o modificarlo de cualquier manera, y la "x" les concede la capacidad de ejecutarlo.
Finalmente los últimos tres caracteres del primer grupo corresponden a los permisos del resto del mundo (al resto de usuarios).
** Tal y como vemos, en el mundo real, UNIX únicamente posee tres permisos básicos: lectura, escritura y ejecución.
El siguiente caracter, el número "2". indica que hay dos vínculos duros contra el archivo. Un "vínculo duro" concede otro nombre al mismo archivo. Sigue habiendo un único archivo real guardado en el disco duro, pero hay dos entradas de directorio que apuntan a ese archivo. No hay límites prácticos al número de vínculos duros que puede haber con un mismo archivo, pero no todos los vínculos con el archivo deben estar en el mismo sistema de archivos.
Los dos grupos siguientes del nombre, son el "propietario": usuario1, y el grupo del archivo "dba". Aunque suelen ser los nombres del usuario y grupo, también podrían ser un número si el usuario y grupo del archivo no tuvieran una cuenta en el sistema.
A continuación aparece el tamaño del archivo, la fecha y hora en que se creó el archivo o se modificó y el nombre del archivo "pruebas": realmente la entrada del directorio del archivo que se corresponde con este vínculo duro con el archivo. Observemos que ningún vínculo tiene preferencia sobre los demás. No hay nada significativo en cuanto al nombre que aparezca primero: todos se tratan por igual. Y el borrado de un vínculo no borra el archivo, sólo esa referencia al mismo.
Vínculos simbólicos
---------------------------
Unix soporta tanto vínculos duros como vínculos simbólicos. Los vínculos simbólicos son similares a los accesos directos de Windows, pero con algunas diferencias. La diferencia más importante, es que en Unix, cuando se tiene acceso al vínculo simbólico, en realidad se tiene acceso al archivo al que apunta, no al propio vínculo. Por ejemplo, si se edita un vínculo simbólico con un archivo de texto, en realidad se está editando el archivo de texto original. Con los accesos directos de Windows, sólo se puede utilizar un vínculo para iniciar un archivo ejecutable o para abrir una carpeta.
Los vínculos simbólicos se diferencian de los vínculos duros en que el archivo real tiene preferencia sobre sus vínculos simbólicos. Veamos este otro:
lrwxrwxwx 1 usuario1 dba 15234 Apr 10 18:43 pruebas -> /u/pru/pruebas
Como puede verse, ahora no sólo comienza con la letra "l" sino que además, muestra realmente el lugar a donde apunta el vínculo.
En este caso, el nombre del archivo y el que apunta el vínculo son los mismos. Aunque esto no es imprescindible, se trata del uso más frecuente de los vínculos simbólicos: hacer que aparezca que un archivo está en un lugar, cuando realmente se halla en otro.
Otra característica de los vínculos simbólicos que los distingue de los vínculos duros es que puede apuntar a otros sistemas de archivos e incluso máquinas. Se puede tener un vínculo simbólico que apunte a un archivo que resida en otra máquina completamente diferente.
NOTA: Si se copia un archivo sobre un vínculo simbólico, se romperá el vínculo. El nuevo archivo sustituirá al vínculo con el archivo. No obstante, el archivo original seguirá existiendo, lo que, como mínimo, hace que la duplicación de archivos resulte confusa.
Niveles de privilegios
-----------------------------
Tradicionalmente Unix divide al mundo únicamente en tres tipos de usuarios: el propietario del archivo, los miembros del grupo y el resto del mundo. Estos tres niveles de privilegios se conocen como: propietario, grupo y otros. Hasta ahora todo va bien. Se parece mucho a Windows 2000 ¿verdad?. Bueno: no tanto. La mayor diferencia estriba en el segundo nivel de privilegios: el grupo.
En los sistemas Unix con seguridad tradicional, cada usuario sólo está activo simultaneamente en un grupo. Cuando ese usuario crea un archivo, este se crea con permisos para grupo basados estrictamente en el grupo actual del creador del archivo. Esta situación puede suponer complicaciones interesantes y sutiles al compararla con la metodología de Windows 2000. Si el inicio de sesión principal de un usuario es con uno de los grupos estándar, las cosas suelen transcurrir como se espera. Sin embargo, cuando un usuario pertenece a un grupo especializado con pertenencia restringida y crea archivos mientras ese grupo es el grupo activo, la capacidad de los usuarios ajenos al grupo para tener acceso al archivo puede quedar restringida.
Los usuarios que no son miembros activos del grupo que posee el archivo y que no son su propietario se hallan en el otro nivel de privilegios. Esta disposición es esencialmente igual que el grupo de Windows 2000 denominado "Todos". Un usuario en la otra categoria no tiene más permiso para el acceso al archivo que el que tienen el resto de los usuarios.
* En los estudios sobre seguridad de Unix, hay que recordar un principio supremo: el usuario "root" (a veces denominado superusuario) tiene acceso a todo. En el mundo de Windows 2000 se puede definir fácilmente un archivo o un directorio de modo que ni siquiera los usuarios con privilegios administrativos tengan acceso a él sin cambiar su propiedad, pero en el mundo Unix, esta restricción no existe. No sólo eso, sino que el superusuario puede incluso cambiar su identidad para tener la misma que un usuario dado.
En cualquier caso, el uso de palabras como seguridad y privacidad en este ámbito, carece de sentido.
CONECTIVIDAD BÁSICA
--------------------------------------
Ahora que hemos introducido las diferencias entre los modelos de seguridad de Windows 2000 y de Unix, vamos a ver la manera en que son compatibles. Por un motivo, sin complementos adicionales, Windows 2000 coexiste razonablemente bien con los servidores Unix. El protocolo de red predeterminado para ambos sistemas operativos es ahora el mismo -TCP/IP-. Pueden compartir facilmente DNS, DHCP y otros servicios. Y la mera conectividad entre Windows 2000 y Unix puede tratarse mediante los clientes FTP y Telnet en las máquinas de Windows 2000.
Protocolo para transferencias de archivos
-------------------------------------------------------
Todas las versiones de Windows 2000 incluyen un cliente FTP sencillo de línea de comandos y pueden tratar FTP desde el explorador de Windows hasta cierto límite. El cliente en modo texto, no proporciona ningún extra, pero resulta bastante cómodo para los usuarios de Unix y funciona sin complicaciones. Quienes deseen un cliente FTP más gráfico y amistoso tienen una amplia variedad en la que elegir, incluidos algunos que son puro software gratuitos o software de libre distribución. El preferido por mi parte, es el WS_FTP Pro de Ipswitch (www.ipswitch.com).
Windows 2000 también incluye un servidor FTP completo como parte de la familia del IIS. Con un cliente y un servidor FTP disponibles de origen resulta sencillo copiar archivos entre máquinas Unix y Windows 2000 en una red.
Telnet
---------
Todas las versiones de Windows 2000 vienen con el nuevo cliente Telnet de modo texto que se estrenó en el SFU. El cliente de Telnet semigráfico, totalmente horrible, que se había proporcionado desde WIndows 3.x desaparece por fin. El nuevo cliente es más rapido, tiene mejores emulaciones de terminales y se puede considerar bastante bueno para la mayor parte de sus fines., Soporta ANSI, incluído color, VT52, VT100 y VTNT.
W2000 tiene incorporado un demonio de Telnet, o servidor. Este servidor es el mismo que se proporciona en el SFU, pero está limitado a dos conexiones simultáneamente.
SISTEMAS DE ARCHIVOS
----------------------------------------
El modo de compartir archivos de red de Windows 2000 se basa en el mecanismo tradicional de Microsoft de los bloques de mensajes de servidor (Server Messages Blocks, SMB). Los sistemas UNIX por su parte, utilizan el sistema de archivos de red (Network File System, NFS) -desarrollado originalmente por SUN Microsystems- para compartir los sistemas de archivos en la red.
Hasta la publicación de SFU sólo se disponía de soluciones NFS de otros fabricantes para los sistemas Windows que necesitaban compartir recursos de archivos con los sistemas Unix. La mayor parte de estas soluciones de otros fabricantes resultaban caras y problemáticas. El principal problema era su incapacidad para mantener al nivel de los Service Packs de Windows NT, que casi siempre parecían descomponer estas soluciones NFS. Además estas soluciones tenían frecuentemente problemas significativos de rendimiento.
No obstante, varias soluciones Unix potentes basadas en SMB abordan el problema del modo de compartir recursos de archivos entre Windows NT y Unix. Estas soluciones SMB varían en coste desde la gratuidad hasta las más caras y soportan las redes nativas de Windows al nivel del Grupo de Trabajo o Dominio. Con la publicación de Windows 2000, sólo el tiempo podrá decir el modo en que estas soluciones logran mantener al nivel de los cambios en el modelo de seguridad de Windows 2000 respecto del modelo de Windows NT.
Sistema de archivos de Red
-------------------------------------
Cuando se creó, NFS se diseñó para ejecutarse como protocolo de difusión mediante el protocolo de datagramas de usuario (User Datagram Protocol, UDP). Este protocolo creaba problemas importantes de rendimiento y tráfico de red para quienes pretendían implementar grandes cantidades de red NFS y hacía dificil compartir sistemas de archivos más allá de los limites de los enrutadores (routers). Finalmente, el estándar del NFS se modificó para que soportara TCP para la red NFS y muchos clientes y servidores actuales soportan este mecanismo. No obstante, muchas implementaciones antiguas de NFS todavía en funcionamiento no soportan TCP, por lo que el mecanismo predeterminado para SFU y otras implementaciones de NFS en Windows 2000 es UDP.
En conjunto, el rendimiento de las transferencias de archivos NFS hacia y desde el servidor de Windows 2000 es sustancialmente más baja que la mayor parte de las implementaciones SMB. Para entornos en los que se debe copiar habitualmente archivos grandes entre sistemas Windows 2000 y Unix, es probable que NFS no sea una solución satisfactoria. No obstante, si las necesidades son principalmente de acceso transparente a los recursos Unix residentes en servidores Unix, NFS es la mejor opción. Proporciona un entorno completamente integrado para los usuarios de Windows 2000. (Si se instala SFU como se indica más adelante, hay que tener en cuenta estas recomendaciones).
Bloque de mensajes del servidor -SMB-
-----------------------------------------------------
El principal problema con el que tienen que lidiar los usuarios de SMB sobre Unix es el modelo cambiante de seguridad de WIndows 2000. Se utilizan dos mecanismos para tratar la seguridad con las soluciones SMB sobre Unix: la seguridad a nivel de grupo de trabajo y la seguridad a nivel de dominio de Windows NT4.
La seguridad de grupo de trabajo sufre los mismos problemas que los grupos de trabajo en el entorno empresarial: resulta más dificil gestionar a medida que aumenta el numero de usuarios y de máquinas, y tiene opciones limitadas para una verdadera gestión de la seguridad. No obstante, la seguridad de grupo de trabajo tiene realmente sentido en entornos más reducidos, donde resulta fácil de comprender y sencilla de configurar. Además hay una buen ventaja de costes: en casi todas las plataformas de Unix se dispone de un servidor SMB de software gratuito fácil de encontrar y bien implementado, denominado Samba. Tambien se dispone de otros servidores SMB para grupos de trabajo que se pueden ejecutar en gran variedad de plataformas. Tienden a ser más parecidos a Windows y más sencillos de configurar y de administrar que Samba, que muestra su procedencia de código abierto.
También se pueden obtener servidores SMB de dominios Windows NT 4 de varios fabricantes de Unix. Todos ellos se basan en el puerto inicial de AT&T para Unix de la tecnología de servidores avanzados de Microsoft. Cada uno de ellos está limitado a ejecutarse en la plataforma para la que fue diseñado, y todos tienen pequeñas diferencias debido a que el puerto de AT&T necesitaba configurarse en la mayor parte de los casos. Todos los servidores SMB pueden ser tanto controladores de Dominio Principal como controladores de Dominio de reserva en los dominios de Windows NT, pero todos ellos tienen problemas al trabajar con el nuevo modelo de seguridad de Windows 2000. Estos servidores, basados en los modelos de seguridad de Windows NT 4, por desgracia, obligan a permanecer en el modo mixto.
Los servidores de dominio SMB presentan una ventaja importante respecto de los servidores SMB de grupos de trabajo: para los usuarios y para los administradores de la red de Windows, todos tienen el mismo aspecto y comportamiento que los servidores auténticos de Windows NT 4. Para gestionarlos se utilizan las herramientas de administración usuales de Windows NT Server, y los servidores y las unidades compartidas tienen el mismo aspecto para los usuarios que los servidores de Windows NT, lo que elimina problemas de formación y de interfaces de usuario. Además todos los servidores SMB tienen una ventaja respecto de las soluciones NFS: suelen ser significativamente más rapidos en las transferencias de archivos, especialmenta al tratar archivos grandes.
Un saludo,
--
Jose Manuel Tella Llop
jmtella@compuserve.com
9 - abril - 2001