Desativar o SMB 1 em clientes Linux
Muitas organizações e provedores de serviços de Internet (ISPs) bloqueiam a porta que o SMB usa para se comunicar, a porta 445. Essa prática se origina de orientações de segurança sobre versões herdadas e preteridas do protocolo SMB. Embora o SMB 3.x seja um protocolo seguro para a Internet, as versões mais antigas do SMB, especialmente o SMB 1, não são. SMB 1, também conhecido como CIFS (Common Internet File System), está incluído em muitas distribuições Linux.
SMB 1 é um protocolo desatualizado, ineficiente e inseguro. A boa notícia é que o Azure Files não suporta SMB 1. Além disso, a partir da versão 4.18 do kernel Linux, o Linux torna possível desativar o SMB 1. É altamente recomendável desativar o SMB 1 em seus clientes Linux antes de usar compartilhamentos de arquivos SMB em produção.
Atenção
Este artigo faz referência ao CentOS, uma distribuição Linux que não será mais suportada após junho de 2024. Por favor, considere o seu uso e planeje de acordo. Para obter mais informações, consulte as diretrizes de Fim da Vida Útil do CentOS.
Status da distribuição Linux
Começando com o kernel Linux 4.18, o módulo do kernel SMB, chamado cifs
por razões legadas, expõe um novo parâmetro de módulo (muitas vezes referido como parm por várias documentações externas) chamado disable_legacy_dialects
. Embora introduzido no kernel Linux 4.18, alguns fornecedores retroportaram essa mudança para kernels mais antigos que eles suportam. A tabela a seguir detalha a disponibilidade desse parâmetro de módulo em distribuições Linux comuns.
Distribuição | Pode desativar o SMB 1 |
---|---|
Ubuntu 14.04-16.04 | Não |
Ubuntu 18.04 | Sim |
Ubuntu 19.04+ | Sim |
Debian 8-9 | Não |
Debian 10+ | Sim |
Fedora 29+ | Sim |
CentOS 7 | Não |
CentOS 8+ | Sim |
Red Hat Enterprise Linux 6.x-7.x | Não |
Red Hat Enterprise Linux 8+ | Sim |
openSUSE Salto 15.0 | Não |
openSUSE Salto 15.1+ | Sim |
openSUSE Tumbleweed | Sim |
SUSE Linux Enterprise 11.x-12.x | Não |
SUSE Linux Enterprise 15 | Não |
SUSE Linux Enterprise 15.1 | Não |
Você pode verificar se sua distribuição Linux suporta o disable_legacy_dialects
parâmetro module através do seguinte comando:
sudo modinfo -p cifs | grep disable_legacy_dialects
Este comando deve gerar a seguinte mensagem:
disable_legacy_dialects: To improve security it may be helpful to restrict the ability to override the default dialects (SMB2.1, SMB3 and SMB3.02) on mount with old dialects (CIFS/SMB1 and SMB2) since vers=1.0 (CIFS/SMB1) and vers=2.0 are weaker and less secure. Default: n/N/0 (bool)
Remover SMB 1
Antes de desativar o SMB 1, confirme se o módulo SMB não está carregado no seu sistema (o que acontece automaticamente se você tiver montado um compartilhamento SMB). Execute o seguinte comando, que não deve gerar nada se o SMB não estiver carregado:
lsmod | grep cifs
Para descarregar o módulo, primeiro desmonte todos os compartilhamentos SMB usando o umount
comando. Você pode identificar todos os compartilhamentos SMB montados em seu sistema com o seguinte comando:
mount | grep cifs
Depois de desmontar todos os compartilhamentos de arquivos SMB, é seguro descarregar o módulo. Execute o modprobe
comando:
sudo modprobe -r cifs
Você pode carregar manualmente o módulo com o SMB 1 descarregado usando o modprobe
comando:
sudo modprobe cifs disable_legacy_dialects=Y
Finalmente, você pode verificar se o módulo SMB foi carregado com o parâmetro observando os parâmetros carregados em /sys/module/cifs/parameters
:
cat /sys/module/cifs/parameters/disable_legacy_dialects
Para desativar persistentemente o SMB 1 no Ubuntu e distribuições baseadas em Debian, você deve criar um novo arquivo (se você ainda não tiver opções personalizadas para outros módulos) chamado /etc/modprobe.d/local.conf
com a configuração. Execute o seguinte comando:
echo "options cifs disable_legacy_dialects=Y" | sudo tee -a /etc/modprobe.d/local.conf > /dev/null
Você pode verificar se isso funcionou carregando o módulo SMB:
sudo modprobe cifs
cat /sys/module/cifs/parameters/disable_legacy_dialects
Próximos passos
Veja estas ligações para obter mais informações sobre os Ficheiros do Azure: