Pesquisa de site

Como instalar o Samba no Ubuntu para compartilhamento de arquivos no Windows


Samba é um software gratuito/de código aberto popularmente usado para compartilhar arquivos e serviços de impressão entre sistemas do tipo Unix, incluindo hosts Linux e Windows na mesma rede.

Neste guia, mostraremos como configurar o Samba4 para compartilhamento básico de arquivos entre sistemas Ubuntu e máquinas Windows. Abordaremos dois cenários possíveis: anônimo (inseguro) e também compartilhamento seguro de arquivos.

Leitura sugerida: Como instalar o Samba4 no CentOS/RHEL 7 para compartilhamento de arquivos no Windows

Observe que a partir da versão 4.0, o Samba pode ser usado como um controlador de domínio (DC) do Active Directory (AD). Organizamos uma série especial para configurar o controlador de domínio do Active Directory Samba4, que compreende os principais tópicos do Ubuntu, CentOS e Windows.

  1. Configurando o controlador de domínio Samba4 Active Directory

Instale e configure o Samba no Ubuntu

O servidor Samba está disponível para instalação a partir dos repositórios padrão do Ubuntu usando a ferramenta gerenciador de pacotes apt, conforme mostrado.

sudo apt install samba samba-common python-dnspython

Uma vez instalado o servidor samba, agora é hora de configurar o servidor samba como: anônimo inseguro e compartilhamento seguro de arquivos.

Para isso, precisamos editar o arquivo de configuração principal do Samba /etc/samba/smb.conf (que explica várias diretivas de configuração).

Primeiro faça backup do arquivo de configuração original do samba da seguinte maneira.

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.orig

Depois, prosseguiremos com a configuração do samba para serviços anônimos e de compartilhamento seguro de arquivos conforme explicado abaixo.

Importante: Antes de prosseguir, certifique-se de que a máquina Windows esteja no mesmo grupo de trabalho que será configurado no servidor Ubuntu.

Verifique as configurações do grupo de trabalho da máquina Windows

Faça login em sua máquina Windows, clique com o botão direito em “Este PC” ou “Meu Computador Propriedades Configurações avançadas do sistema Nome do computador para verificar o grupo de trabalho.

Alternativamente, abra o prompt de comando e visualize-o executando o comando abaixo e procure por “domínio da estação de trabalho”.

>net config workstation

Depois de conhecer seu grupo de trabalho do Windows, é hora de seguir em frente e configurar o servidor samba para compartilhamento de arquivos.

Compartilhamento anônimo de arquivos Samba

Primeiro comece criando um diretório samba compartilhado onde os arquivos serão armazenados.

sudo mkdir -p /srv/samba/anonymous_shares

Em seguida, defina as permissões apropriadas no diretório.

sudo chmod -R 0775 /srv/samba/anonymous_shares
sudo chown -R nobody:nogroup /srv/samba/anonymous_shares

Agora abra o arquivo de configuração.

sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

Em seguida, edite ou modifique as configurações da diretiva conforme descrito abaixo.

global]
	workgroup = WORKGROUP
	netbios name = ubuntu
	security = user
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	browsable =yes
	writable = yes
	guest ok = yes
	read only = no
	force user = nobody

Agora verifique as configurações atuais do samba executando o comando abaixo.

testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb

[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes

Em seguida, reinicie os serviços Samba para efetuar as alterações acima.

sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

Testando o compartilhamento anônimo de arquivos Samba

Vá para a máquina Windows e abra “Rede” em uma janela do Windows Explorer. Clique no host Ubuntu (TECMINT para o nosso caso), ou então tente acessar o servidor samba usando seu endereço IP.

\2.168.43.168

Nota: Use o comando ifconfig para obter o endereço IP do seu servidor Ubuntu.

Em seguida, abra o diretório Anonymous e tente adicionar arquivos lá para compartilhar com outros usuários.

Compartilhamento seguro de arquivos Samba

Para proteger um compartilhamento samba com senha, você precisa criar um grupo “smbgrp” e definir uma senha para cada usuário. Neste exemplo utilizo aaronkilik como usuário e senha como “tecmint“.

sudo addgroup smbgrp
sudo usermod aaronkilik -aG smbgrp
sudo smbpasswd -a aaronkilik

Nota: O modo de segurança do samba: security=user exige que os clientes insiram um nome de usuário e senha para se conectarem aos compartilhamentos.

As contas de usuário do Samba são separadas das contas do sistema, no entanto, você pode opcionalmente instalar o pacote libpam-winbind que é usado para sincronizar usuários e senhas do sistema com o banco de dados de usuários do samba.

sudo apt install libpam-winbind

Em seguida, crie o diretório seguro onde os arquivos compartilhados serão mantidos.

sudo mkdir -p /srv/samba/secure_shares

Em seguida, defina as permissões apropriadas no diretório.

sudo chmod -R 0770 /srv/samba/secure_shares
sudo chown -R root:smbgrp /srv/samba/secure_shares

Agora abra o arquivo de configuração.

sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

Em seguida, edite ou modifique as configurações da diretiva conforme descrito abaixo.

[Secure]
	comment = Secure File Server Share
	path =  /srv/samba/secure_shares
	valid users = @smbgrp
	guest ok = no
	writable = yes
	browsable = yes

Assim como antes, execute este comando para ver suas configurações atuais do samba.

testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: The "syslog" option is deprecated
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb
[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes
[Secure]
	comment = Secure File Server Share
	path = /srv/samba/secure_shares
	valid users = @smbgrp
	read only = No

Depois de concluir as configurações acima, reinicie os serviços Samba para aplicar as alterações.

sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

Testando o compartilhamento seguro de arquivos Samba

Como antes, na máquina Windows, abra “Rede” em uma janela do Windows Explorer. Clique no host Ubuntu (TECMINT para o nosso caso). Você pode receber o erro abaixo, caso contrário, prossiga para a próxima etapa.

Tente acessar o servidor usando seu endereço IP, por ex. \\192.168.43.168 assim. Em seguida, insira as credenciais (nome de usuário e senha) do usuário aaronkilik e clique em OK.

Agora você verá todos os diretórios compartilhados, clique em Seguro para abri-lo.

Você pode compartilhar alguns arquivos com segurança com outros usuários permitidos na rede, colocando-os neste diretório.

Habilite o Samba no Firewall UFW no Ubuntu

Se você tiver o firewall UFW ativado/ativo em seu sistema, deverá adicionar as regras para permitir que o Samba passe pelo seu firewall.

Para testar isso, usamos o esquema de rede 192.168.43.0. Execute os comandos abaixo especificando seu endereço de rede.

sudo ufw allow proto udp to any port 137 from 192.168.43.0/24
sudo ufw allow proto udp to any port 138 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 139 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 445 from 192.168.43.0/24

Você também pode conferir estes artigos úteis sobre compartilhamento de arquivos Samba em uma rede.

  1. Configurando o controlador de domínio Samba4 Active Directory - Parte 1 a 14
  2. Como montar/desmontar sistemas de arquivos locais e de rede (Samba e NFS) no Linux
  3. Usando ACLs (listas de controle de acesso) e montando compartilhamentos Samba/NFS
  4. Como corrigir a vulnerabilidade SambaCry (CVE-2017-7494) em sistemas Linux

Isso é tudo! Neste guia, mostramos como configurar o Samba4 para compartilhamento anônimo e seguro de arquivos entre máquinas Ubuntu e Windows. Use o formulário de feedback abaixo para compartilhar suas idéias conosco.