Pesquisa de site

Configurando o Samba e configurando o FirewallD e o SELinux para permitir o compartilhamento de arquivos em clientes Linux/Windows - Parte 6


Como os computadores raramente funcionam como sistemas isolados, é de se esperar que, como administrador de sistema ou engenheiro, você saiba como configurar e manter uma rede com vários tipos de servidores.

Neste artigo e no próximo desta série abordaremos os fundamentos da configuração de servidores Samba e NFS com clientes Windows/Linux e Linux, respectivamente.

Este artigo certamente será útil se você precisar configurar servidores de arquivos em ambientes corporativos ou empresariais onde provavelmente encontrará diferentes sistemas operacionais e tipos de dispositivos.

Como você pode ler sobre o histórico e os aspectos técnicos do Samba e do NFS em toda a Internet, neste artigo e no próximo iremos direto ao assunto com o tópico em questão.

Passo 1: Instalando o Servidor Samba

Nosso ambiente de teste atual consiste em duas caixas RHEL 7 e uma máquina Windows 8, nesta ordem:


1. Samba / NFS server [box1 (RHEL 7): 192.168.0.18], 
2. Samba client #1 [box2 (RHEL 7): 192.168.0.20]
3. Samba client #2 [Windows 8 machine: 192.168.0.106]

No box1, instale os seguintes pacotes:


yum update && yum install samba samba-client samba-common

Na caixa2:


yum update && yum install samba samba-client samba-common cifs-utils

Assim que a instalação for concluída, estamos prontos para configurar nosso compartilhamento.

Etapa 2: configurar o compartilhamento de arquivos por meio do Samba

Uma das razões pelas quais o Samba é tão relevante é porque ele fornece serviços de arquivo e impressão para clientes SMB/CIFS, o que faz com que esses clientes vejam o servidor como se fosse um Sistema Windows (devo admitir que tenho tendência a ficar um pouco emocionado ao escrever sobre este tópico, pois foi minha primeira configuração como novo administrador de sistema Linux há alguns anos).

Adicionar usuários do sistema e configurar permissões e propriedade

Para permitir a colaboração em grupo, criaremos um grupo chamado finance com dois usuários (user1 e user2) com o comando useradd e um diretório /finanças na caixa1.

Também mudaremos o proprietário do grupo deste diretório para finance e definiremos suas permissões para 0770 (permissões de leitura, gravação e execução para o proprietário e o proprietário do grupo):


groupadd finance
useradd user1
useradd user2
usermod -a -G finance user1
usermod -a -G finance user2
mkdir /finance
chmod 0770 /finance
chgrp finance /finance

Etapa 3: Configurando SELinux e Firewalld

Na preparação para configurar /finance como um compartilhamento Samba, precisaremos desabilitar o SELinux ou definir os valores de contexto booleano e de segurança apropriados como segue (caso contrário, o SELinux impedirá que os clientes acessem o compartilhamento):


setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
getsebool –a | grep samba_export
semanage fcontext –at samba_share_t "/finance(/.*)?"
restorecon /finance

Além disso, devemos garantir que o tráfego do Samba seja permitido pelo firewalld.


firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

Etapa 4: configurar o compartilhamento Samba

Agora é hora de mergulhar no arquivo de configuração /etc/samba/smb.conf e adicionar a seção para nosso compartilhamento: queremos que os membros do grupo finance possam navegar pelo conteúdo de /finance e salvar / criar arquivos ou subdiretórios nele (que por padrão terão seus bits de permissão definidos como 0770 e finance será o proprietário do grupo):


[finance]
comment=Directory for collaboration of the company's finance team
browsable=yes
path=/finance
public=no
valid users=@finance
write list=@finance
writeable=yes
create mask=0770
Force create mode=0770
force group=finance

Salve o arquivo e teste-o com o utilitário testparm. Se houver algum erro, a saída do comando a seguir indicará o que você precisa corrigir. Caso contrário, será exibida uma revisão da configuração do seu servidor Samba:

Caso você queira adicionar outro compartilhamento aberto ao público (ou seja, sem qualquer tipo de autenticação), crie outra seção em /etc/samba/smb.conf e sob o nome do novo compartilhamento copie a seção acima , alterando apenas public=no para public=yes e não incluindo os usuários válidos e as diretivas da lista de gravação.

Etapa 5: Adicionar usuários do Samba

Em seguida, você precisará adicionar user1 e user2 como usuários do Samba. Para isso, você utilizará o comando smbpasswd, que interage com o banco de dados interno do Samba. Você será solicitado a inserir uma senha que usará posteriormente para se conectar ao compartilhamento:


smbpasswd -a user1
smbpasswd -a user2

Por fim, reinicie o Samba, ative o serviço para iniciar na inicialização e certifique-se de que o compartilhamento esteja realmente disponível para os clientes da rede:


systemctl start smb
systemctl enable smb
smbclient -L localhost –U user1
smbclient -L localhost –U user2

Neste ponto, o servidor de arquivos Samba foi instalado e configurado corretamente. Agora é hora de testar esta configuração em nossos clientes RHEL 7 e Windows 8.

Passo 6: Montando o compartilhamento Samba no Linux

Primeiro, certifique-se de que o compartilhamento Samba esteja acessível neste cliente:


smbclient –L 192.168.0.18 -U user2

(repita o comando acima para user1)

Como qualquer outra mídia de armazenamento, você pode montar (e posteriormente desmontar) esse compartilhamento de rede quando necessário:


mount //192.168.0.18/finance /media/samba -o username=user1

(onde /media/samba é um diretório existente)

ou permanentemente, adicionando a seguinte entrada no arquivo /etc/fstab:


//192.168.0.18/finance /media/samba cifs credentials=/media/samba/.smbcredentials,defaults 0 0

Onde o arquivo oculto /media/samba/.smbcredentials (cujas permissões e propriedade foram definidas como 600 e root:root, respectivamente) contém duas linhas que indicam o nome de usuário e a senha de uma conta que tem permissão para usar o compartilhamento:


username=user1
password=PasswordForUser1

Por fim, vamos criar um arquivo dentro de /finance e verificar as permissões e propriedade:


touch /media/samba/FileCreatedInRHELClient.txt

Como você pode ver, o arquivo foi criado com permissões 0770 e propriedade definida como user1:finance.

Etapa 7: montando o compartilhamento Samba no Windows

Para montar o compartilhamento Samba no Windows, vá para Meu PC e escolha Computador, depois Mapear unidade de rede. Em seguida, atribua uma letra para a unidade a ser mapeada e marque Conectar usando credenciais diferentes (as capturas de tela abaixo estão em espanhol, meu idioma nativo):

Finalmente, vamos criar um arquivo e verificar as permissões e propriedade:


ls -l /finance

Desta vez, o arquivo pertence a user2, pois essa é a conta que usamos para conectar-se a partir do cliente Windows.

Resumo

Neste artigo explicamos não apenas como configurar um servidor Samba e dois clientes usando sistemas operacionais diferentes, mas também como configurar o firewalld e o SELinux no servidor para permitir os recursos de colaboração de grupo desejados.

Por último, mas não menos importante, recomendo a leitura da página de manual on-line do smb.conf para explorar outras diretivas de configuração que podem ser mais adequadas ao seu caso do que o cenário descrito neste artigo.

Como sempre, fique à vontade para deixar um comentário usando o formulário abaixo se tiver algum comentário ou sugestão.