Compartilhar via


Desabilitar o SMB 1 em clientes Linux

Muitas organizações e ISPs (provedores de serviços de Internet) bloqueiam a porta que o SMB usa para se comunicar, a porta 445. Essa prática se origina de diretrizes 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, principalmente o SMB 1, não são. O SMB 1, também conhecido como CIFS (Common Internet File System), é incluído em várias distribuições do Linux.

Ele é um protocolo desatualizado, ineficiente e não seguro. A boa notícia é que os Arquivos do Azure não dão suporte ao SMB 1. Além disso, a partir do kernel do Linux versão 4.18, o Linux possibilita a desabilitação do SMB 1. É altamente recomendável desabilitar o SMB 1 em seus clientes Linux antes de usar compartilhamentos de arquivos SMB em produção.

Cuidado

Este artigo faz referência ao CentOS, uma distribuição do Linux que não terá mais suporte após junho de 2024. Considere seu uso e planeje adequadamente. Para obter mais informações, veja as Diretrizes sobre fim da vida útil do CentOS.

Status da distribuição do Linux

A partir do kernel do Linux 4.18, o módulo do kernel do SMB, chamado cifs por motivos herdados, expõe um novo parâmetro de módulo (geralmente conhecido como parm por várias documentações externas), chamado disable_legacy_dialects. Embora tenha sido apresentada no kernel do Linux 4.18, alguns fornecedores reportaram essa alteração em kernels anteriores que eles suportam. A tabela a seguir mostra os detalhes da disponibilidade desse parâmetro de módulo em distribuições comuns do Linux.

Distribuição Pode desabilitar o SMB 1
Ubuntu 14.04-16.04 No
Ubuntu 18.04 Yes
Ubuntu 19.04+ Yes
Debian 8-9 No
Debian 10+ Yes
Fedora 29+ Yes
CentOS 7 No
CentOS 8+ Yes
Red Hat Enterprise Linux 6.x-7.x No
Red Hat Enterprise Linux 8+ Yes
openSUSE Leap 15.0 No
openSUSE Leap 15.1+ Yes
openSUSE Tumbleweed Yes
SUSE Linux Enterprise 11.x-12.x No
SUSE Linux Enterprise 15 No
SUSE Linux Enterprise 15.1 No

Verifique se a sua distribuição do Linux dá suporte ao parâmetro do módulo disable_legacy_dialects por meio do seguinte comando:

sudo modinfo -p cifs | grep disable_legacy_dialects

Esse 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 o SMB 1

Antes de desabilitar o SMB 1, confirme se o módulo do SMB não está atualmente carregado no sistema (o que ocorre de modo automático se você montou um compartilhamento SMB). Execute o seguinte comando, que não deverá gerar nada se o SMB não for carregado:

lsmod | grep cifs

Para descarregar um módulo, primeiro, desmonte todos os compartilhamentos SMB usando o comando umount. Você pode identificar todos os compartilhamentos SMB montados em seu sistema com o seguinte comando:

mount | grep cifs

Depois que você desmontar todos os compartilhamentos de arquivos SMB, será seguro descarregar o módulo. Executar o comando modprobe:

sudo modprobe -r cifs

Você pode carregar manualmente o módulo com o SMB 1 descarregado usando o comando modprobe:

sudo modprobe cifs disable_legacy_dialects=Y

Por fim, você pode verificar se o módulo SMB foi carregado com o parâmetro procurando os parâmetros carregados em /sys/module/cifs/parameters:

cat /sys/module/cifs/parameters/disable_legacy_dialects

Para desabilitar o SMB 1 de forma persistente em distribuições baseadas em Ubuntu e Debian, você deve criar um novo arquivo (se ainda não tiver opções personalizadas para outros módulos) chamado /etc/modprobe.d/local.conf com a configuração. Execute o comando a seguir:

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óximas etapas

Veja estes links para obter mais informações sobre o Arquivos do Azure: