20 diciembre 2007

Samba: Unix enredando con windows

La web de Samba dice: "Abriendo windows a un mundo más amplio". Pues eso: Samba es un conjunto de utilidades que permiten comunicarse con redes de ordenadores con Windows. Es una implementación libre del protocolo de red utilizado por Windows, el SMB. El protocolo SMB lo creó IBM y fue utilizado en sus inicios por multitud de fabricantes para compartir archivos entre ordenadores. Microsoft lo empezó a utilizar con el MSDOS y ya no se han despegado de él, haciéndole diversas modificaciones, incluyendo el cambio de nombre a CIFS en el 98. O sea, que se le llama SMB/CIFS. La última versión de SMB, la 2, lanzada con el último S.O. de Microsoft, parece ser una reimplementación completa del protocolo para que no les digan que sigue siendo de IBM, haciéndolo incompatible con el anterior. Éste también está soportado por samba.

Vamos a ver rápidamente qué cosillas podemos hacer con samba.
Lo básico es que si estamos en una red con un dominio de Windows (cualquier versión de sus servidores) o un grupo de trabajo, samba puede ser un miembro del dominio o del grupo. Podrá acceder a los archivos compartidos por otros y compartir archivos sin ningún problema, siempre que no nos despistemos con los permisos:
Supongamos que compartimos archivos con samba y no le ponemos "sólo lectura", que equivale a que les damos permiso de escritura; podríamos pensar que así cualquiera que acceda podrá hacer lo que quiera. No, hay que mirar que permisos Unix tienen esos archivos. Hay que tener en cuenta que no nos podemos saltar a la torera el funcionamiento de nuestro sistema de archivos (sea el que sea). Si los archivos compartidos tienen el acceso permitido en Unix sólo a su propietario y accedemos como otro usuario, no veremos nada, sea por la red o sea localmente. Si dichos archivos tienen en Unix permiso total para todos y lo compartimos como sólo lectura con samba, desde la red sólo podremos leerlo. Los permisos resultantes para los archivos compartidos siempre serán los más restrictivos.

Samba puede hacer muchas más cosas. Puede ser un controlador de dominio NT, permitiendo centralizar las cuentas de los usuarios y máquinas, lo que significa que los usuarios se validan ante samba, y pueden guardar sus datos y perfiles centralizadamente. No puede crear un directorio activo de windows 2000 hasta que no salga Samba 4, pero puede hacer todo lo demás. Para que sea casi como lo del directorio activo podemos instalar un servidor de directorio LDAP y un servidor de claves Kerberos, que es lo que usa aquel, si es que lo necesitamos, claro. Le faltarían algunos detalles (políticas), pero su elevado rendimiento y escalabilidad lo hace bastante más apto que windows en general.

Para configurar samba podemos modificar directamente el archivo /etc/samba/smb.conf o más fácil, usar la utilidad de configuración por web SWAT, incluida en los repositorios de todas las distribuciones. En ambos casos necesitamos tener claro qué queremos hacer, porque el asunto es de poner valores a los parámetros. Calma, que SWAT nos enlaza con la ayuda del archivo smb.conf (que podemos mirar también con man) para aclararnos los parámetros que no conozcamos. También tiene un pequeño asistente muy general, y gestión de compartidos, aunque el asunto de los compartidos ya lo integra Gnome (de forma más limitada). Desconozco lo que incluye KDE.
También se puede configurar con el módulo samba de webmin, utilidad web que permite configurar casi todo. En según que distribuciones hay asistentes propios (RedHat, Centos) que facilitan el asunto para casos generales, pero ocultan muchas opciones para casos más específicos que tendremos que ajustar directamente. Próximamente Ubuntu pretende facilitar el asunto. Espero que no olviden a NFS donde no hay windows, que hay quien usa samba entre máquinas linux.

No hay comentarios: