Como instalar e configurar o samba no RHEL 8 / CENTOS 8

Como instalar e configurar o samba no RHEL 8 / CENTOS 8

O Samba fornece software servidor e cliente para permitir o compartilhamento de arquivos entre as máquinas Linux e Windows. Instalar e configurá -lo no RHEL 8 / CENTOS 8, é bastante fácil. Continue lendo para aprender a compartilhar um diretório com o samba e como aplicar o contexto de Selinux apropriado a ele.

Neste tutorial, você aprenderá:

  • Como instalar o samba no rhel8
  • Como ativar e iniciar os daemons SMB e NMB
  • Como criar um compartilhamento de samba
  • Como configurar o firewall para permitir que o compartilhamento da Samba seja acessado
  • Como configurar o contexto de Selinux correto para o Samba funcionar corretamente
Samba compartilha no RHEL 8 / CENTOS 8

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Red Hat Enterprise Linux 8
Programas Samba, Coreutils e PolicyCoreutils-Python-Utils
Outro Permissão para executar o comando com privilégios root.
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Apresentando Samba

Samba, como declarado na página inicial do projeto, é um software de código aberto, lançado sob o Gpl licença, que nos permite compartilhar arquivos e imprimir serviços usando o SMB/CIFS protocolo.

O projeto fornece software servidor e cliente para permitir a interoperação com máquinas Windows, representando a solução ideal em ambientes mistos. Neste tutorial, veremos como instalar o samba no Red Hat Enterprise Linux 8, como configurar um compartilhamento de samba, como a configuração do firewall para permitir o acesso a recursos compartilhados e como aplicar o contexto de SELinux apropriado.



Instalação

A primeira coisa que precisamos fazer é instalar o samba em nossa máquina. O pacote e as bibliotecas necessárias estão disponíveis nos repositórios oficiais do RHEL 8 / CENTOS 8; portanto, podemos instalá -los apenas usando YUM ou DNF. Nesta versão do RHEL/CENTOS, o primeiro comando é apenas um "link" para o segundo:

$ sudo dnf install samba samba-client

O pacote Samba-Client não é estritamente necessário, mas os utilitários fornecidos por ele podem ser úteis. Depois que os pacotes são instalados, temos que iniciar e ativar o SMB e a NMB Daemons na inicialização. O primeiro é o daemon que cuida de executar as transferências reais e as operações de compartilhamento, enquanto o segundo executa o Netbios resoluções de nome, permitindo que os recursos apareçam ao navegar na rede no Windows. Agora podemos ativar e iniciar os dois serviços do SystemD com apenas um comando:

$ sudo systemctl enable - -agora sMb, nmb

Configurando o firewall

O próximo passo é a configuração do firewall. Devemos abrir as portas apropriadas, para que os recursos compartilhados do samba possam ser acessíveis a partir de outras máquinas. O software de gerenciamento de firewall padrão Onrhel 8 / CentOS 8, é firewalld.

Felizmente para nós, não há necessidade de abrir portas manualmente: tudo o que precisamos fazer é adicionar o serviço "samba" à nossa zona. Um "serviço" é apenas uma abstração que permite o tráfego através de todas as portas necessárias por um serviço, referenciando o nome do serviço, em vez de ter que configurar (e lembrar) cada porta usada por ele. Caso queremos reunir informações sobre um "serviço", podemos executar:

$ sudo firewall-cmd-portas samba samba samba: 137/udp 138/udp 139/tcp 445/tcp Protocols: fontes-portas: módulos: netbios-ns destino: 

A partir da saída do comando, vemos que o serviço permitirá o tráfego através das portas 173/UDP, 138/UDP, 139/TCP e 445/TCP. Para adicionar permanentemente o serviço à zona padrão, podemos executar:

$ sudo firewall-cmd --permanent --Add-Service = samba

Ao executar o comando, usamos o --permanente mudar para tornar nossa mudança persistente. Nós também assumimos o padrão zona para estar em uso. Se quiséssemos especificar outra zona para a ação ser aplicada, teríamos usado o --zona opção, e forneceu o nome da zona como argumento (e.g. -zona = externo). Como nossa mudança deve ser permanente, para que ela se torne eficaz, devemos recarregar a configuração do firewall:

