Samba: Instalando o Samba 4.16 no Rocky Linux 8, Oracle Linux 8, CentOS e demais derivados

Antes de tudo é bom frisar que, nesse momento que escreto esse artigo, samba 4.16 é a versão atual estável e é suportado somente em versões 8 do Oracle Linux e do Rocky Linux.

Informações do meu Servidor

  • Distro: Rocky Linux 8
  • Nome do servidor: rockyserver
  • Nome completo: rockyserver.lab.local
  • Domínio:  lab.local
  • Endereço ip: 192.168.0.46

Preparando para Instalação

Antes de instalarmos, verifique:

Hostname

#1 Confira o nome(hostname) do servidor na rede

[elder@localhost /]$ hostname
localhost.localhost

O nome do meu servidor está localhost.localhost e isso não é nada apropriado. Vamos alterar para rockyserver.

sudo hostnamectl set-hostname rockyserver

Aqui é importante sair(log off) e entrar(log on) novamente do terminal.

#2 Configure o o arquivo /etc/hosts para apontar o hostname rockyserver para nosso endereço ip 192.168.0.48

Irei editar /etc/hosts usando o vim

sudo vim /etc/hosts

Adicionei o seguinte linha em laranja:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.0.48	rockyserver.lab.local	rockyserver.lab rockyserver

Confirme se o nome completo(QFDN) aparece

[elder@localhost /]$ hostname -f
rockyserver.lab.local

Data e Horário

[elder@localhost /]$ date
qua jun  8 17:39:59 EDT 2022

Se estiver errada corrija com “date mês + dia + hora + minuto + ano”. Por exemplo, abaixo irei definir a data e horário para:  01/02/2021 12:41

[elder@empresa10 ~]$ sudo date 020112412021

 

Endereço IP fixo

As distros baseadas na Red Hat 8 usam o NetworkManager para gerenciar rede. Escolha um endereço IP para seu servidor, no meu caso será o 192.168.0.48

#1 Execute “sudo nmtui“. Escolha a interface

[elder@localhost /]$ sudo nmtui

#2 Escolha “Editar uma conexão”

Obs.: Veja que também podemos alterar o nome da máquina por aqui, assim como fizemos usando “hostnamectl set-hostname

                                                 ┌───────┤ NetworkManager TUI ├───────┐
                                                 │                                    │ 
                                                 Por favor selecione uma opção 
                                                 │                                    │ 
                                                 Editar uma conexão                 
                                                 │ Ativar uma conexão                 │ 
                                                 │ Definir nome de máquina do sistema │ 
                                                 │                                    │ 
                                                 │ Cancelar                           │ 
                                                 │                                    │ 
                                                 │                               <OK> │ 
                                                 │                                    │ 
                                                 └────────────────────────────────────┘ 
                                                                                        






#3 Escolha a interface de rede a ser editada. No meu caso é a enp0s3

      
                                                    │                             │ 
                                                    ┌─────────────┐ 
                                                     Ethernet  ↑  <Adicionar> │ 
                                                       enp0s3 
                                                     <Editar…>   │ 
                                                     
                                                     <Remover>   │ 
                                                     
                                                     
                                                     
                                                     
                                                 ┌──│  ──┐
                                                 │  │   

#4 Deixe a configuração semelhante a essa:

   ┌────────────────────────────┤ Editar conexão ├─────────────────────────────┐
                             │                                                                           │ 
                             Nome do perfil enp0s3__________________________________ 
                             Dispositivo enp0s3 (08:00:27:7F:DC:DF)______________ 
                               
                              ETHERNET                                                      <Exibir>  │ 
                               
                              CONFIGURAÇÃO IPv4    <Manual>                                 <Ocultar> │ 
                                         Endereços 192.168.0.46/24__________ <Remover>                │ 
                                                   <Adicionar…>                                       │ 
                                           Gateway 192.168.0.1______________ 
                                    Servidores DNS 192.168.0.46__________________ <Remover>                │ 
                                                   8.8.8.8__________________ <Remover>                │ 
                                                   <Adicionar…>                                       │ 
                              Domínios de pesquisa lab.local________________ <Remover>                │ 
                                                   <Adicionar…>                                       │ 
                                
                                        Roteamento (Nenhuma rota personalizada) <Editar…>             │ 
                              [ ] Nunca usar esta rede para rota padrão                               │ 
                              [ ] Ignorar rotas obtidas automaticamente                               │ 
                              [ ] Ignorar parâmetros DNS obtidos automaticamente                      │ 
                                
                              [ ] Exibir endereçamento IPv4 para esta conexão                         │ 
                              
                               
                              CONFIGURAÇÃO IPv6    <Automático>                             <Exibir>  │ 
                               
                             │ [X] Conectar automaticamente                                              │ 
                             │ [X] Disponibilizar à todos os usuários                                    │ 
                             │                                                                           │ 
                             │                                                           <Cancelar> <OK> 
                             │                                                                           │ 
                             │                                                                           │ 
                             │                                                                           │ 
                             │                                                                           │ 
                             └───────────────────────────────────────────────────────────────────────────┘ 
                                                                                                           

