ID-AZ-001 - Como Configurar um File Share SMB em VM Linux com Azure Files

ID: KB-AZ-001

Responsável: Thiago Amaral, TI

Status: Publicado

Última Atualização: 16/09/2025

Propósito

Auxiliar o time de Suporte TI Nível 1 na criação e configuração de um compartilhamento de arquivos (file share) em uma máquina virtual Azure, utilizando o protocolo SMB e um Azure File Share como backend.

Aplica-se a

  • Time de Suporte TI Nível 1: Time no espaço de atendimento da Fictor.


Instruções

1. Pré-requisitos: Instalação de Dependências

Antes de iniciar, conecte-se à máquina virtual e instale os pacotes necessários para Samba e para a montagem de compartilhamentos CIFS.

sudo apt update
sudo apt install samba cifs-utils smbclient acl -y

O procedimento é dividido em duas seções, uma para o compartilhamento Consignado e outra para o BCBR.

2. Configuração do Share "Recursos Consig"

2.1. Montar o Azure File Share (Consignado)

Crie e execute um script para montar o compartilhamento do Azure na VM de forma persistente.

  1. Crie o arquivo de script:

    touch consig-fileserver.sh
  2. Cole o seguinte conteúdo no arquivo `consig-fileserver.sh`:

    #!/usr/bin/env bash
    
    # Cria o ponto de montagem
    sudo mkdir -p /mnt/consig-fileserver
    
    # Cria o diretório e o arquivo de credenciais de forma segura
    if [ ! -d "/etc/smbcredentials" ]; then
        sudo mkdir /etc/smbcredentials
    fi
    if [ ! -f "/etc/smbcredentials/consigblob.cred" ]; then
        sudo bash -c 'echo "username=consigblob" >> /etc/smbcredentials/consigblob.cred'
        sudo bash -c 'echo "password=4C+BLoxFz8TRkOFQQnudwggXSuP2v1pey9MfxI82OsLavu1j/dBetLZ+tsh4keQLLaiC07xyIWLl+AStYvGqbg==" >> /etc/smbcredentials/consigblob.cred'
        sudo chmod 600 /etc/smbcredentials/consigblob.cred
    fi
    
    # Adiciona a entrada ao fstab para montagem automática no boot
    sudo bash -c 'echo "//consigblob.file.core.windows.net/consig-fileserver /mnt/consig-fileserver cifs nofail,credentials=/etc/smbcredentials/consigblob.cred,dir_mode=0777,file_mode=0777,serverino,nosharesock,actimeo=30" >> /etc/fstab'
    
    # Monta o compartilhamento imediatamente
    sudo mount -t cifs //consigblob.file.core.windows.net/consig-fileserver /mnt/consig-fileserver -o credentials=/etc/smbcredentials/consigblob.cred,dir_mode=0777,file_mode=0777,serverino,nosharesock,actimeo=30
    
    echo "Montagem do consig-fileserver concluída."
  3. Torne o script executável e rode-o:

    sudo chmod +x consig-fileserver.sh
    ./consig-fileserver.sh

2.2. Configurar o Compartilhamento no Samba

Adicione a definição do novo compartilhamento no arquivo de configuração do Samba.

  1. Abra o arquivo /etc/samba/smb.conf em um editor de texto.

  2. Cole o bloco abaixo no final do arquivo:

    [Recursos Consig]
       path = /mnt/consig-fileserver
       browseable = yes
       writable = yes
       read only = no
       guest ok = no
       valid users = @smbusers
       force group = smbusers
       create mask = 0775
       directory mask = 0775

2.3. Ajustar Permissões do Sistema

Ajuste as permissões no ponto de montagem para garantir que o grupo smbusers tenha o acesso correto.

(Nota: O uso de ACLs pode ser explorado para permissões mais granulares no futuro).

# Ajuste o grupo proprietário do diretório
sudo chown -R root:smbusers /mnt/consig-fileserver

# Garante que o grupo possa ler/executar na raiz do share
sudo chmod 775 /mnt/consig-fileserver

# Permite que o grupo crie/modifique arquivos nas subpastas
sudo chmod 775 /mnt/consig-fileserver/Decretos
sudo chmod 775 /mnt/consig-fileserver/Clientes
sudo chmod 775 /mnt/consig-fileserver/"CCB e Termos"
sudo chmod 775 /mnt/consig-fileserver/Faturas

2.4. Criar Usuários para o Samba (Consignado)