$ sudo firewall-cmd--reload


Podemos verificar se o serviço "samba" agora faz parte da nossa zona, executando:

$ sudo firewall-cmd-cockpit dhcpv6 client http client http samba ssh 

Novamente, se nenhuma zona for especificada, o comando será aplicado à zona padrão.

Configurando um diretório compartilhado acessível pelos convidados

Digamos que queremos compartilhar um diretório via Samba, e queremos deixar o acesso gratuito a este diretório aos usuários convidados, sem que eles tenham que fornecer uma senha. Para obter o resultado desejado, devemos fazer algumas alterações no /etc/samba/sMb.conf arquive e adicione uma "estrofe" para a nossa parte. Abra o arquivo com seu editor favorito e no [global] Seção, adicione o texto destacado:

[Global] WorkGroup = Samba Security = User PassDB back -end = tdbsam Printing = Cups PrintCap Name = Cups Carregar impressoras = Sim Opções de copos = Raw mapear para convidado = usuário ruim 

O mapear para convidado = usuário ruim Instrução, mapeará as tentativas de login com nomes de usuário ruins para o usuário convidado padrão, o que, por padrão, é ninguém. Isso é necessário para permitir acesso anônimo sem precisar fornecer uma senha.

Após essa mudança, devemos anexar uma nova estrofe dedicada à nossa parte no final do arquivo. Vamos citar o recurso compartilhado "LinuxConfig":

[LinuxConfig] PATH = /MNT /SOMPREGADO COMPARTILIZADO = SIM 

Com a configuração acima, declaramos que queremos compartilhar o conteúdo do /mnt/compartilhado diretório, sem a necessidade de autenticação do usuário. Essa configuração é obviamente arriscada e é relatada aqui apenas como um exemplo: em um cenário do mundo real, você pode querer pelo menos negar o acesso de gravação aos convidados (você pode fazer isso adicionando o Escritos = não instrução). Para tornar as alterações eficazes, devemos reiniciar os daemons:



$ sudo systemctl reiniciar smb, nmb

Configure um compartilhamento acessível apenas por usuários registrados

Para proteger o acesso a um recurso com um prompt de login, quando o Samba estiver sendo executado como um servidor independente, devemos adicionar um usuário existente ao banco de dados Samba. As credenciais deste usuário serão necessárias para acessar o diretório compartilhado. Por razões de segurança, é uma boa prática criar um usuário dedicado para a tarefa, omitir a criação de seu diretório doméstico e atribuindo -lhe uma concha falsa:

$ sudo adduser -m sambauser -s /sbin /nologin

O -M a opção passada para o comando é o formulário curto para --não-crie-home, que é bastante auto-explicativo; o -s Opção, em vez disso, vamos especificar um shell, neste caso um inválido de propósito: /sbin/nologin. Neste ponto, o usuário nem precisa ter uma senha definida em nosso sistema.

Depois que o usuário é criado, precisamos adicioná -lo ao banco de dados Samba: podemos executar a operação usando o SMBPasswd comando:

$ sudo smbpasswd -um sambauser nova senha do SMB: reddeme a nova senha do SMB: adicionado usuário sambauser. 

Depois de executar o comando, somos solicitados a atribuir uma senha ao usuário e também para confirmá -la: essa senha será válida apenas no contexto do samba, não tem nada a ver com a conta de usuário em nosso sistema. Para restringir o compartilhamento que criamos anteriormente, precisamos fazer uma pequena mudança na seção dedicada:

[LinuxConfig] PATH = /MNT /compartilhado convidado ok = não 

Podemos verificar se nossa configuração é válida, usando o teste comando:



$ testParm carregar arquivos de configuração SMB de/etc/samba/sMb.conf rlimit_max: aumentando rlimit_max (1024) para o mínimo de limite do Windows (16384) seção de processamento "[Homes]" Seção de processamento "[impressoras]" Seção de processamento "[Print $]" Seção de processamento "[LinuxConfig]" Arquivo de serviços carregados OK OK OK. Função do servidor: Role_standalone 

Novamente, devemos reiniciar o SMB e NMB daemons para que nossas mudanças sejam eficazes. O diretório compartilhado agora estará acessível apenas depois de fornecer as credenciais corretas.

