Utilizando Compartilhamento e Sessão SMB na “unha” – Parte 2

Na primeira parte aprendemos como gerenciar o compartilhamento de rede utilizando o Windows Powershell, agora chega a vez de aprender como gerenciar sessões SMB.

Se você perdeu a primeira parte, acesse aqui o artigo.

 

Gerencie sessões SMB

Independentemente de como você fizer o compartilhamento de arquivos, uma vez que você cria você poderá gerenciar e monitorar o seu uso utilizando o cmdlets do Windows Powershell.

Por exemplo para saber qual são os clientes que estão conectados aos compartilhamentos do servidor execute o seguinte comando:

 Comando:

Get-SmbSession

Resposta do comando:

 

 

 

 

 

Com as informações você pode encerrar uma sessão específica usando o cmdlet Close-SmbSession, basta especificar utilizando a ID da Session (Sessão).

Comando:

close-smbsession -sessionid 652835029845

Por padrão, o cmdlet exibirá um aviso, solicitando que você confirme que deseja encerrar a sessão.

 

 

 

 

Se você incluir o parâmetro -Force à linha de comando nenhum aviso é exibido.

Comando:

close-smbsession -sessionid 652835029845 – Force

 

Podemos fechar sessões baseando-se nas outras informações de saída, como IP e usuário.

Por exemplo, fecha uma seção através do IP, basta executar o seguinte cmdlet:

Comando:

close-smbsession -ClientComputerName 172.16.0.101 -Force

 

Resposta do comando:

 

 

 

 

Você também pode saber quais os arquivos que os clientes estão acessando atualmente como o seguinte cmdlet Get-SmbOpenFile.

Comando:

Get-SmbOpenFile

 

Resposta do comando:

 

 

 

 

 

Podemos também fechar um arquivo aberto com o seguinte cmdlet Close-SmbOpenfile, como demostrado no próximo exemplo:

Comando:

close-smbopenfile -fileid 670014898305

 

Resposta do comando:

 

 

 

 

 

 

 

 

Repare que o arquivo de Fileid 670014898305 já não aparece mais após executar o comando Get-SmbOpenFile.

 

Remover um compartilhamento

Se deseja encerrar totalmente um compartilhamento, finalizando todas as sessões, use o cmdlet Remove-SmbShare, especificando o nome do compartilhamento na linha de comando como demostrado neste exemplo:

Comando:

remove-smbshare -name Dados

Resposta do comando:

 

 

 

 

Para verificar quais os compartilhamentos de rede estão disponíveis use o cmdlet Get-SmbShare.

Comando:

 Get-SmbShare

Resposta do comando:

 

 

 

 

 

 

Defina configurações de servidor e cliente SMB usando o Windows PowerShell

Podemos criar um compartilhamento utilizando o Server Manager (Gerenciador de Servidor) ou utilizando o Windows Powershell, como demostrado no artigo anterior, Utilizando Compartilhamento e Sessão SMB na “unha” – Parte 1, mas podemos modificar as definições de configuração de um compartilhamento a qualquer momento após a sua criação usando outros cmdlets do módulo SmbShare do Windows Powershell.

 

Defina permissões de compartilhamento

É possível modificar as permissões de um compartilhamento especifico usando os cmdlets demostrados a seguir:

Para exibir a lista de controle de acesso do compartilhamento especifico execute o seguinte cmdlet:

Comando:

Get-SmbShareAccess -name Dados2

 

Resposta do comando:

 

 

 

 

Já para adicionar à ACL uma entrada de controle de acesso do tipo Allow (Permitir) para o usuário User3 no compartilhamento de nome Dados2 execute esse cmdlet:

Comando:

grant-smbshareaccess -name Dados2 -accountname CONTOSO\User3 -accessright full

 

Resposta do comando:

 

 

 

 

 

Já para remover do compartilhamento de nome Dados2 todas as permissões do tipo Allow pertencentes à entidade de segurança especifica de nome User2 execute o seguinte cmdlet:

 Comando:

revoke-smbshareaccess -name Dados2 -accountname CONTOSO\User2

 

Resposta do comando:

 

 

 

 

 

Para adicionar à ACL uma entrada de controle de acesso do tipo Deny (Negar) para o compartilhamento de nome Dados3 pertencentes à entidade de segurança especifica de nome User3 execute o seguinte cmdlet:

Comando:

block-smbshareaccess -name Dados3 -accountname CONTOSO\User3

 

Resposta do comando:

 

 

 

 

 

 

 

Agora para remover do compartilhamento de nome Dados3 uma ACL de entrada de controle de acesso do tipo Deny (Negar) para à entidade de segurança especifica de nome User3 execute o seguinte cmdlet:

Comando:

 unblock-smbshareaccess -name Dados3 -accountname CONTOSO\User3

Resposta do comando:

 

 

 

 

 

 

 

Defina configurações de servidor SMB

