Após seis meses de desenvolvimento, o Samba 4.24.0 foi lançado. Ele dá continuidade ao desenvolvimento do Samba 4 com um controlador de domínio e serviço Active Directory totalmente funcionais, compatíveis com o Windows Server e capazes de atender todas as versões suportadas do Windows, incluindo o Windows 11. O Samba 4 é um produto de servidor multifuncional que também oferece servidor de arquivos, serviço de impressão e servidor de identidade (winbind). O código do projeto é escrito em C e distribuído sob a licença GPLv3.
Principais mudanças no Samba 4.24:
- Um novo módulo VFS, vfs_aio_ratelimit, foi adicionado para limitar a taxa de operações de entrada/saída assíncronas (AIO). Os limites podem ser especificados em bytes por segundo ou operações por segundo. Quando o limite especificado é excedido, o módulo começa a introduzir atrasos artificiais nas operações assíncronas para manter o limite superior especificado.
- O módulo VFS vfs_ceph_new agora suporta o protocolo RPC Keybridge e o modo FSCrypt para criptografia de dados e nomes de arquivos no sistema de arquivos CephFS. A criptografia pode ser habilitada para diretórios individuais.
- O módulo VFS `vfs_streams_xattr`, que permite armazenar fluxos de dados alternativos NTFS em atributos de arquivo estendidos (xattr) no Linux, foi atualizado com a configuração `streams_xattr:max xattrs per stream`. Essa configuração determina o número máximo de arquivos xattr usados para armazenamento de dados. No Linux, o tamanho do xattr é limitado a 65536 bytes, mas o XFS permite que mais de um xattr seja associado a um único arquivo, possibilitando que vários xattrs armazenem até 1 MB de dados alternativos.
- Foi implementado o suporte para auditoria de informações relacionadas à autenticação. As classes de depuração "dsdb_password_audit" e "dsdb_password_json_audit" foram adicionadas para refletir as alterações nos atributos do Active Directory altSecurityIdentities, dNSHostName, msDS-AdditionalDnsHostName, msDS-KeyCredentialLink e servicePrincipalName no log.
- Adicionado suporte para sistemas externos de gerenciamento de senhas, como Microsoft Entra ID e Keycloak, que utilizam a operação de redefinição de senha (SSPR, redefinição de senha) ao alterar uma senha sem transmitir a senha antiga para o controlador. domínioPara garantir a aplicação de políticas que controlam a expiração de senhas, parâmetros adicionais ("dicas de política de senha") são transmitidos durante a redefinição de senhas, permitindo que a operação seja tratada como uma alteração de senha comum. O Samba agora leva esses parâmetros em consideração ao aplicar políticas locais relacionadas a senhas.
- Foi adicionado suporte ao mecanismo de autenticação Kerberos PKINIT KeyTrust. Isso permite que o método "Logon Key-Trust do Windows Hello para Empresas" seja usado com autenticação PKINIT com chaves autoassinadas em controladores de domínio KDC baseados em Samba e Heimdal. O comando "user|computer keytrust" foi adicionado ao utilitário samba-tool para adicionar e visualizar uma chave pública. As informações da chave pública são armazenadas na conta usando o atributo msDS-KeyCredentialLink.
- Controladores de domínio baseados em Samba e KDCs Heimdal agora suportam a extensão de protocolo PKINIT do Kerberos para mapeamento de chaves ("Mapeamentos de Chaves Fortes e Flexíveis do Windows"), usada para autenticação por chave pública. Por padrão, somente a imposição exata de vinculação de certificado ("imposição forte de vinculação de certificado = completa") é permitida, mas o mapeamento flexível ("imposição forte de vinculação de certificado = compatibilidade") também é suportado, permitindo certificados mais recentes que a conta do usuário. As informações de mapeamento de certificado para uma conta são armazenadas no atributo altSecurityIdentities.
- Adicionado suporte à extensão de protocolo "Kerberos PKINIT SID", permitindo o uso de certificados com um Object SID para autenticação. O comando "user|computer generate-csr" foi adicionado ao utilitário samba-tool para assinatura de certificados.
- A implementação padrão do KDC (Centro de Distribuição de Chaves) retorna uma estrutura PAC (Certificado de Atributo de Privilégio) contendo dados de privilégio do usuário, independentemente de o campo PA-PAC-REQUEST ser especificado na solicitação do cliente. Para reverter ao comportamento anterior, a configuração "kdc always generate pac = no" está disponível.
- O KDC possui uma nova configuração chamada "kdc require canonicalization", que, quando definida como "yes", exige que o cliente solicite a canonicalização do nome de usuário ao acessar o servidor. servidor Autenticação (AS_REQ). Se a canonicalização não for solicitada, o servidor retornará um erro de "usuário desconhecido". Em redes com usuários do Windows, ativar a nova configuração não deve causar problemas, já que os clientes Windows sempre solicitam a canonicalização por padrão.
A canonicalização obrigatória protege contra ataques de "ticket de dólar", que exploram o fato de que os nomes de usuário podem ser especificados de forma diferente ("user" e "user$") e processados de maneira distinta em representações canônicas e não canônicas. A essência do ataque reside no fato de que um invasor poderia, por exemplo, criar uma conta de computador chamada "root$" no Active Directory e usá-la para obter um ticket do KDC enviando o nome de usuário "root" em vez de "root$" na requisição. O KDC, incapaz de encontrar o usuário "root", processaria a requisição no contexto do usuário "root$" e emitiria um ticket que poderia ser usado para conectar-se como usuário root via SSH ou NFS a um servidor Linux executando o SSSD.
- Uma solução alternativa para ataques de "bilhete de dólar" foi adicionada ao KDC para configurações com solicitações obrigatórias de canonicalização de nomes desativadas ("kdc require canonicalization = no" está ativado por padrão). Por padrão, se o cliente não solicitou canonicalização e o nome que está sendo verificado não for encontrado, o servidor realiza uma verificação adicional anexando o caractere "$" ao nome. A nova configuração "kdc name match implicit dollar without canonicalization = no" permite desativar esse comportamento e realizar apenas verificações explícitas (no contexto do ataque mencionado, o servidor não verificará o nome "root$" ao solicitar "root").
- Por padrão, o KDC Heimdal envia apenas nomes canônicos (sAMAccountName do PAC) para os serviços Kerberos em vez do valor cname original. Para reverter ao comportamento anterior, use a configuração "krb5 acceptor report canonical client name = no".
- Para proteção completa contra ataques de ticket de dólar, recomendamos definir as seguintes configurações: imposição de vinculação de certificado forte, KDC completo, sempre incluir PAC, sim, KDC, exigir canonicalização, sim.
- Para bloquear a vulnerabilidade CVE-2026-20833, o método de criptografia de domínio nas configurações padrão do KDC foi alterado para AES (a configuração "kdc default domain supported enctypes" foi definida como "aes128-cts-hmac-sha1-96 aes256-cts-hmac-sha1-96").
Fonte: opennet.ru
