O que você vai aprender neste guia
O rsync é uma ferramenta essencial no dia a dia de qualquer administrador de sistemas — presente em praticamente todos os servidores Linux, responsável por sincronizar arquivos entre máquinas locais e remotas com eficiência e segurança.
Como qualquer software amplamente utilizado, o rsync também está sujeito a vulnerabilidades. Este guia foi criado para ajudá-lo a:
- Entender como funcionam as vulnerabilidades que afetam o rsync
- Verificar se seus servidores estão vulneráveis
- Corrigir o problema de forma definitiva
- Aplicar uma solução alternativa caso não possa atualizar imediatamente
- Automatizar o processo de verificação e correção em múltiplos servidores
Não importa se você administra um único servidor ou uma frota inteira — este conteúdo foi pensado para ser útil por muitos meses (ou anos), independentemente da data em que uma vulnerabilidade específica foi descoberta.
Contexto Histórico (apenas para referência)
Em meados de 2026, foram identificadas vulnerabilidades no rsync que afetavam diversas versões do Ubuntu. A atualização inicial (USN-8349-1) introduziu regressões que precisaram ser corrigidas posteriormente (USN-8349-3).
A vulnerabilidade principal (CVE-2025-10158) permitia que um cliente malicioso, com acesso de leitura a um módulo rsync, provocasse uma leitura fora dos limites de um buffer na memória heap — o que poderia resultar em negação de serviço (DoS) e, potencialmente, execução arbitrária de código.
Por que isso importa para você hoje: O rsync é onipresente em servidores Linux. Se você nunca verificou a versão do rsync em seus servidores, ou se não tem um processo claro para lidar com atualizações de segurança, este guia é para você.
Como Verificar se Você Está Vulnerável
Abaixo estão os comandos reais para verificar a versão do rsync e o status da sua instalação no Ubuntu.
1. Verifique a versão atual do rsync
rsync --version
A saída mostrará algo como:
rsync version 3.1.3 protocol version 31
Anote o número da versão. Versões afetadas incluem (mas não se limitam a):
Ubuntu 20.04 LTS: rsync 3.1.3-8ubuntu0.8 e anteriores
Ubuntu 18.04 LTS: rsync 3.1.2-2.1ubuntu1.5 e anteriores
Ubuntu 16.04 LTS: rsync 3.1.1-3ubuntu1.2 e anteriores
Ubuntu 14.04 LTS: rsync 3.1.0-2ubuntu0.3 e anteriores
Verifique se há atualizações de segurança disponíveis
sudo apt update sudo apt list --upgradable | grep rsync
Se o comando retornar algo como rsync/..., significa que há uma atualização disponível.
Verifique se o daemon rsync está em execução
sudo systemctl status rsync # ou, para versões mais antigas: sudo service rsync status
Verifique se o rsync está exposto publicamente
sudo ss -tlnp | grep 873 # ou sudo netstat -tlnp | grep 873
Se a porta 873 estiver ouvindo em 0.0.0.0 ou ::, seu servidor rsync está acessível externamente — o que aumenta significativamente o risco.
Script de Automação para Aplicar a Correção
#!/bin/bash # rsync-security-fix.sh # Script para verificar e corrigir vulnerabilidades no rsync # Compatível com Ubuntu 14.04 LTS a 22.04 LTS set -e echo "=== Rsync Security Fix Script ===" echo "Iniciado em: $(date)" # Cores para output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Função para log log_info() { echo -e "${GREEN}[INFO]${NC} $1" } log_warn() { echo -e "${YELLOW}[WARN]${NC} $1" } log_error() { echo -e "${RED}[ERROR]${NC} $1" } # Verifica se é Ubuntu if ! grep -q "Ubuntu" /etc/os-release; then log_error "Este script foi projetado para Ubuntu. Detectada outra distribuição." exit 1 fi # Obtém a versão atual do rsync CURRENT_VERSION=$(rsync --version 2>/dev/null | head -n1 | awk '{print $3}') if [ -z "$CURRENT_VERSION" ]; then log_error "rsync não encontrado. Instale com: sudo apt install rsync" exit 1 fi log_info "Versão atual do rsync: $CURRENT_VERSION" # Verifica se há atualizações disponíveis log_info "Verificando atualizações disponíveis..." sudo apt update -qq UPGRADABLE=$(apt list --upgradable 2>/dev/null | grep rsync || true) if [ -z "$UPGRADABLE" ]; then log_warn "Nenhuma atualização disponível para rsync." log_info "Sua versão ($CURRENT_VERSION) pode já estar segura." exit 0 fi log_info "Atualizações disponíveis:" echo "$UPGRADABLE" # Pergunta ao usuário antes de prosseguir read -p "Deseja aplicar a atualização? (s/N) " -n 1 -r echo if [[ ! $REPLY =~ ^[Ss]$ ]]; then log_warn "Atualização cancelada pelo usuário." exit 0 fi # Aplica a atualização log_info "Aplicando atualização de segurança..." sudo apt install --only-upgrade rsync -y # Verifica se a atualização foi bem-sucedida NEW_VERSION=$(rsync --version 2>/dev/null | head -n1 | awk '{print $3}') if [ "$CURRENT_VERSION" != "$NEW_VERSION" ]; then log_info "rsync atualizado com sucesso: $CURRENT_VERSION -> $NEW_VERSION" else log_warn "Versão do rsync não mudou. Verifique manualmente." fi # Reinicia o daemon rsync se estiver em execução if systemctl is-active --quiet rsync 2>/dev/null; then log_info "Reiniciando serviço rsync..." sudo systemctl restart rsync log_info "Serviço rsync reiniciado." elif service rsync status >/dev/null 2>&1; then log_info "Reiniciando serviço rsync (SysV)..." sudo service rsync restart log_info "Serviço rsync reiniciado." else log_info "Serviço rsync não está em execução. Nenhuma reinicialização necessária." fi log_info "=== Script concluído com sucesso ===" log_info "Recomenda-se reiniciar o servidor em breve para garantir que todas as" log_info "bibliotecas atualizadas sejam carregadas corretamente."
# Salve o script em um arquivo nano rsync-security-fix.sh # Torne-o executável chmod +x rsync-security-fix.sh # Execute como root ou com sudo sudo ./rsync-security-fix.sh
📗 Recomendação de Leitura
Segurança em servidores Linux: Ataque e Defesa (anúncio) -> https://amzn.to/4fNAQlV
Se você prefere estudar em português e quer aprender a "pensar como um hacker" para se antecipar a invasões, essa é a pedida! O livro ensina a usar as ferramentas prediletas dos invasores (como Nmap e Netcat) a seu favor, blindando seus sistemas.
Eu ganho uma comissão quando você faz uma compra.
Mitigação Alternativa (Caso Não Possa Atualizar Agora)
Se você não pode aplicar a atualização imediatamente — por exemplo, em ambientes de produção com janelas de manutenção restritas — existem medidas paliativas que reduzem significativamente o risco.
Restringir acesso à porta 873 no firewall
O rsync opera na porta TCP 873. Bloquear o acesso externo é a medida mais eficaz:
# Com iptables (bloqueia acesso externo, mantendo local) sudo iptables -A INPUT -p tcp --dport 873 -s 127.0.0.1 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 873 -j DROP # Para redes internas específicas (ex: 192.168.1.0/24) sudo iptables -A INPUT -p tcp --dport 873 -s 192.168.1.0/24 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 873 -j DROP # Persistir as regras (Ubuntu) sudo apt install iptables-persistent -y sudo netfilter-persistent save
Configurar o rsync em modo apenas leitura (se aplicável)
Se o servidor rsync for usado apenas para distribuição de arquivos (ex: repositórios), configure-o em modo somente leitura:
# No arquivo /etc/rsyncd.conf [modulo] path = /caminho/do/modulo read only = yes list = no
Habilitar chroot no rsync daemon
A vulnerabilidade também envolvia uma condição de corrida em daemons configurados sem proteção chroot. Certifique-se de que o chroot está habilitado:
# No arquivo /etc/rsyncd.conf use chroot = yes
Usar rsync via SSH (em vez do daemon standalone)
Sempre que possível, prefira o rsync sobre SSH, que utiliza a camada de segurança do SSH:
rsync -avz -e ssh usuario@servidor:/caminho/remoto /caminho/local
Isso elimina a exposição da porta 873 e utiliza a autenticação e criptografia do SSH.
Restringir módulos com listas de acesso
No arquivo /etc/rsyncd.conf, restrinja quais hosts podem acessar cada módulo:
[modulo] path = /caminho/do/modulo hosts allow = 192.168.1.0/24, 10.0.0.0/8 hosts deny = *
Por Que a Segurança do Rsync é Crucial para Seu Negócio
O rsync é frequentemente negligenciado em auditorias de segurança por ser uma ferramenta "do dia a dia". No entanto, ele está presente em:
- Backups automatizados entre servidores.
- Sincronização de código em ambientes de desenvolvimento
- Distribuição de arquivos em CDNs e repositórios.
- Migrações de dados entre datacenters.
Uma vulnerabilidade no rsync pode comprometer toda a cadeia de transferência de dados da sua infraestrutura. Um atacante com acesso de leitura a um módulo rsync poderia:
- Causar negação de serviço (DoS), derrubando servidores críticos.
- Potencialmente executar código arbitrário no servidor.
- Comprometer dados sensíveis durante a transferência.

Nenhum comentário:
Postar um comentário