Clique em OK e depois em voltar para retornamos para a telinha preta do shell.

Atualize os Repositórios

 

Instale o repositório epel-release

sudo yum install epel-release -y

 

Execute yum update

sudo yum update   -y

 

Instalando Dependências

Bom, antes de iniciarmos a instalação das dependências, quero comentar algumas coisinhas que pode acontecer e fazer com que você não consiga prosseguir:

O samba depende de alguns pacotes. Você não precisa memorizar todos eles. É mais um copiar e colar. Porém é bom sabermos a função de cada pacote. Alguns  já são conhecidos, como, por exemplo, python, perl, dnsutils, acl etc. Segue abaixo a lista de pacotes que o samba depende. Essa lista  retirei do site oficial samba.org:

Vamos instalar esses pacotes que o samba depende. Podemos usar o dnf ou yum. Irei usar yum:

sudo yum install docbook-style-xsl gcc gdb gnutls-devel gpgme-devel jansson-devel 
      keyutils-libs-devel krb5-workstation libacl-devel libaio-devel 
      libarchive-devel libattr-devel libblkid-devel libtasn1 libtasn1-tools 
      libxml2-devel libxslt lmdb-devel openldap-devel pam-devel perl 
      perl-ExtUtils-MakeMaker perl-Parse-Yapp popt-devel python3-cryptography 
      python3-dns python3-gpg python36-devel readline-devel rpcgen systemd-devel 
      tar zlib-devel wget bison flex dbus-devel python3-markdown perl-JSON -y

No Oracle Linux 8 não foi encontrado os pacotes: gpgme-devel  libarchive-devel  lmdb-devel  rpcgen keyutils-libs-devel libarchive libxml2-devel perl-ExtUtils-MakeMaker python3-dns

Descobri que para o Oracle Linux:

Com o CodeReady é possível que os todos pacotes acima sejam até encontrados da forma como estão escritos. 

Então executamos novamente o “yum install…” com todos os pacotes acima assim:

sudo yum install docbook-style-xsl gcc gdb gnutls-devel gpgme jansson-devel 
      keyutils-libs-devel krb5-workstation libacl-devel libaio-devel 
      libarchive libattr-devel libblkid-devel libtasn1 libtasn1-tools 
      libxml2-devel libxslt lmdb openldap-devel pam-devel perl 
      perl-ExtUtils-MakeMaker perl-Parse-Yapp popt-devel python3-cryptography 
      python3-dns python3-gpg python36-devel readline-devel rpcgen systemd-devel 
      tar zlib-devel wget bison flex dbus-devel python3-markdown perl-JSON -y

 

 

Baixando o Samba

  1. Entre no diretório dentro do qual quer que o instalador do samba seja salvo, no meu caso, criarei a pasta Download dentro da home(~/) .Criando a pasta:
    [elder@rockyserver /]$  sudo mkdir -p /home/elder/download

    Troque o proprietário

    [elder@rockyserver /]$ sudo chown elder:elder -R  /home/elder/
    

    Acessando a pasta criada:

    [elder@rockyserver /]$  cd ~/download/
  2. Acesse o link do site oficial: https://www.samba.org/
  3. Clique no link get samba:
  4. clique com o direito do mouse e m “samba-latest.tar.gz” e em seguida em  “Copiar endereço do link“.

  5.  Cole o link na frente do programa wget para baixarmos o arquivo instalador(pacote):
    (Obs.:   Se estiver usando o putty, para colar o texto copiado, use o botão direito do mouse)

    [elder@rockyserver download]$ wget https://download.samba.org/pub/samba/samba-latest.tar.gz
  6. Pronto, o  download foi finalizado.
    [elder@rockyserver download]$ ls
    samba-latest.tar.gz

     

Instalando

  1. Descompacte o samba:
    [elder@rockyserver download]$ tar -xvf samba-latest.tar.gz
  2. Acesse a pasta:
    [elder@rockyserver download]$ cd samba-4.16.1/
  3. Execute o script “configure”:
    (Irá demorar um pouco  🙂   )

    [elder@rockyserver samba-4.7.5]$ sudo ./configure

    Observe se  ao final apareceu a mensagem de sucesso abaixo:

  4. Execute o comando make:
    (Irá demorar um pouco  🙂   se prestar atenção no print de sucesso abaixo, verá que o make demorou 45 minutos  🙂  )

    [elder@rockyserver samba-4.7.5]$ sudo make

    se tudo certo, receberá uma mensagem de sucesso:

  5. Execute o make install para realizarmos a instalação:

    [elder@rockyserver samba-4.7.5]$ sudo make install

    Novamente, observe se apareceu a mensagem de sucesso após o final da instalação:

 

Provisionando o Samba

Obs.: Estamos levando em consideração que você está dentro da pasta para todos os comandos a seguir: /usr/local/samba

