Partilhar via


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: