Samba 4: mudanças entre as edições

De Wiki Projeto Root
Ir para navegação Ir para pesquisar
(Samba 4)
(Sem diferença)

Edição das 16h43min de 17 de setembro de 2017

Sobre

Olá! Visitante, reunimos aqui, informações sobre o software Samba. não sabe o que é o samba? Samba é um programa de computador, utilizado em sistemas operacionais do tipo Unix, que simula um servidor Windows, permitindo que seja feito gerenciamento e compartilhamento de arquivos em uma rede Microsoft.Na versão 3, o Samba não só provê arquivos e serviços de impressão para vários Clientes Windows, como pode também integrar-se com Windows Server Domain, tanto como Primary Domain Controller (PDC) ou como um Domain Member. Pode fazer parte também de um Active Directory Domain, mas apenas na Versão 4, o samba começou a ser implementado com mais aceitação em muitas empresas, pois com o samba 4, além de poder ingressar em domínios, também é possível criar e gerenciar GPO's, que na sua versão 3, não tinha suporte.


Vídeos

Parte 01 - https://youtu.be/pk8fEX6eko4

Parte 02 - https://youtu.be/ByasC-EiDts

Parte 03 - https://youtu.be/afzumOOHn1g

Parte 04 - https://youtu.be/YvWmufFixks

Tira dúvidas - https://youtu.be/fQK5aYx3PTM

Backup e Restore - https://youtu.be/UpPzzSCm4po

Compilando e Instalando Samba 4 - Debian

Dependências para Instalação do Samba 4 até o Debian 7.6:

  apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev 
  python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl 
  libcups2-dev libkrb5-dev libssl-dev python-software-properties acl quota
  
  *PARA DEBIAN 8: troque nas dependências  
  libgnutls-dev por libgnutls28-dev

Baixando o Fonte

Fonte exibido no vídeo: https://download.samba.org/pub/samba/stable/samba-4.1.16.tar.gz

Atualmente (08/08/2017): https://download.samba.org/pub/samba/stable/samba-4.6.7.tar.gz

Para fazer o Download direto no servidor na pasta do root, utilizar o wget

  cd /root
  wget https://download.samba.org/pub/samba/stable/samba-4.6.7.tar.gz


Extraindo o Fonte

  • Extrair na pasta root para poder compilar e instalar
   cd /root
   tar -zxvf samba-4.6.7.tar.gz
  • Entrar na pasta
  cd /root/samba-4.6.7
  • Preparando a compilação com ./configure
  ./configure
  • Compilando
  make
  • Instalando o pacote Compilado
  make install

Provisionando o Samba 4 Como PDC

Para que o samba 4 seja o controlador de domínio, é necessário utilizar o comando samba-tool com o parâmetro para provisionar.

  • Para configurações avançadas veja:
 /usr/local/samba/bin/samba-tool domain provision 

Preencher com os dados de domínio seguindo o exemplo abaixo:

  REALM: INTRANET.PROJETOROOT.COM.BR
  DOMAIN: INTRANET
  SERVER ROLE: DC
  DNS BACKEND:SAMBA_INTERNAL
  DNS FORWARDER: GATEWAY DE REDE (192.168.0.1)
  ADMIN PASSWORD: S3NH@_S3GuR@

Configurando o resolv.conf

Para que o samba possa resolver primeiramente os endereços IPs em Nomes, é necessário alterar em /etc/resolv.conf o conteúdo conforme o exemplo abaixo:

   nano /etc/resolv.conf
   domain INTRANET.PROJETOROOT.COM.BR
   nameserver 192.168.0.100 #(IP do SAMBA 4)

Realizando Testes

Para saber se o provisionamento funcionou é necessário executar os testes abaixo:

  • Verificar a versão do samba client
  /usr/local/samba/bin/smbclient --version
  • Verificar se o client está acessando localhost
  /usr/local/samba/bin/smbclient -L localhost -U%
  • Verificar se o smb.conf está correto
  /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator%'S3NH@_S3GuR@'
   
  • Verificar o protocolo ldap
  host -t SRV _ldap._tcp.intranet.projetoroot.com.br.
  
  • Verificar o Kerberos
  host -t SRV _kerberos._udp.intranet.projetoroot.com.br.
  • Verificar resolução de nomes no samba 4
  host -t A samba.intranet.projetoroot.com.br.

  • Verificar a conf do Kerberos
  nano /usr/local/samba/private/krb5.conf
   [libdefaults]
          default_realm = INTRANET.PROJETOROOT.COM.BR
          dns_lookup_realm = false
          dns_lookup_kdc = true
  • Verificar se o usuário Administrator está acessível com o comando Kinit
   kinit [email protected]