provisionar significa alimentar o samba com as informações do seu domínio.

o Domínio se refere a um endereço, separados por pontos, que de forma  única identifique seu servidor. Exemplo:  www.meusite.com.br,  meuservidor.com.br. Como trabalharemos com informações apenas locais, iremos inventar um dóminio simples, vamos supor que nossa empresa se chama laboratório100 e que nosso domínio será lab.local.

A pasta de instalação do samba é: /usr/local/samba/    Porém, se desejar instalar o samba em outro diretório, no passo acima, use   “./configure  prefix=/caminho/onde/deseja/instalar

 

  1. Acesse a pasta de instalação do samba:
    [elder@rockyserver samba-4.16.1]$ cd  /usr/local/samba/
  2.  Use o script  samba-tool para provisionarmos:
    Atualização: Na linha abaixo acrescentei “use-rfc2307 interactive” por ser uma recomendação da página oficial do samba.

    [elder@rockyserver samba]$ sudo bin/samba-tool domain provision --use-rfc2307 --interactive
  3. Insira as informações de acordo com sua livre vontade, livre arbítrio 🙂  🙂  🙂     No meu caso: Realm [LOCALDOMAIN] = lab.local
    Domain [empresa100]: = lab
    Server Role (dc, member, standalone) [dc] =  dc
    DNS backend ….  = SAMBA_INTERNAL
    DNS forwarder IP address   =  8.8.8.8      Obs.: aqui pode colocar qualquer endereço dns que queira usar, eu usei o do google.
    DNS forwarder IP address   = Invente uma senha. Nada de 1234 ou password   🙂

 

Kerberos

  1. Remova o arquivo do kerberos que está dentro do /etc
    [elder@server01 samba]$ sudo rm -f /etc/krb5.conf
  2.  Copie para o /etc o arquivo krbr5.conf que o samba tem como modelo
[elder@server01 samba]$ sudo cp ./private/krb5.conf      /etc/

 

Iniciando e testando o SAMBA

Obs.: Estamos levando em consideração que você está dentro da pasta: /usr/local/samba

    1. Para iniciar o samba execute
      [elder@rockyserver samba]$ sudo ./sbin/samba
    2. Teste executnado “./bin/smbclient -L localhost -U% ” para ver se o samba está funcionando.No meu Oracle Linux ocorreu tudo bem. Mas no Rocky Linux recebi o erro abaixo:
      [elder@rockyserver samba]$ sudo ./bin/smbclient -L localhost -U%
      
      	Sharename       Type      Comment
      	---------       ----      -------
      tstream_smbXcli_np_destructor: cli_close failed on pipe srvsvc. Error was NT_STATUS_IO_TIMEOUT
      cli_rpc_pipe_open_noauth: rpc_pipe_bind for pipe srvsvc failed with error NT_STATUS_IO_TIMEOUT
      SMB1 disabled -- no workgroup available
      

      Depois de alguns segundos somente executei novamente o comando e ocorreu tudo bem:

      [elder@rockyserver samba]$ sudo ./bin/smbclient -L localhost -U%
      
      	Sharename       Type      Comment
      	---------       ----      -------
      	sysvol          Disk      
      	netlogon        Disk      
      	IPC$            IPC       IPC Service (Samba 4.16.1)
      SMB1 disabled -- no workgroup available
      
  1. Para encerrar/matar o samba:
    [elder@rockyserver samba]$ sudo killall samba

Obs.: Se o programa killall não estiver instalado, instale-o através do pacote psmisc, como em:
sudo yum install psmisc 

 

Compartilhando Pasta

Obs.: Estamos levando em consideração que você está dentro da pasta: /usr/local/samba

  1. Inicie o samba:
    [elder@rockyserver samba]$ sudo ./sbin/samba
  2. Crie a pasta que deseja compartilhar com outros computadores:
    [elder@rockyserver samba]$ mkdir /home/elder/compartilhados
  3. Dê as permissões à pasta criada. Daremos permissão total 🙂
    [elder@rockyserver samba]$ chmod -R 777 /home/elder/compartilhados/

    Edite o arquivo smb.conf usando seu editor predileto; utilizei o editor vim.Lembre-se, dentro do vim:
    tecle i para inserir texto
    tecle ESC para sair do modo de inserção
    digite :x! para salvar e sair

[elder@rockyserver samba]$ sudo vim ./etc/smb.conf

digite abaixo, as informações seguintes

[Compartilhados]
        path = /home/elder/compartilhados
        read only =  no
        public =  yes

Salve e saia do  vim teclando esc, depois digitando :x!

Em outro computador, acesse o servidor samba. No meu caso, utilizei o Ubuntu para acessar meu servidor samba com o ip 192.168.0.46. Como fiz testes instalando o samba no Oracle Linux por isso usei abaixo o ip 192.168.0.40:

 

usando windows 7 para acessar compartilhamento do meu servidor

 

 

Espero que tenham gostado, Até a próxima!!!

Deixe um comentário

O seu endereço de e-mail não será publicado.