Remover SMB 1 no Linux
Atenção
Este artigo faz referência ao CentOS, uma distribuição Linux que está se aproximando do status de Fim da Vida Útil (EOL). 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. 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. É sempre altamente recomendável desativar o SMB 1 em seus clientes Linux antes de usar compartilhamentos de arquivos SMB na produção.
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: