Samba (software)
Samba es una reimplementación de software gratuito del protocolo de red SMB y fue desarrollado originalmente por Andrew Tridgell. Samba proporciona servicios de archivo e impresión para varios clientes de Microsoft Windows y puede integrarse con un dominio de servidor de Microsoft Windows, ya sea como controlador de dominio (DC) o como miembro de dominio. A partir de la versión 4, admite dominios Active Directory y Microsoft Windows NT.
Samba se ejecuta en la mayoría de los sistemas similares a Unix, como Linux, Solaris, AIX y las variantes BSD, incluido el servidor macOS de Apple y el cliente macOS (Mac OS X 10.2 y superior). Samba también se ejecuta en otros sistemas operativos, como OpenVMS e IBM i. Samba es estándar en casi todas las distribuciones de Linux y también se incluye comúnmente como un servicio de sistema básico en otros sistemas operativos basados en Unix. Samba se publica bajo los términos de la Licencia Pública General GNU. El nombre Samba proviene de SMB (Server Message Block), el nombre del protocolo propietario utilizado por el sistema de archivos de red de Microsoft Windows.
Historia temprana
Andrew Tridgell desarrolló la primera versión de Samba Unix en diciembre de 1991 y enero de 1992, como estudiante de doctorado en la Universidad Nacional de Australia, utilizando un analizador de paquetes para realizar análisis de red del protocolo utilizado por el software de servidor DEC Pathworks. En el momento de los primeros lanzamientos, versiones 0.1, 0.5 y 1.0, todas de la primera quincena de enero de 1992, no tenía un nombre propio, y Tridgell simplemente lo llamó "un servidor de archivos Unix para Dos Pathworks".;. En el momento de la versión 1.0, se dio cuenta de que "de hecho había implementado el protocolo netbios" y que "este software podría usarse con otros clientes de PC".
Con un enfoque en la interoperabilidad con LAN Manager de Microsoft, Tridgell lanzó "netbios para Unix", Observer, versión 1.5 en diciembre de 1993. Esta versión fue la primera en incluir también software de cliente. como servidor. Además, en este momento se eligió GPL2 como licencia.
A la mitad de la serie 1.5, el nombre se cambió a smbserver. Sin embargo, Tridgell recibió un aviso de marca comercial de la empresa "Syntax", que vendió un producto llamado TotalNet Advanced Server y era propietaria de la marca comercial de "SMBserver". El nombre "Samba" se derivó al ejecutar el comando grep de Unix a través del diccionario del sistema buscando palabras que contenían las letras S, M y B, en ese orden (es decir, grep -i '^s.*m.*b' /usr/share /dict/palabras).
Las versiones 1.6, 1.7, 1.8 y 1.9 siguieron relativamente rápido, y la última se lanzó en enero de 1995. Tridgell considera que la adopción de CVS en mayo de 1996 marcó el nacimiento del equipo Samba, aunque hubo contribuciones de otros personas, especialmente Jeremy Allison, anteriormente.
La versión 2.0.0 se lanzó en enero de 1999 y la versión 2.2.0 en abril de 2001.
Historial de versiones
La versión 3.0.0, lanzada el 23 de septiembre de 2003, fue una actualización importante. Samba obtuvo la capacidad de unirse a Active Directory como miembro, aunque no como controlador de dominio. Los lanzamientos puntuales posteriores a 3.0 han agregado nuevas características menores. Actualmente, la última versión de esta serie es la 3.0.37, lanzada el 1 de octubre de 2009 y enviada de forma voluntaria. La serie 3.0.x llegó oficialmente al final de su vida útil el 5 de agosto de 2009.
La versión 3.1 se usó solo para desarrollo.
Con la versión 3.2, el proyecto decidió pasar a versiones basadas en el tiempo. Cada seis meses aparecerán nuevos lanzamientos importantes, como 3.3, 3.4, etc. Las nuevas funciones solo se agregarán cuando se realice una versión principal, las versiones puntuales serán solo para corregir errores. Además, 3.2 marcó un cambio de licencia de GPL2 a GPL3, con algunas partes lanzadas bajo LGPL3. El principal cambio técnico en la versión 3.2 fue autogenerar gran parte del código DCE/RPC que solía ser hecho a mano. La versión 3.2.0 se lanzó el 1 de julio de 2008 y su versión actual es la 3.2.15 del 1 de octubre de 2009. La serie 3.2.x llegó oficialmente al final de su vida útil el 1 de marzo de 2010.
Fecha | Versión | Descripción |
---|---|---|
23 de septiembre de 2003 | Versión antigua, ya no se mantiene: 3.0 | Active Directory support |
1° de julio de 2008 | Versión antigua, ya no se mantiene: 3.2 | Se actualizará según sea necesario para las cuestiones de seguridad únicamente |
27 de enero de 2009 | Versión antigua, ya no se mantiene: 3.3 | |
3 de julio de 2009 | Versión antigua, ya no se mantiene: 3.4 | Esta fue la primera versión para incluir Samba 3 y Samba 4 código fuente. |
1 de marzo de 2010 | Versión antigua, ya no se mantiene: 3.5 | Esta fue la primera versión en incluir soporte experimental para SMB2. |
9 de agosto de 2011 | Versión antigua, ya no se mantiene: 3.6 | Esta es la primera rama que incluye el soporte completo para SMB2. |
11 de diciembre de 2012 | Versión antigua, ya no se mantiene: 4.0 | Es una reescritura importante que permite a Samba ser un controlador de dominio Active Directory, participando plenamente en un dominio de Windows Active Directory. Su primer avance técnico (4.0.0TP1) fue lanzado en enero de 2006 después de 3 años de desarrollo. |
10 de octubre de 2013 | Versión antigua, ya no se mantiene: 4.1 | Apoyo al SMB3 |
4 de marzo de 2015 | Versión antigua, ya no se mantiene: 4.2 | Compresión de archivos basada en Btrfs, instantáneas e integración winbind |
8 de septiembre de 2015 | Versión antigua, ya no se mantiene: 4.3 | Nuevas características de registro, soporte SMB 3.1.1 |
22 de marzo de 2016 | Versión antigua, ya no se mantiene: 4.4 | Solicitudes de flush asincrónicas |
Septiembre 7, 2016 | Versión antigua, ya no se mantiene: 4.5 | NTLM v1 deshabilitado por defecto, vista de lista virtual, varias mejoras de rendimiento |
7 de marzo de 2017 | Versión antigua, ya no se mantiene: 4.6 | Soporte multiproceso Netlogon |
21 de septiembre de 2017 | Versión antigua, ya no se mantiene: 4.7 | Samba AD con Kerberos MIT |
Marzo 13, 2018 | Versión antigua, ya no se mantiene: 4.8 | Soporte de máquina de tiempo de Apple. Las configuraciones que usan modos de seguridad de 'dominio' o 'ads' exigen que 'winbindd' funcione. |
Septiembre 13, 2018 | Versión antigua, ya no se mantiene: 4.9 | Muchos cambios: ver notas de liberación |
19 de marzo de 2019 | Versión antigua, ya no se mantiene: 4.10 | |
17 de septiembre de 2019 | Versión antigua, ya no se mantiene: 4.11 | SMB1 es deshabilitado por defecto como una mitigación para la vulnerabilidad WannaCry. |
3 de marzo de 2020 | Versión antigua, ya no se mantiene: 4.12 | |
22 de septiembre de 2020 | Versión más antigua, sin embargo, mantenida: 4.13 | Samba 4.13 eleva la versión mínima de Python a 3.6. |
9 de marzo de 2021 | Versión más antigua, sin embargo, mantenida: 4.14 | Mayor revisión del subsistema VFS y más, ver notas de liberación. |
20 de septiembre de 2021 | Versión más antigua, sin embargo, mantenida: 4.15 | Muchos cambios, ver notas de liberación. |
21 de marzo de 2022 | Versión más antigua, sin embargo, mantenida: 4.16 | Muchos cambios, ver notas de liberación. |
13 de septiembre de 2022 | Versión estable actual: 4.17 | Muchos cambios, ver notas de liberación. |
Leyenda: Versión antigua Versión más antigua, todavía mantenida Última versión Última versión de vista previa Liberación del futuro |
Seguridad
Algunas versiones de Samba 3.6.3 e inferiores sufren serios problemas de seguridad que pueden permitir que usuarios anónimos obtengan acceso root a un sistema desde una conexión anónima, a través de la explotación de un error en la llamada a procedimiento remoto de Samba.
El 12 de abril de 2016, se reveló Badlock, un error de seguridad crucial en Windows y Samba. Badlock para Samba está referenciado por CVE-2016-2118 (SAMR y LSA man in the middle attack son posibles).
El 24 de mayo de 2017, se anunció que se había encontrado una vulnerabilidad de ejecución remota de código en Samba llamada EternalRed o SambaCry, que afectaba a todas las versiones desde la 3.5.0. A esta vulnerabilidad se le asignó el identificador CVE-2017-7494.
El 14 de septiembre de 2020, se publicó un exploit de prueba de concepto para la vulnerabilidad de inicio de sesión de red llamado Zerologon (CVE-2020-1472) para el cual existe un parche desde agosto. Se ha ordenado a algunas agencias federales que utilizan el software que instalen el parche.
Características
Samba permite compartir archivos e impresoras entre computadoras que ejecutan Microsoft Windows y computadoras que ejecutan Unix. Es una implementación de docenas de servicios y una docena de protocolos, que incluyen:
- NetBIOS sobre TCP/IP (NBT)
- SMB (conocido como CIFS en algunas versiones)
- Samba admite extensiones POSIX para CIFS/SMB. La extensión inicial fue CIFS VFS (CAP_UNIX) de 2004, que ha sido un tanto superada por SMB3.
- DCE/RPC o más específicamente, MSRPC, la Red Neighborhood suite of protocols
- Un servidor WINS también conocido como NetBIOS Name Server (NBNS)
- El NT Domain suite de protocolos que incluye NT Domain Logons
- Base de datos del Administrador de Cuentas de Seguridad (SAM)
- Servicio de la Autoridad Local de Seguridad (LSA)
- Servicio de impresión de estilo NT (SPOOLSS)
- NTLM
- Active Directory Logon usando versiones modificadas de Kerberos y LDAP
- Servidor DFS
Con frecuencia, todos estos servicios y protocolos se denominan incorrectamente simplemente como NetBIOS o SMB. Los protocolos NBT (NetBIOS sobre TCP/IP) y WINS, y su protocolo SMB versión 1 subyacente, están obsoletos en Windows. Desde Windows Vista, el protocolo WS-Discovery se ha incluido junto con SMB2 y sus sucesores, que reemplazan a estos. (WS-Discovery se implementa en plataformas similares a Unix mediante demonios de terceros que permiten descubrir recursos compartidos de Samba cuando los protocolos en desuso están deshabilitados).
Samba configura recursos compartidos de red para directorios Unix elegidos (incluidos todos los subdirectorios contenidos). Estos aparecen para los usuarios de Microsoft Windows como carpetas normales de Windows accesibles a través de la red. Los usuarios de Unix pueden montar los recursos compartidos directamente como parte de su estructura de archivos usando el comando mount.cifs o, alternativamente, pueden usar una utilidad, smbclient (libsmb) instalada con Samba para leer los recursos compartidos con una interfaz similar a una línea de comando estándar FTP. programa. Cada directorio puede tener diferentes privilegios de acceso superpuestos a las protecciones normales de archivos de Unix. Por ejemplo: los directorios de inicio tendrían acceso de lectura/escritura para todos los usuarios conocidos, lo que permitiría a cada uno acceder a sus propios archivos. Sin embargo, aún no tendrían acceso a los archivos de otros a menos que normalmente exista ese permiso. Tenga en cuenta que el recurso compartido netlogon, normalmente distribuido como un recurso compartido de solo lectura desde /etc/samba/netlogon
, es el directorio de inicio de sesión para los scripts de inicio de sesión del usuario.
Los servicios de Samba se implementan como dos demonios:
- smbd, que proporciona el archivo y servicios compartidos de impresoras, y
- nmbd, que proporciona el servicio de nombre NetBIOS a IP-address. NetBIOS sobre TCP/IP requiere algún método para asignar los nombres de los ordenadores NetBIOS a las direcciones IP de una red TCP/IP.
La configuración de Samba se logra editando un solo archivo (normalmente instalado como /etc/smb.conf
o /etc/samba/smb.conf
). Samba también puede proporcionar secuencias de comandos de inicio de sesión de usuario e implementación de políticas de grupo a través de poledit
.
Samba está incluido en la mayoría de las distribuciones de Linux y se inicia durante el proceso de arranque. En Red Hat, por ejemplo, el script /etc/rc.d/init.d/smb
se ejecuta en el momento del arranque e inicia ambos demonios. Samba no está incluido en Solaris 8, pero hay disponible una versión compatible con Solaris 8 en el sitio web de Samba. El ArcaOS basado en OS / 2 incluye Samba para reemplazar el antiguo software IBM LAN Server.
Samba incluye una herramienta de administración web llamada Herramienta de administración web Samba (SWAT). SWAT se eliminó a partir de la versión 4.1.
Samba TNG
Samba TNG (The Next Generation) se bifurcó a fines de 1999, luego de desacuerdos entre los líderes del equipo Samba y Luke Leighton sobre las direcciones del proyecto Samba. No lograron llegar a un acuerdo sobre una ruta de transición de desarrollo que permitiera que la versión de investigación de Samba que estaba desarrollando (conocida en ese momento como Samba-NTDOM) se integrara lentamente en Samba. El desarrollo ha sido mínimo, debido a la falta de desarrolladores. El equipo de Samba TNG dirigía con frecuencia a los usuarios potenciales hacia Samba debido a su mejor soporte y desarrollo.
Un objetivo clave del proyecto Samba TNG era reescribir todos los servicios de dominios NT como proyectos FreeDCE. Esto se hizo difícil ya que los servicios se desarrollaron manualmente a través de la ingeniería inversa de la red, con referencia limitada o sin referencia a la documentación de DCE/RPC.
Una diferencia clave con Samba fue la implementación del conjunto de protocolos NT Domains y los servicios MSRPC. Samba hace que todos los servicios de NT Domains estén disponibles desde un solo lugar, mientras que Samba TNG separó cada servicio en su propio programa.
ReactOS comenzó a usar los servicios Samba TNG para su implementación SMB. Los desarrolladores de ambos proyectos estaban interesados en ver el diseño de Samba TNG utilizado para ayudar a que ReactOS se comunicara con las redes de Windows. Trabajaron juntos para adaptar el código de red y el sistema de construcción. El enfoque modular y de múltiples capas facilitó la migración de cada servicio a ReactOS.
Contenido relacionado
Árbol B
Memoria del tambor
PL/I