Samba (software)
Este artigo ou secção necessita de referências de fontes secundárias confiáveis e independentes. (fevereiro de 2011) |
| Samba | |
|---|---|
| Lançamento | 1992[1] |
| Versão estável | |
| Escrito em | C, Python |
| Sistema operacional | Multiplataforma |
| Tipo | Sistema de arquivos de rede |
| Licença | 2008: GPL-3.0-ou-posterior[a] 1993: GPL-2.0-ou-posterior[b] 1992: Proprietária[c] |
| Sítio eletrônico | www |
| Repositório | |
O Samba é uma implementação de software livre do protocolo de rede SMB, originalmente desenvolvido por Andrew Tridgell. O Samba fornece serviços de arquivo e de impressão para vários clientes Microsoft Windows[5] e pode se integrar a um domínio do Windows Server, seja como um Controlador de domínio (DC) ou como membro do domínio. A partir da versão 4, ele passou a suportar também domínios do Active Directory, além do suporte tradicional aos domínios do Microsoft Windows NT.
O Samba roda na maioria dos sistemas tipo Unix, como Linux, Solaris, AIX e as variantes BSD, incluindo o macOS da Apple (Mac OS X 10.2 e superiores) e o macOS Server. O Samba também é executado em vários outros sistemas operacionais, como o OpenVMS e o IBM i. O Samba é padrão em quase todas as distribuições Linux e também é comumente incluído como um serviço básico do sistema em outros sistemas operacionais baseados em Unix. O Samba é lançado sob os termos da Licença Pública Geral GNU. O nome Samba vem de SMB (Server Message Block), o nome do protocolo proprietário usado pelo sistema de arquivos de rede do Microsoft Windows.
Primórdios
[editar | editar código]Andrew Tridgell desenvolveu a primeira versão do Samba Unix entre dezembro de 1991 e janeiro de 1992, enquanto era estudante de doutorado na Universidade Nacional Australiana, usando um analisador de pacotes para realizar análises de rede do protocolo usado pelo software de servidor DEC Pathworks da Digital Equipment Corporation. O projeto não tinha um nome formal na época dos primeiros lançamentos (versões 0.1, 0.5 e 1.0, todas na primeira metade de janeiro de 1992); Tridgell referia-se a ele simplesmente como "um servidor de arquivos Unix para Dos Pathworks". Na versão 1.0, ele entendeu que havia "de fato implementado o protocolo netbios" e que "este software poderia ser usado com outros clientes PC".[carece de fontes]
Com foco na interoperabilidade com o LAN Manager da Microsoft, Tridgell lançou o "netbios para unix", observer, versão 1.5 em dezembro de 1993. Esse lançamento foi o primeiro a incluir tanto o software cliente quanto o servidor. Além disso, foi nessa época que a GPL2 foi escolhida como licença.[carece de fontes]
No meio da série 1.5, o nome foi alterado para smbserver. No entanto, Tridgell recebeu uma notificação de marca registrada da empresa "Syntax", que vendia um produto chamado TotalNet Advanced Server e detinha a marca registrada "SMBserver". O nome "Samba" surgiu ao rodar o comando Unix grep no dicionário do sistema, procurando por palavras que contivessem as letras S, M e B, nessa ordem (ou seja, grep -i '^s.*m.*b' /usr/share/dict/words).[6]
As versões 1.6, 1.7, 1.8 e 1.9 seguiram-se de forma relativamente rápida, com a última sendo lançada em janeiro de 1995. Tridgell considera a adoção do CVS em maio de 1996 como o nascimento da equipe do Samba (Samba Team), embora houvesse contribuições anteriores de outras pessoas, especialmente de Jeremy Allison.[7]
A versão 2.0.0, lançada em janeiro de 1999, foi um lançamento de grande impacto, incluindo suporte para autenticação a partir de um Controlador de Domínio Primário do Windows NT, suporte a sistemas de arquivos de 64 bits para arquivos muito grandes e a exposição de OPLOCKS para sistemas Unix.[carece de fontes] A versão 2.2.0 foi lançada em abril de 2001.[carece de fontes]
Histórico de versões
[editar | editar código]| Data | Versão | Descrição |
|---|---|---|
| 23 de setembro de 2003 | 3.0 | Suporte ao Active Directory.[8] A série 3.0.x atingiu oficialmente o fim de sua vida útil (EOL) em 5 de agosto de 2009.[9] |
| 1 de julho de 2008 [10] | 3.2 | Passou a ser atualizada apenas para correções de segurança sob demanda.[11][12] Ocorreu a mudança de licença da GPL2 para a GPL3, com algumas partes sob LGPL3.[4] A série 3.2.x alcançou oficialmente o EOL em 1 de março de 2010.[10] |
| 27 de janeiro de 2009 | 3.3 | |
| 3 de julho de 2009 | 3.4 | Esta foi a primeira versão a incluir o código-fonte tanto do Samba 3 quanto do Samba 4.[13] |
| 1 de março de 2010 | 3.5 | Esta foi a primeira versão a incluir suporte experimental para o SMB2.[14] |
| 9 de agosto de 2011 | 3.6 | Esta é a primeira ramificação a incluir suporte completo para SMB2.[15] |
| 11 de dezembro de 2012 | 4.0 | Uma grande reformulação que permite ao Samba atuar como um controlador de domínio do Active Directory, participando plenamente de um domínio Active Directory do Windows. Sua primeira prévia técnica (4.0.0TP1) foi lançada em janeiro de 2006, após 3 anos de desenvolvimento.[16][17] |
| 10 de outubro de 2013 | 4.1 | Suporte para SMB3. |
| 4 de março de 2015 | 4.2 | Compactação de arquivos baseada em Btrfs, instantâneos (snapshots) e integração com o winbind.[18] |
| 8 de setembro de 2015 | 4.3 | Novos recursos de log, suporte a SMB 3.1.1.[19] |
| 22 de março de 2016 | 4.4 | Requisições de esvaziamento (flush) assíncronas.[20] |
| 7 de setembro de 2016 | 4.5 | NTLM v1 desativado por padrão, recurso Virtual List View e várias melhorias de desempenho. |
| 7 de março de 2017 | 4.6 | Suporte a multi-processo no Netlogon. |
| 21 de setembro de 2017 | 4.7 | Samba AD com suporte a MIT Kerberos. |
| 13 de março de 2018 | 4.8 | Suporte ao Apple Time Machine. Configurações usando os modos de segurança "domain" ou "ads" agora exigem que o "winbindd" esteja em execução.[21] |
| 13 de setembro de 2018 | 4.9 | Múltiplas alterações estruturais.[22] |
| 19 de março de 2019 | 4.10 | |
| 17 de setembro de 2019 | 4.11 | O SMB1 é desativado por padrão como mitigação contra a vulnerabilidade do ransomware WannaCry. |
| 3 de março de 2020 | 4.12 | |
| 22 de setembro de 2020 | 4.13 | O Samba 4.13 eleva a versão mínima do Python exigida para 3.6. |
| 9 de março de 2021 | 4.14 | Grande reformulação do subsistema VFS e outras melhorias.[23] |
| 20 de setembro de 2021 | 4.15 | Diversas correções e alterações.[24] |
| 21 de março de 2022 | 4.16 | Diversas alterações de código.[25] |
| 13 de setembro de 2022 | 4.17 | Diversas melhorias acumuladas.[26] |
| 8 de março de 2023 | 4.18 | Otimizações no código geral.[27] |
| 4 de setembro de 2023 | 4.19 | Mudanças estruturais e correções.[28] |
| 27 de março de 2024 | 4.20 | Múltiplas melhorias internas.[29] |
| 2 de setembro de 2024 | 4.21 | Múltiplas melhorias e atualizações.[30] |
| 6 de março de 2025 | 4.22 | Suporte a SMB3 Directory Leases, Netlogon Ping realizável via LDAP e LDAPS, suporte experimental para autenticação Himmelblau com o Azure Entra ID, melhorias de desempenho e remoção do recurso proxy logon do nmbd.[31] |
| 12 de setembro de 2025 | 4.23 | Ajustes e melhorias gerais de estabilidade.[32] |
| 18 de março de 2026 | 4.24 | Atualizações e melhorias diversas de desempenho.[33] |
Segurança
[editar | editar código]Algumas versões do Samba 3.6.3 e anteriores sofrem com falhas graves de segurança que permitem a usuários anônimos obter acesso de root ao sistema a partir de uma conexão não autenticada, explorando um erro nas chamadas de procedimento remoto (RPC) do Samba.[34]
Em 12 de abril de 2016, foi divulgada a falha Badlock,[35] um bug de segurança crucial que afetava o Windows e o Samba. O Badlock no Samba é referenciado pelo identificador CVE-2016-2118 (possibilidade de ataques do tipo homem-no-meio em SAMR e LSA).[36]
Em 24 de maio de 2017, foi anunciado que uma vulnerabilidade de execução remota de código apelidada de EternalRed ou SambaCry havia sido encontrada no Samba, afetando todas as versões desde a 3.5.0.[37] Esta vulnerabilidade recebeu o identificador CVE-2017-7494.[37][38]
Em 14 de setembro de 2020, foi publicado um exploit de prova de conceito para a vulnerabilidade no netlogon conhecida como Zerologon (CVE-2020-1472), para a qual já existia uma atualização de segurança fornecida desde agosto.[39] Órgãos federais americanos que utilizavam o software receberam ordens expressas para aplicar a correção imediatamente.[40]
Recursos
[editar | editar código]O Samba possibilita o compartilhamento de arquivos e de impressão entre computadores rodando Microsoft Windows e computadores rodando Unix. Trata-se de uma implementação de dezenas de serviços e protocolos, incluindo:
- NetBIOS sobre TCP/IP (NBT)
- SMB (conhecido como CIFS em algumas versões)
- O Samba dá suporte a extensões POSIX para CIFS/SMB. A extensão inicial foi a CIFS VFS (CAP_UNIX) em 2004, que acabou sendo amplamente substituída pelo SMB3.[41]
- DCE/RPC ou, mais especificamente, MSRPC, a suíte de protocolos de Rede local
- Um servidor WINS, também conhecido como um Servidor de Nomes NetBIOS (NBNS)
- A suíte de protocolos de Domínio NT, que engloba os Logons de Domínio NT
- Banco de dados do Security Account Manager (SAM)
- Serviço do Local Security Authority (LSA)
- Serviço de impressão no estilo NT (SPOOLSS)
- NTLM
- Logon no Active Directory usando versões modificadas de Kerberos e LDAP
- Servidor DFS (Sistema de Arquivos Distribuído)
Todos esses serviços e protocolos costumam ser erroneamente referidos apenas como NetBIOS ou SMB. Os protocolos NBT (NetBIOS sobre TCP/IP) e WINS, bem como o protocolo SMB versão 1 de base, foram descontinuados no Windows. Desde o Windows Vista, o protocolo WS-Discovery foi incluído junto com o SMB2 e seus sucessores, substituindo as tecnologias antigas. (O WS-Discovery é implementado em plataformas tipo Unix por daemons de terceiros, permitindo que os compartilhamentos Samba sejam descobertos na rede quando os protocolos descontinuados estão desativados).
O Samba configura compartilhamentos de rede para diretórios Unix selecionados (incluindo todos os subdiretórios contidos). Estes aparecem para os usuários do Microsoft Windows como pastas normais do Windows acessíveis via rede. Os usuários do Unix podem tanto montar os compartilhamentos diretamente como parte de sua estrutura de arquivos utilizando o comando mount.cifs ou, alternativamente, utilizar o utilitário smbclient (libsmb), instalado com o Samba, para ler os compartilhamentos por meio de uma interface de linha de comando parecida com um programa FTP padrão. Cada diretório pode ter privilégios de acesso diferentes sobrepostos às proteções normais de arquivos do Unix. Por exemplo: os diretórios pessoais (home) teriam acesso de leitura/gravação para seus respectivos proprietários, permitindo que cada um acesse seus próprios arquivos, sem que tenham acesso aos arquivos de terceiros, a menos que tal permissão existisse previamente no sistema. Note que o compartilhamento netlogon, geralmente distribuído como somente leitura a partir de /etc/samba/netlogon, é o diretório usado para scripts de logon de usuários.
Os serviços do Samba são implementados na forma de dois daemons:
- smbd, que fornece os serviços de compartilhamento de arquivos e impressoras, e
- nmbd, que provê o serviço de nomes de NetBIOS para endereços IP. O NetBIOS sobre TCP/IP requer um método para mapear nomes de computadores NetBIOS para os endereços IP de uma rede TCP/IP.
A configuração do Samba é feita editando um único arquivo (normalmente instalado como /etc/smb.conf ou /etc/samba/smb.conf). O Samba também pode fornecer scripts de logon de usuários e aplicação de políticas de grupo por meio do poledit.
O Samba vem incluso na maioria das distribuições Linux e é iniciado durante o processo de boot. No Red Hat, por exemplo, o script /etc/rc.d/init.d/smb é executado na inicialização e inicia ambos os daemons. O Samba não vinha integrado ao Solaris 8, mas uma versão compatível com ele ficava disponível para download no site do projeto. O sistema ArcaOS, baseado no OS/2, inclui o Samba para substituir o antigo software IBM LAN Server.[42]
As versões mais antigas do Samba incluíam uma ferramenta de administração web chamada Samba Web Administration Tool (SWAT),[43][44] que foi removida a partir da versão 4.1.[45]
Samba TNG
[editar | editar código]O Samba TNG (The Next Generation) passou por um fork no final de 1999, após discordâncias entre os líderes da equipe do Samba e Luke Leighton sobre os rumos do projeto. Eles não conseguiram chegar a um acordo sobre uma rota de transição no desenvolvimento que permitisse que a versão de pesquisa desenvolvida por Leighton (conhecida na época como Samba-NTDOM) fosse integrada de forma gradativa ao tronco principal do Samba.[46] O desenvolvimento da bifurcação foi mínimo devido à escassez de desenvolvedores. A própria equipe do Samba TNG frequentemente direcionava os potenciais usuários de volta ao Samba tradicional por conta de seu suporte e desenvolvimento superiores.[47]
O principal objetivo do projeto Samba TNG era reescrever todos os serviços de Domínios NT como projetos FreeDCE.[48] Essa tarefa mostrou-se complexa porque os serviços eram desenvolvidos manualmente via engenharia reversa de tráfego de rede, com pouca ou nenhuma referência às documentações oficiais de DCE/RPC.[carece de fontes]
Uma diferença fundamental em relação ao Samba estava na implementação da suíte de protocolos de Domínios NT e serviços MSRPC. O Samba concentra todos os serviços de Domínio NT a partir de um único lugar, ao passo que o Samba TNG separava cada um desses serviços em seu próprio programa isolado.[carece de fontes]
O sistema ReactOS começou a usar os serviços do Samba TNG para sua implementação de SMB. Os desenvolvedores de ambos os projetos tinham interesse em ver a arquitetura do Samba TNG ser usada para ajudar o ReactOS a se comunicar com redes Windows. Eles trabalharam em conjunto para adaptar o código de rede e o sistema de compilação. Essa abordagem modular em múltiplas camadas facilitou o porte de cada serviço individual para o ReactOS.[49]
Atualmente, o projeto Samba TNG encontra-se abandonado e sem manutenção. O site oficial está offline, restando apenas arquivos funcionais datados de 2016.[50] O último lançamento voltado ao ReactOS ocorreu no ano de 2009.
Ver também
[editar | editar código]Notas
[editar | editar código]- ↑ GPL-3.0-ou-posterior e LGPL-3.0-ou-posterior desde 01-07-2008, versão 3.2.0.[3][4]
- ↑ GPL-2.0-ou-posterior de 1993, versão 1.5, até 01-10-2009, versão 3.0.37.
- ↑ Proprietária de 1992 até 1993.
Referências
[editar | editar código]- ↑ «Samba Latest News». Consultado em 28 de novembro de 2017
- ↑ «[Announce] Samba 4.24.4 Available for Download». 30 junho 2026. Consultado em 1 julho 2026
- ↑ «Samba Copyright Policy»
- 1 2 «Samba Adopts GPLv3 for Future Releases». Consultado em 21 de setembro de 2015
- ↑ «Samba - opening windows to a wider world». www.samba.org. Consultado em 16 de janeiro de 2024
- ↑ Andrew Tridgell and the Samba Team (27 de junho de 1997). «A bit of history and a bit of fun». Consultado em 28 de maio de 2009. Cópia arquivada em 15 de agosto de 2020
- ↑ «10 years of Samba!». Consultado em 21 de setembro de 2015
- ↑ «Samba Team announces the first official release of Samba 3.0». Consultado em 24 de setembro de 2003
- ↑ «Release Planning for Samba 3.0». Consultado em 21 de setembro de 2015
- 1 2 «Release Planning for Samba 3.2». Consultado em 21 de setembro de 2015
- ↑ «[ANNOUNCE] Samba 3.2.0 Available for Download». Consultado em 21 de setembro de 2015
- ↑ «Monday, April 28 - Samba Mashup Report». Consultado em 21 de setembro de 2015
- ↑ «Samba - Release Notes Archive». Consultado em 21 de setembro de 2015
- ↑ «Samba - Release Notes Archive». Consultado em 21 de setembro de 2015
- ↑ «Samba - Release Notes Archive». Consultado em 21 de setembro de 2015
- ↑ «Samba - opening windows to a wider world». Consultado em 21 de setembro de 2015
- ↑ «Samba 4.0.0TP1 Available for Download». Consultado em 11 de janeiro de 2014. Cópia arquivada em 22 de julho de 2006
- ↑ «Samba - Release Notes Archive». Consultado em 21 de setembro de 2015
- ↑ «Samba - Release Notes Archive». Consultado em 8 de setembro de 2015
- ↑ «Samba - Release Notes Archive». Consultado em 22 de março de 2016
- ↑ «Release Notes for Samba 4.8.0». 13 de março de 2018. Consultado em 19 de março de 2019
- ↑ «Samba 4.9.0 - Release Notes»
- ↑ «Samba 4.14.0 - Release Notes»
- ↑ «Samba 4.15.0 - Release Notes»
- ↑ «Samba 4.16.0 - Release Notes»
- ↑ «Samba 4.17.0 - Release Notes»
- ↑ «Samba 4.18.0 - Release Notes»
- ↑ «Samba 4.19.0 - Release Notes»
- ↑ «Samba 4.20.0 - Release Notes»
- ↑ «Samba 4.21.0 - Release Notes»
- ↑ «Samba 4.22.0 - Release Notes»
- ↑ «Samba 4.23.0 - Release Notes». 12 de setembro de 2025. Consultado em 18 de março de 2026
- ↑ «Samba 4.24.0 - Release Notes». 18 de março de 2026. Consultado em 18 de março de 2026
- ↑ CVE-2012-1182 - Anúncio de segurança sobre uma falha crítica no Samba 3.6.3 e inferiores.
- ↑ «Badlock». Consultado em 12 de abril de 2016. Cópia arquivada em 12 de abril de 2016
- ↑ «Microsoft, Samba Patch "Badlock" Vulnerability». Consultado em 13 de abril de 2016
- 1 2 «Samba 4.6.4 - Release Notes». 24 de maio de 2017. Consultado em 24 de maio de 2017
- ↑ «SambaCry is coming». Securelist - Kaspersky Lab’s cyberthreat research and reports (em inglês). Consultado em 19 de março de 2018
- ↑ Cimpanu, Catalin. «Microsoft says it detected active attacks leveraging Zerologon vulnerability». ZDNet (em inglês). Consultado em 9 de outubro de 2020
- ↑ Constantin, Lucian (23 de setembro de 2020). «What is Zerologon? And why to patch this Windows Server flaw now». CSO Online (em inglês). Consultado em 9 de outubro de 2020
- ↑ «UNIX Extensions». SambaWiki
- ↑ «ArcaMapper». arcanoae.com. Consultado em 11 de setembro de 2020
- ↑ «Chapter 37. SWAT: The Samba Web Administration Tool». Consultado em 21 de setembro de 2015
- ↑ «SWAT your Samba problems». linux.com. 31 de janeiro de 2008
- ↑ «Samba 4.1 Features added/changed». Consultado em 21 de setembro de 2015
- ↑ «Project FAQ - What is the relationship between Samba and Samba TNG?». Consultado em 19 de fevereiro de 2008. Cópia arquivada em 11 de janeiro de 2008
- ↑ «Project FAQ - Which should I use - Samba or Samba TNG?». Consultado em 19 de fevereiro de 2008. Cópia arquivada em 11 de janeiro de 2008
- ↑ «Project FAQ - What's all this about FreeDCE?». Consultado em 19 de fevereiro de 2008. Cópia arquivada em 11 de janeiro de 2008
- ↑ Vincent, Brian. «Interview with Steven Edwards». Wine HQ. Consultado em 19 de fevereiro de 2008
- ↑ «start [Samba-TNG]». wiki.samba-tng.org (em inglês). Consultado em 9 de novembro de 2025. Cópia arquivada em 22 de abril de 2016
