07 de janeiro de 2020 • 4 min de leitura
Criação e administração de um servidor Samba!
Aprenda a criar e configurar um servidor com Samba.
Nesse tutorial estarei explicando como configurar o Samba em um servidor com CentOS 7, exemplificarei o compartilhamento público e seguro. O Samba é um software livre gratuito que provem o compartilhamento de arquivos e impressoras de forma semelhante ao windows.
Primeiramente será demonstrado como prosseguir com a instalação do Samba com compartilhamento público. Para instalar o serviço do Samba, rode:
yum install -y samba samba-client samba-common
Iremos utilizar a versão disponibilizada pelos repositórios do CentOS, sinta-se livre para utilizar a versão desejada.
Para prosseguir com a configuração do Samba, basta seguir para o seu arquivo de configuração /etc/samba/smb.conf. É importante que guarde uma cópia do arquivo original para utilização futuras, para isso basta seguir com a cópia:
cp /etc/samba/smb.conf /etc/samba/smb.conf.orig
Para iniciar com a configuração do arquivo de forma limpa podemos prosseguir com limpeza do arquivo da seguinte forma:
cat /dev/null >> /etc/samba/smb.conf
Após a limpeza, estaremos iniciando as configurações do arquivo, antes disso estarei informando alguns detalhes quanto as tags que podem ser utilizadas, são elas:
[global]
Define as configurações que afetam o servidor samba de forma global, como o próprio nome já sugere, fazendo efeito em todos os compartilhamentos existentes na máquina. Por exemplo, o grupo de trabalho, nome do servidor, restrições de acesso por nome.
[homes]
Especifica opções de acesso a diretórios home de usuários, o diretório home é disponibilizado somente para seu dono, após se autenticar no sistema.
[printers]
Define opções gerais para controle das impressoras do sistema. Este compartilhamento mapeia os nomes de todas as impressoras encontradas no /etc/printcap. Configurações especiais podem ser feitas separadamente.
Então, seguiremos, inicialmente, com a configuração do smb.conf, para iniciar iremos prosseguir com a criação do [global] da seguinte maneira:
[global]
# nome da máquina na rede
netbios name = SRV_ARQ
# nome do grupo de trabalho que a máquina pertencerá
workgroup = WORKGROUP
# String que será mostrada junto com a descrição do servidor
server string = Servidor de arquivos com samba
# nível de segurança user somente aceita usuários autenticados após o envio
# de login/senha
security = user
# Conta que será mapeada para o usuário guest
guest account = nobody
Com o global devidamente configurado, partiremos para configuração da pasta home dos usuários que irão se conectar ao servidor, para isso configuraremos a tag [homes]:
# Mapeia o diretório home do usuário autenticado.
[homes]
comment = Diretório do Usuário
# Padrão para criação de arquivos no compartilhamento
create mask = 0750
# Padrão para a criação de diretórios no compartilhamento
directory mask = 0750
# Define se o compartilhamento será ou não exibido na procura de rede
browseable = No
Para a criação do compartilhamento publico, seguiremos com a seguinte sintaxe:
[Publico]
comment = Publico
# Caminho da pasta no servidor
path = /samba/Publico
# Permite a conexão sem necessidade de autenticação
public = yes
# Permite modificações
writable = yes
# Define se o compartilhamento será ou não exibido na procura de rede
browsable =yes
Com o arquivo devidamente configurado, precisamos prosseguir com a criação da pasta que será utilizada para armazenamento dos arquivos públicos, note que no path escolhi o caminho /samba/Publico, então iremos criar esse caminho e posteriormente o compartilharemos de fato, utilizando os seguinte comandos:
mkdir -p /samba/Publico
chcon -t samba_share_t /samba/Publico
Desta forma o compartilhamento publico já encontra-se funcional, em um ambiente de produção se fará necessário a liberação das portas que o samba utiliza para utilização do serviço, em um ambiente CentOS7 por padrão é utilizado o firewalld, então para prosseguir com a liberação, basta seguir com os comandos:
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --reload
Caso esteja utilizando diretamente no iptables, basta prosseguir com a liberação das portas UDP 137-138 e TCP 139, 445, note que liberei apenas o trafego gerado na minha interface ens33, que é a interface para minha rede interna, mude de acordo com a sua necessidade.
iptables -A INPUT -i ens33 -p udp --dport 137:138 -j ACCEPT
iptables -A INPUT -i ens33 -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -i ens33 -p tcp --dport 445 -j ACCEPT
service iptables save
Com todas as configurações realizadas, vamos iniciar o serviço e incluir para inicialização do sistema, para isso basta seguir com os comandos abaixo:
systemctl enable smb.service
systemctl enable nmb.service
systemctl restart smb.service
systemctl restart nmb.service
Agora, através do seu computador, basta acessar a máquina através da descoberta de rede do seu computador, note que o compartilhamento já está ativo:
Agora com o compartilhamento público realizado, seguiremos com a realização do compartilhamento privado, seguiremos com a criação da entrada no arquivo de configuração do samba, seguindo o padrão abaixo:
[Privado]
comment = Compartilhamento Privado
path = /samba/Privado
# Usuário ou grupos válidos
valid users = @privado
guest ok = no
read only = no
writable = yes
browsable = yes
create mask = 0750
directory mask = 0750
Prosseguiremos com a criação de compartilhamento da pasta, da mesma forma que realizado para pasta publica:
mkdir -p /samba/Privado
chcon -t samba_share_t /samba/Privado
Com a pasta criada, alteraremos a permissão de acesso e o grupo dono para que apenas as pessoas do grupo “privado” possam acessar, para isso devemos prosseguir com os seguintes comandos:
chmod 0770 /samba/Privado
chown -R root:privado /samba/Privado
Desta forma, apenas os usuários do grupo privado terá acesso a pasta “Privado”, prosseguiremos com a criação de um usuário, inclusão deste no grupo criado e adicionaremos o seu usuário junto ao samba:
useradd teste
passwd teste
groupadd privado
useradd teste -G privado
smbpasswd -a teste
Agora na sua máquina windows, quando realizar a tentativa de acesso a pasta privada, note que será solicitada um login para autenticação, entre com as suas credenciais e o seu usuário terá as permissões de utilização da pasta privada.
Espero que tenham alcançado os objetivos iniciais e entendido um pouco mais sobre a configuração de um servidor com samba, caso tenha alguma dúvida ou note que ficou faltando algo, basta informar!
Fontes:
https://wiki.samba.org/index.php/User_Documentation https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Standalone_Server