O módulo SmbShare do Windows Powershell contido no Windows Server 2012 introduziu o cmdlet Set-SmbServerConfiguration, que permite que os administradores defina várias implementações do servidor SMB. Para exibir todas as definições de configuração de servidor atuais, execute o seguinte cmdlet:

Comando:

Get-SmbServerConfiguration

 

Resposta do comando:

 

 

 

 

 

 

 

 

 

 

 

 

 

Protocolo SMB – Dicas

 Por exemplo, podemos especificar que versões do protocolo SMB o servidor deve usar executando comandos como os seguintes:

 Comandos

set-SmbServerConfiguration -enablesmb1protocol $false

set-SmbServerConfiguration -enablesmb2protocol $false

 

O Windows Server 2016 usa o SMB versão 3, mas as versões anteriores estão disponíveis para dar suporte a clientes de versões anteriores. Sempre é bom ressaltar que não há um parâmetro de separado que ative o SMB versão 3 individualmente, porque a versão 3 não pode ser executada sem a versão 2.

As versões 2 e 3 fornecem muitos recursos que podem melhorar o desemprenho do protocolo, inclusive criptografia de dados e agregação de links multicanal. A desativação do SMB versão 1 como o primeiro comando set-SmbServerConfiguration -enablesmb1protocol $false assegurará que seus clientes estejam usando versões mais recente do SMB e se beneficiando dos novos recursos. O SMB versão 1 não é necessário a menos que você tenha clientes executando o Windows XP ou versão anterior.

Observação: Sempre que poder desabilite o protocolo SMB versão 1 por há uma vulnerabilidade grave. Para saber mais acesso o link abaixo.

https://docs.microsoft.com/pt-br/security-updates/securitybulletins/2017/ms17-010

 

O último comando set-SmbServerConfiguration -enablesmb2protocol $false

desativa o SMB versões 2 e 3, permitindo que o servidor use apenas o SMB original da versão 1. Isso desativa vários recursos avançados do SMB, o que pode ser útil temporariamente para fins de resolução de problemas.

Quando seu servidor estiver executando o SMB versão 3, você poderá ativar a criptografia de sessões SMB para o servidor inteiro ou para um compartilhamento específico dele, usando os comandos a seguir:

Criptografia do servidor inteiro.

Comando:

set-smbserverconfiguration -encryptdata $true

 

Criptografia para um compartilhamento especifico.

Comando:

set-smbserverconfiguration -name data -encryptdata $true

 

Quando a criptografia é ativada, o comportamento padrão do servidor é rejeitar uma conexão de qualquer cliente que não dê suporte à criptografia do SMB versão 3. Você pode sobrepor esse comportamento usando o comando a seguir:

Comando:

set-SmbServerConfiguration -rejectunencryptedaccess $false

 

Há vários outros comandos que você pode usar com o cmdlet Set-SmbServerConfiguration. Para exibir os parâmetros e sua funções, execute esse comando a seguir:

Comando:

get-help set-smbserverconfiguration -detailed

 

Resposta do comando:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Defina configurações de cliente SMB

Assim como você pode definir configurações de servidor SMB usando o Windows Powershell, também podemos definir configurações de cliente SMB. Execute o cmdlet Get-SmbClientConfiguration exibi uma lista de configurações disponíveis, como mostrado abaixo:

Comando:

Get-SmbClientConfiguration

 

Resposta do comando:

 

 

 

 

 

 

 

 

 

Como ocorre como os parâmetros de configuração do servidor SMB, a maioria dessas configurações não requer modificação para uso normal. No entanto, se estiver examinando as melhorias das versões mais novas do SMB, poder ser interessante desativar certos recursos temporariamente para fins de teste.

Um bom exemplo é a nova funcionalidade multicanal do SMB pode permitir que seus computadores vivenciem maior throughput de comunicação e tolerância a falhas, mas o recurso tem requisitos de hardware tanto do cliente quanto para o servidor, como múltiplos adaptadores de rede ou adaptadores configurados para usar o NIC Teaming.

O SMB multicanal é ativado por padrão, se seus computadores estiverem equipados para usá-los, eles o usarão. Contudo, se você tiver dúvidas se p recurso está operando em seus sistemas, pode testá-lo desativando o multicanal com o comando a seguir:

Comando:

 set-smbclientconfiguration -enablemultichannel $false

 

Resposta do comando:

 

 

 

 

 

Se suas conexões SMB ficaram lentas demais por causa deste comando, isso significa que o multicanal estava funcionando e você pode ativá-lo novamente alterando de $false para $true. Se não houver mudança no desempenho do SMB como o multicanal desativado, deve haver um problema em algum local que você deve verificar e resolver.

Com este último cmdlet terminamos a série de dois artigos sobre Compartilhamento e Sessão SMB na “unha”.

Muito obrigado por prestigiar o meu trabalho, até o próximo artigo!

 

Inscreva-se no meu canal do Youtube também, já chegamos a marca de 436 inscritos!

Mais uma vez o meu muito obrigado!