Configuração Selinux para Samba

Selinux é frequentemente visto como uma complicação e desativado imediatamente. Isso não é necessário: só precisamos aprender a configurá -lo e aproveitar o aprimoramento da segurança que ele fornece. Para que nosso compartilhamento do Samba funcione quando a Selinux estiver no modo de “cumprir”, devemos atribuir o contexto apropriado ao nosso diretório e arquivos compartilhados:

$ sudo chcon -r -t samba_share_t /mnt /compartilhado

No exemplo acima, usamos o Chcon comando com o -t opção, para alterar o TIPO Seção do contexto de Selinux para samba_share_t. Nós também usamos o -R mudar para fazer o comando recursivo. Essa alteração sobreviverá a uma reinicialização, mas não é uma reabastecimento do sistema se existir uma política padrão para nosso diretório e arquivos, porque nesse caso a configuração padrão seria aplicada reaplicada.

Se queremos que nossa mudança sobreviva a um evento de relacionamento, devemos adicionar nossa regra à política. Podemos fazer isso usando o Semanage comando:

$ sudo semanage fContext -a -t samba_share_t "/mnt/compartilhado (/.*)?"

Já que usamos o (/.*)? Regex, a regra será aplicada a todo o conteúdo do diretório "compartilhado" e ao próprio diretório. Podemos verificar se nossa regra foi adicionada à política listando os rótulos em uso em nosso sistema:

$ sudo semanage fContext -l | grep/mnt/compartilhado/mnt/compartilhado (/.*)? Todos os arquivos System_u: object_r: samba_share_t: S0 

Agora devemos ter uma configuração de samba funcionando. Para ajustar ainda mais a configuração do Samba, podemos precisar também manipular o Selinux booleans. Por exemplo, ao adicionar usuários existentes ao samba, para deixar seus diretórios domésticos serem compartilhados, devemos permitir que os dedicados Selinux booleanos. Para listar todos os booleanos relacionados ao samba, podemos executar:



$ sudo semanage boolean -l | grep samba samba_create_home_dirs (desligado) permite que o samba crie sirs home samba_domain_controller (desligado) permite samba para dominar o controlador samba_enable_home_dirs (off)) permitir samba a ativ Deixe o samba exportar todos os ro samba_export_all_rw (desligado, desativado) permitem que o samba exporte todos os rw samba_load_libgfapi (desativado) permitem que o samba carregue libgfapi samba_portmapper (off, off), permite samba a portmapper samba_run_unconfiness (off, off, off). Samba_share_fusefs (desligado) permite que o samba compartilhe o fusefs samba_share_nfs (desativado) permita que o samba compartilhe nfs sanlock_use_samba (desligado, fora) permite que o sanlock use samba tmprePeper_usea (desligado). Permitir uso para samba home dirs virt_use_samba (desativado) permite que Virt use o samba 

Na saída acima, a segunda coluna indica o valor atual do booleano, enquanto o terceiro o padrão (ambos estão desligados, neste caso). O booleano que queremos ativar, para permitir o compartilhamento de diretórios domésticos, é samba_enable_home_dirs. Podemos executar a operação usando o SetSeBool comando:

$ sudo setsebool samba_enable_home_dirs = 1

Conclusões

Neste tutorial, vimos como instalar o samba em um sistema RHEL 8 / CENTOS 8. Também vimos como compartilhar um diretório, permitindo acesso a hóspedes ou restringindo -o a usuários autenticados. Também vimos como configurar o firewall para que a participação seja acessível a partir de outras máquinas na rede.

Finalmente, vimos como executar as mudanças necessárias para ter uma configuração de Samba funcionando com o Selinux no modo de “aplicação”. Se você estiver interessado em Selinux, também pode ler nosso artigo sobre o assunto.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Mastering Bash Script Loops
  • Como fazer bota dupla kali linux e windows 10
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Como configurar o servidor samba e o cliente no Almalinux
  • Como configurar um servidor OpenVPN no Ubuntu 20.04
  • Lista de clientes FTP e instalação no Ubuntu 22.04 Linux…
  • Ubuntu 20.04 Guia