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
- 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/
- Acesse o link do site oficial: https://www.samba.org/
- Clique no link get samba:
- clique com o direito do mouse e m “samba-latest.tar.gz” e em seguida em “Copiar endereço do link“.
- 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
- Pronto, o download foi finalizado.
[elder@serverDebian11 download]$ ls samba-latest.tar.gz
Instalando
- Descompacte o samba:
[elder@serverDebian11 download]$ tar -xvf samba-latest.tar.gz
- Acesse a pasta:
[elder@serverDebian11 download]$ cd samba-4.16.2/
- 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:
- 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:
- 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.
- Acesse a pasta de instalação do samba:
[elder@serverDebian11 samba-4.16.1]$ cd /usr/local/samba/
- 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
- 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
- Remova o arquivo do kerberos que está dentro do /etc
[elder@serverDebian11 samba]$ sudo rm -f /etc/krb5.conf
- 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
- Inicie o samba:
[elder@serverDebian11 samba]$ sudo ./sbin/samba
- Crie a pasta que deseja compartilhar com outros computadores:
[elder@serverDebian11 samba]$ mkdir /home/elder/compartilhados
- 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