Script de inicialização

Necessário apenas para quem compilou o samba 4, em distros que existe o binário, não existe a necessidade de criar o script abaixo.

   #! /bin/bash
   
   ### BEGIN INIT INFO
   # Provides:          samba
   # Required-Start:    $network $local_fs $remote_fs
   # Required-Stop:     $network $local_fs $remote_fs
   # Default-Start:     2 3 4 5
   # Default-Stop:      0 1 6
   # Short-Description: start Samba daemons 
   ### END INIT INFO
   
   #
   # Start/stops the Samba daemon (samba).
   # Adapted from the Samba 3 packages.
   #
   
   SAMBAPID=/etc/samba/var/run/samba.pid
   
   # clear conflicting settings from the environment
   unset TMPDIR
   
   # See if the daemon and the config file are there
   test -x /etc/samba/sbin -a -r /etc/samba/etc/smb.conf || exit 0
   
   . /lib/lsb/init-functions
   
   case "$1" in
   	start)
   		log_daemon_msg "Starting Samba 4 daemon" "samba"
   
   		if ! start-stop-daemon --start --quiet --oknodo --exec /etc/samba/sbin/samba -- -D; then
   			log_end_msg 1
   			exit 1
   		fi
   
   		log_end_msg 0
   		;;
   	stop)
   		log_daemon_msg "Stopping Samba 4 daemon" "samba"
   
   		start-stop-daemon --stop --quiet --name samba $SAMBAPID
   		# Wait a little and remove stale PID file
   		sleep 1
   		if [ -f $SAMBAPID ] && ! ps h `cat $SAMBAPID` > /dev/null
   		then
   			# Stale PID file (samba was succesfully stopped),
   			# remove it (should be removed by samba itself IMHO.)
   			rm -f $SAMBAPID
   		fi
   
   		log_end_msg 0
   
   		;;
   	restart|force-reload)
   		$0 stop
   		sleep 1
   		$0 start
   		;;
   	*)
   		echo "Usage: /etc/init.d/samba {start|stop|restart|force-reload}"
   		exit 1
   		;;
   esac
   
   exit 0
   


Comandos do Samba 4

  • Obs1: para executar esses comandos sem ter digitar o caminho completo

Exemplo:

   samba-tool /opt/samba/bin/samba-tool

