Samba: Instalando(Compilando) o Samba 4.16 no Debian 11

Informações do meu Servidor

  • Distro: Debian 11
  • Nome do servidor: serverDebian11
  • Nome completo: serverDebian11.lab.local
  • Domínio:  lab.local
  • Endereço ip: 192.168.0.49

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 serverDebian11

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
192.168.0.149 serverDebian11.lab.local serverDebian11

Confirme se o nome completo(QFDN) aparece

elder@serverDebian11:~$ hostname -f
serverDebian11.lab.local

 

Data e Horário

elder@serverDebian11:~$ date
Wed Jun 15 16:51:53 -03 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@serverDebian11 ~]$ sudo date 020112412021

 

Endereço IP fixo

O Debian tem sua rede configurada através do arquivo /etc/network/interfaces.

Todo servidor deve possuir o ip fixado, para que não mude e deixe serviços em off.

O nosso endereço ip será 192.168.0.49. A interface de rede no meu caso é a enp0s3, conforme visto abaixo:

elder@serverDebian11:~$ ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128 
enp0s3           UP             192.168.0.49/24 fe80::a00:27ff:fea7:26ea/64

Poderá usar qualquer editor de texto para alterar o arquivo. O editor mais fácil é o nano:

 sudo nano /etc/network/interfaces

Deixaremos com o conteúdo a seguir:

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

allow-hotplug enp0s3
iface enp0s3 inet static
        address 192.168.0.49
        gateway 192.168.0.1

 

DNS

Aponte o dns para o nosso ip e o domínio lab.local

sudo nano /etc/resolv.conf

Deixe com esse conteúdo

domain lab.local
search lab.local
nameserver 192.168.0.49
nameserver 8.8.8.8

 

Instalando as Dependências

Atualize a lista dos repositórios

sudo apt update -y

#1 Instale os pacotes

Obs.: Sempre sigo a página wiki do samba, mas tive que trocar

  • python-crypto  por python3-cryptography
  • python-dbg  por    python3-dbg
  • python-dnspython  por  python3-dnspython
  • python-gpgme ou python3-gpgme  por python3-gpg
  • python-markdown  por python3-markdown

 

 

sudo apt-get install acl attr autoconf bind9utils bison build-essential 
  debhelper dnsutils docbook-xml docbook-xsl flex gdb libjansson-dev krb5-user 
  libacl1-dev libaio-dev libarchive-dev libattr1-dev libblkid-dev libbsd-dev 
  libcap-dev libcups2-dev libgnutls28-dev libgpgme-dev libjson-perl 
  libldap2-dev libncurses5-dev libpam0g-dev libparse-yapp-perl 
  libpopt-dev libreadline-dev nettle-dev perl perl-modules pkg-config 
  python-all-dev python3-cryptography python3-dbg python-dev 
  python3-dnspython python3-gpg python3-markdown 
  python3-dev xsltproc zlib1g-dev liblmdb-dev lmdb-utils dbus libdbus-1-dev wget  -y

Obs.: acima, também incluir na lista o pacote dbus e libdbus-1-devpara que não ocorra o erro ao executarmos o “make” e “make install” adiante:

vfs_snapper is enabled but prerequisite dbus-1 package not found. Use --with-shared-modules=!vfs_snapper to disable vfs_snapper support.
(complete log in /home/elder/downloads/samba-4.13.3/bin/config.log)

 

Após executar o comando acima, irão surgir algumas de telas do kerberos. Pode deixar sem preencher, ignorando todas elas. Apenas tecle Enter. Iremos configurar o kerberos mais adiante editando /etc/krb5.conf e não por aqui:



 

Instalando o Samba

 

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@serverDebian11 ~]$ mkdir ~/download

    Acessando a pasta criada:

    [elder@serverDebian11 ~]$ 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@serverDebian11 download]$ wget https://download.samba.org/pub/samba/samba-latest.tar.gz
  6. Pronto, o  download foi finalizado.
    [elder@serverDebian11 download]$ ls
    samba-latest.tar.gz

 

Instalando

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

    [[elder@serverDebian11 samba-4.16.2]$ 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@serverDebian11 samba-4.16.2]$ sudo make

    se tudo certo, receberá uma mensagem de sucesso:

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

    [elder@serverDebian11 samba-4.16.2]$ 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.

  1. Acesse a pasta de instalação do samba:
    [elder@serverDebian11 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@serverDebian11 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 [ lab.local] = lab.local
    Domain [lab]: = 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@serverDebian11 samba]$ sudo rm -f /etc/krb5.conf
  2.  Copie para o /etc o arquivo krbr5.conf que o samba tem como modelo
[elder@serverDebian11 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@serverDebian11 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@serverDebian11 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

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

[elder@serverDebian11 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

#4 Para encerrar/matar o samba:

[elder@serverDebian11 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@serverDebian11 samba]$ sudo ./sbin/samba
  2. Crie a pasta que deseja compartilhar com outros computadores:
    [elder@serverDebian11 samba]$ mkdir /home/elder/compartilhados
  3. Dê as permissões à pasta criada. Daremos permissão total 🙂
    [elder@serverDebian11 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@serverDebian11 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

Deixe um comentário

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