Crie o grupo e os usuários que terão acesso a este compartilhamento.

  1. Crie o grupo definido no smb.conf:

    sudo groupadd smbusers
  2. Adicione um novo usuário no sistema (ex: `sambauser`):

    sudo useradd sambauser -s /sbin/nologin
  3. Associe o usuário ao grupo do Samba:

    sudo usermod -aG smbusers sambauser
  4. Defina uma senha para o usuário no Samba (esta senha é diferente da senha do sistema):

    sudo smbpasswd -a sambauser

3. Configuração do Share "BCBR"

3.1. Montar o Azure File Share (BCBR)

  1. Crie o arquivo de script:

    touch bcbr-fileserver.sh
  2. Cole o seguinte conteúdo no arquivo bcbr-fileserver.sh:

    #!/usr/bin/env bash
    sudo mkdir -p /mnt/bcbr-fileserver
    if [ ! -d "/etc/smbcredentials" ]; then
        sudo mkdir /etc/smbcredentials
    fi
    if [ ! -f "/etc/smbcredentials/consigblob.cred" ]; then
        sudo bash -c 'echo "username=consigblob" >> /etc/smbcredentials/consigblob.cred'
        sudo bash -c 'echo "password=4C+BLoxFz8TRkOFQQnudwggXSuP2v1pey9MfxI82OsLavu1j/dBetLZ+tsh4keQLLaiC07xyIWLl+AStYvGqbg==" >> /etc/smbcredentials/consigblob.cred'
        sudo chmod 600 /etc/smbcredentials/consigblob.cred
    fi
    
    sudo bash -c 'echo "//consigblob.file.core.windows.net/bcbr-fileserver /mnt/bcbr-fileserver cifs nofail,credentials=/etc/smbcredentials/consigblob.cred,dir_mode=0777,file_mode=0777,serverino,nosharesock,actimeo=30" >> /etc/fstab'
    sudo mount -t cifs //consigblob.file.core.windows.net/bcbr-fileserver /mnt/bcbr-fileserver -o credentials=/etc/smbcredentials/consigblob.cred,dir_mode=0777,file_mode=0777,serverino,nosharesock,actimeo=30
    
    echo "Montagem do bcbr-fileserver concluída."
  3. Torne o script executável e rode-o:

    sudo chmod +x bcbr-fileserver.sh
    ./bcbr-fileserver.sh

3.2. Configurar o Compartilhamento no Samba

  1. Abra o arquivo /etc/samba/smb.conf.

  2. Cole o bloco abaixo no final do arquivo:

    [BCBR]
       path = /mnt/bcbr-fileserver
       browseable = yes
       writable = yes
       read only = no
       guest ok = no
       valid users = @sambabcbr
       force group = sambabcbr
       create mask = 0775
       directory mask = 0775

3.3. Ajustar Permissões do Sistema

sudo chown -R :sambabcbr /mnt/bcbr-fileserver
sudo chmod -R 0775 /mnt/bcbr-fileserver

3.4. Criar Usuários para o Samba (BCBR)

  1. Crie o grupo específico para este share:

    sudo groupadd sambabcbr
  2. Adicione um novo usuário no sistema (ex: user.bcbr):

    sudo useradd user.bcbr -s /sbin/nologin
  3. Associe o usuário ao grupo:

    sudo usermod -aG sambabcbr sambauserbcbr
  4. Crie a senha do Samba para o usuário:

    sudo smbpasswd -a sambauserbcbr

4. Finalização e Verificação

  1. Após realizar as configurações, reinicie e habilite os serviços do Samba para aplicar as mudanças:

    sudo systemctl restart smbd
    sudo systemctl restart nmbd
    sudo systemctl enable smbd
    sudo systemctl enable nmbd
  2. Verifique a conexão e os compartilhamentos disponíveis no servidor usando o IP da máquina:

    # smbclient -U <nome_do_usuario_samba> -L //191.234.206.135
    smbclient -U sambauser -L //191.234.206.135

5. Informações Complementares de Rede

  • Para acesso externo (via internet), a porta TCP 445 deve estar liberada no Network Security Group (NSG) da VM no Azure.

  • IP Público: 191.234.206.135

  • IP Privado (para uso em VPN): 10.2.0.4

  • Todas credenciais de usuários estão no Sharepoint privado do Consignado em TI > 12_Administrativo.

Resultado Esperado

Um bucket público será criado e poderá ser acessado.

Solução de Problemas

N/A

Artigos Relacionados

N/A

Anexos

N/A

Referências

N/A

Histórico De Versão

Data
Versão
Responsável
Motivo

16/09/2025

1.0

Thiago Thalisson

Confecção do documento.

Last updated