Guia prático e atemporal para proteger seu Samba no Ubuntu: comandos reais de verificação, script bash que aplica o patch sozinho e bloqueios alternativos para quando não dá para atualizar. Inclui indicação de livro especializado.
Quando uma vulnerabilidade grave no Samba é descoberta, você vê as mesmas notícias em todo lugar. Passam semanas, meses, e aquele conteúdo perde completamente o valor — parece até um daqueles pôsteres de evento que ficam amarelados na parede.
A notícia original foi publicada em 26 de maio de 2026, revelando seis falhas críticas no Samba: três delas permitiam que um invasor remoto executasse código arbitrário no seu servidor sem autenticação. Isso, traduzindo: alguém podia tomar controle total da sua máquina pela rede.
Aqui você não vai ler apenas o que aconteceu. Você vai encontrar comandos, scripts e bloqueios alternativos que continuam funcionando daqui um, dois ou três anos — independentemente da data desta vulnerabilidade.
Como verificar se você está vulnerável
Antes de sair aplicando correção, você precisa saber se seu servidor realmente está exposto. Execute os comandos abaixo como root ou com sudo. Eles funcionam em qualquer Ubuntu 20.04 LTS, 22.04 LTS, 24.04 LTS e versões mais recentes.
Veja qual versão do Samba está rodando
O comando mais direto mostra a versão exata do seu smbd (o coração do Samba):
smbd --version
Se o Samba estiver instalado, a saída será algo como Version 4.15.13-Ubuntu. Esse número é o que você vai comparar com as versões corrigidas.
Compare com as versões seguras
Use apt policy para ver exatamente qual pacote está instalado e quais atualizações estão disponíveis:
apt policy samba
Se a versão que você tem é anterior a essas, você está vulnerável..
Verifique se o serviço está rodando e exposto externamente
Dois comandos rápidos dizem se o Samba está ativo e se tem porta aberta para o mundo:
systemctl status smbd --no-pager sudo netstat -tulpn | grep ":445\|:139"
Se a porta 445 (SMB principal) aparecer com endereço 0.0.0.0 ou ::, qualquer um na rede pode tentar explorar seu servidor.
Script de automação para aplicar a correção
Este script bash verifica, atualiza e registra tudo em log. Ele funciona em Ubuntu 20.04 e superiores. Salve como fix-samba.sh, dê permissão de execução e rode como root.
#!/bin/bash # fix-samba.sh - Verifica e aplica correção de segurança do Samba # Compatível com Ubuntu 20.04 LTS, 22.04 LTS, 24.04 LTS e superiores LOG_FILE="/var/log/samba-security-fix.log" DATE=$(date '+%Y-%m-%d %H:%M:%S') log() { echo "[$DATE] $1" | tee -a "$LOG_FILE" } log "Iniciando verificação de segurança do Samba..." # Verifica se é Ubuntu if ! grep -qi "ubuntu" /etc/os-release; then log "ERRO: Este script foi feito para Ubuntu. Abortando." exit 1 fi # Obtém a versão atual do Samba if ! command -v smbd &> /dev/null; then log "Samba não está instalado. Nada a fazer." exit 0 fi CURRENT_VERSION=$(smbd --version | grep -oP 'Version \K[0-9.]+') log "Versão atual do Samba: $CURRENT_VERSION" # Tabela de versões mínimas seguras (UBUNTU SECURITY NOTICE USN-8306-1) declare -A SAFE_VERSIONS=( ["22.04"]="4.15.13" ["24.04"]="4.19.5" ["25.10"]="4.22.3" ["26.04"]="4.23.6" ) # Detecta release do Ubuntu RELEASE=$(lsb_release -rs) log "Ubuntu release detectada: $RELEASE" # Verifica se a release tem versão segura definida SAFE_VERSION="" for release in "${!SAFE_VERSIONS[@]}"; do if [[ "$RELEASE" == "$release"* ]]; then SAFE_VERSION="${SAFE_VERSIONS[$release]}" break fi done if [[ -z "$SAFE_VERSION" ]]; then log "AVISO: Release $RELEASE não mapeada. Aplicando atualização padrão." fi # Compara versões (simples) if [[ -n "$SAFE_VERSION" ]] && [[ "$(printf '%s\n' "$SAFE_VERSION" "$CURRENT_VERSION" | sort -V | head -n1)" != "$CURRENT_VERSION" ]]; then log "⚠️ VERSÃO VULNERÁVEL detectada! Aplicando correção..." # Atualiza lista de pacotes apt update >> "$LOG_FILE" 2>&1 # Aplica upgrade específico do Samba (sem interação) DEBIAN_FRONTEND=noninteractive apt install -y --only-upgrade samba >> "$LOG_FILE" 2>&1 if [ $? -eq 0 ]; then NEW_VERSION=$(smbd --version | grep -oP 'Version \K[0-9.]+') log "✅ CORREÇÃO APLICADA! Nova versão: $NEW_VERSION" # Reinicia o serviço systemctl restart smbd log "Serviço smbd reiniciado." else log "❌ ERRO na atualização. Verifique manualmente." exit 1 fi else log "✅ Versão $CURRENT_VERSION já é segura ou superior. Nada a fazer." fi log "Script finalizado. Log salvo em $LOG_FILE"
Como usar:
chmod +x fix-samba.sh sudo ./fix-samba.sh
Active Directory com Samba 4 (anúncio) -> https://amzn.to/4x0IXBQ
Este livro, disponível na Amazon Brasil, é um guia prático e direto que mostra como implementar um Active Directory (AD) completo e funcional com Samba 4.
Por que ele ajuda a resolver o problema? A vulnerabilidade que abordamos envolve execução remota de código e injeção via subsistema de impressão. Este livro ensina:
✅ Configuração segura do firewall – Para evitar exposição desnecessária e bloquear ataques de rede.
✅ Práticas de hardening – Restrições de permissão e isolamento de processos que impedem a exploração de falhas como as CVE-2026-4408 e CVE-2026-4480.
✅ Compilação personalizada do Samba – Para gerar pacotes (DEB e RPM) com flags de segurança adicionais.
Mitigação alternativa caso não possa atualizar agora
Nem sempre dá para atualizar na hora — talvez você esteja em um ambiente com políticas rígidas de mudança, com um servidor legado que quebra com a versão mais nova do Samba, ou simplesmente precisa de uma solução imediata enquanto aguarda a janela de manutenção.
Aqui vão três bloqueios que funcionam mesmo sem aplicar o patch.
Opção 1 — Bloqueio por iptables (mais rápida e eficaz)
Se você não precisa expor o Samba para a internet inteira, simplesmente bloqueie o acesso externo e libere apenas sua rede local confiável:
# Bloqueia todo acesso externo às portas do Samba sudo iptables -A INPUT -p tcp --dport 445 -j DROP sudo iptables -A INPUT -p tcp --dport 139 -j DROP sudo iptables -A INPUT -p udp --dport 137:138 -j DROP # Libera apenas para sua rede local (exemplo: 192.168.1.0/24) sudo iptables -I INPUT -p tcp --dport 445 -s 192.168.1.0/24 -j ACCEPT sudo iptables -I INPUT -p tcp --dport 139 -s 192.168.1.0/24 -j ACCEPT
Para salvar as regras e mantê-las após reboot:
sudo apt install iptables-persistent -y sudo netfilter-persistent save
Opção 2 — Reforço com AppArmor (restrição de processo)
O AppArmor pode limitar severamente o que o Samba pode fazer no sistema, mesmo que o código vulnerável seja executado. Ative o perfil de confinamento do Samba:
# Verifica se o AppArmor está ativo sudo aa-status | grep samba # Coloca o perfil do smbd em modo enforce (restrição ativa) sudo aa-enforce /etc/apparmor.d/usr.sbin.smbd sudo systemctl restart apparmor
Com o AppArmor ativo, mesmo que um invasor execute código arbitrário via Samba, ele não conseguirá acessar diretórios críticos como /etc, /root ou /home fora do que foi explicitamente liberado
Opção 3 — Proxy reverso com restrição (para ambientes corporativos)
Se o Samba é usado como Domain Controller ou serviço essencial, você pode colocar um proxy reverso na frente (como o próprio Nginx ou um balanceador) e restringir requisições suspeitas por padrões conhecidos de ataque.
Exemplo de bloqueio no nginx para requisições maliciosas ao SMB sobre HTTP (CVE-2026-3012):
location / { # Bloqueia padrões suspeitos de exploração if ($http_user_agent ~* "nmap|Nikto|sqlmap") { return 403; } proxy_pass http://backend_samba; }
⚠️ Atenção: Essas mitigações são paliativas. O ideal é aplicar a correção assim que possível. Mas, se você não pode atualizar agora, qualquer uma dessas opções reduz drasticamente sua superfície de exposição.
Conclusão
Você agora tem:
✅ Comandos para verificar se seu servidor está vulnerável — e sabe qual versão deve ter.
✅ Um script de automação que aplica a correção e mantém log de tudo.
✅ Três mitigações alternativas para quando a atualização não é imediata.
✅ Um recurso confiável para se aprofundar de vez na administração segura do Samba.

Nenhum comentário:
Postar um comentário