Exportar a variável path do local da instalação do Samba 4 isso pode ser feito da seguinte forma.

   export PATH=$PATH:"/opt/samba/bin:/opt/samba/sbin"


  • obs2: para melhorar a visualização na Wiki, removeu-se a marcação de superuser root (#), então para tal, é necessário executar os comandos abaixo sendo o super usuário, ou seja, o root.

Exemplo:

  sudo su -


Usuários

Os comandos abaixo, são executados no Shell Linux, quando é necessário fazer alterações em usuários e senhas de usuários.


Trocar senha do usuário

   samba-tool user setpassword usuario --newpassword=123NovaSenha123

Trocar senha do usuário e forca a troca no Próximo Login

  samba-tool user setpassword usuario --newpassword=1234MudarSenha123 --must-change-at-next-login

Deletar Usuário

  samba-tool user delete usuario

Deletar Usuário e Deletar a sua pasta Home

  samba-tool user delete usuario && rm -r /home/samba/usuario

Listar Todos os Usuários do samba

  samba-tool user list

Desabilitar o Usuário (com essa opção a conta não pode ser utilizada mais permanece no servidor)

  samba-tool user disable usuario

Habilitar Usuário

 samba-tool user enable usuario

Expiração de senha do usuário

  • A expiração de senha para todos os usuários do domínio e feita com outro comando, essa altera somente do usuário especificado. ( bom para ser usado em certas exceções como por exemplo aquele diretor que insiste em ser uma exceção a regra ). Onde 10, é o numero de dias em que a senha ira expirar.
  samba-tool user setexpiry usuario --days=10

Desabilitar a expiração de senha

  samba-tool user setexpiry usuario --noexpiry

Para alterar a complexidade de senha do Samba 4 utilize o comando samba-tool.

O comando para listar as regras de política de senha:

 samba-tool domain passwordsettings show

Já para desativar ou fazer alterações:

 samba-tool domain passwordsettings set --complexity=off --history-length=0 --min-pwd-length=0 --min-pwd-age=0

Desativar a verificação de complexidade de senha (por padrão a senha de qualquer usuário deve ter pelo menos três dos quatro ítens: Maiúsculas, Minusculas, Números, Simbolos):

 samba-tool domain passwordsettings set --complexity=off

Alterar o tamanho mínimo da senha, por exemplo para 6:

  samba-tool domain passwordsettings set --min-pwd-length=6

Alterar o prazo mínimo em que o usuário pode mudar a senha (usuário só vai poder mudar a senha após 4 dias da última mudança)

  samba-tool domain passwordsettings set --min-pwd-age=4

Mudar o tempo de vida máximo da senha do usuário (usuário terá que mudar a senha após 30 dias da última mudança)

  samba-tool domain passwordsettings set --max-pwd-age=30

Mudar o histórico de senhas que impede que o usuário utilize uma senha repetida (usuário não vai poder repetir nenhuma das últimas 5 senhas)

 samba-tool domain passwordsettings set --history-length=5

Para mudar a senha de um usuário do domínio dentro do windows xp basta logar com o usuário, pressionar ctrl+alt+del e clicar em alterar senha.


Grupos

Os comandos abaixo, são executados no Shell Linux, quando é necessário fazer alterações em grupos, assim podendo organizar a estrutura do AD, dentro de grupos, adicionado cada usuário em seu determinado grupo.

Criar um grupo

 samba-tool group add compras

Adicionar Vários Grupos de uma vez

 samba-tool group add "compras juridico"

Criar um grupo e adicionar um descrição ao grupo

 samba-tool group add compras --description="Grupo da compras"

Adicionar um membro a um grupo

 samba-tool group addmembers compras usuario

Adicionar um Grupo dentro de Outro Grupo (No samba 4 podemos adicionar um grupos dentro de outro isso e muito útil)

 samba-tool group addmembers compras juridico

Adicionar Vários Membros a um grupo de uma vez só

 samba-tool group addmembers compras "usuario1,usuario2"

Remover um grupo

 samba-tool group delete compras

Removendo Vários grupos de uma vez

 samba-tool group delete "compras juridico"

Remover um membro de um grupo

 samba-tool group removemembers compras usuario

Remover Membros de um grupo

 samba-tool group removemembers compras “usuario,usuario2″

Listar todos os grupos

 samba-tool group list

Listar Usuários pertencente a um grupo

 samba-tool group listmembers compras

Utilidades vista nos vídeos

Para provisionar o AD/DC utilizar o comando provision

  samba-tool domain provision --use-rfc2307 --use-xattrs=yes --interactive

Onde: --use- RFC2307: Este argumento acrescenta POSIX atributos (UID / GID) para o esquema AD . Isto será necessário se você pretende autenticar Linux , BSD, ou clientes OS X (incluindo a máquina local ) , além de Microsoft Windows .

--use- xattrs = yes : Esse argumento permite o uso de unix atributos estendidos (ACLs) para arquivos hospedados neste servidor. Se você não pretende ter compartilhamentos de arquivos no controlador de domínio , você pode omitir essa opção (mas isso não é recomendado ) . Você também deve garantir que quaisquer sistemas de arquivos que sediarão as partilhas do Samba são montados com suporte para ACLs.

--interactive : Este parâmetro força o script disposição para executar de forma interativa.


Montar Compartilhamento no FSTAB

  nano /etc/fstab
  /dev/sdXX     /mnt/samba/     ext4      user_xattr,acl,barrier=1      1 1


Adicionar no smb.conf

   Global
    vfs objects = acl_xattr
    map acl inherit = Yes
    store dos attributes = Yes

Para gerenciar o compartilhamento

  /usr/local/samba/bin/./net rpc rights grant 'INTRANET\Domain Admins' SeDiskOperatorPrivilege -U'INTRANET\administrator'

Para verificar se esta ok

  /usr/local/samba/bin/./net rpc rights list accounts -U'INTRANET\administrator'

Reload samba config

  smbcontrol all reload-config


Padrão de Definição de Segurança da Microsoft SDDL = Secutity Descriptor Definition Language


samba-tool ntacl set <ACL> /pasta_compartilhada

   samba-tool ntacl set'O:S-1-5-21-2159416005-224523052-165761012-1549G:DUD:(A;OICI;0x001f01ff;;;S-1-5-21-2159416005-224523052-
   165761012-1549)(A;OICI;0x001200a9;;;DU)(A;OICI;0x001200a9;;;WD)(A;;0x001200a9;;;DU)(A;;0x001f01ff;;;S-1-5-21-2159416005-
   224523052-165761012-1549)(A;OICIIO;0x001f01ff;;;CO)(A;OICIIO;0x001200a9;;;CG)' /pasta_compartilhada