Differences

This shows you the differences between two versions of the page.

Link to this comparison view

instalando_e_configurando_o_samba4_com_suporte_a_adminpack_no_debian_squeeze_pt_br [2017/09/05 12:18] (current)
Line 1: Line 1:
 +====== Instalando e Configurando o Samba4 com suporte a AdminPack no Debian Squeeze ​ ======
  
 +
 +E ai galera, aqui eu vou abordar a instalação e a configuração do Samba4 com suporte a Administração do domínio utilizando o AdminPack da Microsoft.
 +
 +Eu achei que ficou muito bom e limpa a instalação e configuração então vamos trabalhar :D
 +
 +Prepare o seu sistema com o seguinte script http://​wiki.douglasqsantos.com.br/​doku.php/​confinicialsqueeze_en para que não falte nenhum pacote ou configuração.
 +
 +
 +O que eu vou utilizar:
 +  * **Servidor Samba**
 +    * IP: 192.168.0.131/​24
 +    * **Nome:** debian
 +    * **Domínio:​** lab.lan
 +  * **Cliente XP**
 +    * **IP:** 192.168.0.4/​24
 +    * **Nome:** xp
 +    * **Domínio:​** lab.lan ​
 +
 +Agora vamos mandar atualizar os repositórios e vamos mandar fazer um upgrade do sistema
 +<sxh bash>
 +aptitude update && aptitude dist-upgrade -y
 +</​sxh>​
 +
 +Vamos ajustar algumas variaveis do ambiente
 +<sxh bash>
 +export DEBIAN_PRIORITY=critical ​
 +export DEBIAN_FRONTEND=noninteractive
 +</​sxh>​
 +
 +Agora vamos mandar instalar as suas dependências
 +<sxh bash>
 +aptitude install libldap-dev libpam-dev git gcc make wget libacl1-dev libblkid-dev gnutls-dev libreadline-dev python-dev libcups2-dev \
 + ​libcupscgi1-dev libcupsdriver1-dev libcupsimage2-dev libcupsmime1-dev libcupsppdc1-dev libcupsys2-dev libaio-dev libkrb5-dev acl-dev \
 +acl krb5-user libattr1-dev ​ libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev ​ python-dnspython gdb pkg-config \
 +libpopt-dev libldap2-dev dnsutils libbsd-dev attr docbook-xsl libcups2-dev python-gnupginterface python-pycurl python-software-properties \
 +quota unattended-upgrades -y
 +</​sxh>​
 +   
 +Agora vamos voltar as variáveis ao default
 +<sxh bash>
 +unset DEBIAN_PRIORITY
 +unset DEBIAN_FRONTEND
 +</​sxh>​
 +
 +Agora precisamos fazer um ajuste no sistema de arquivo aonde esta a partição /usr, precisamos inserir depois de defaults a palavra chave acl e user_xattr.
 +<sxh bash>
 +vim /etc/fstab
 +[...]
 +UUID=35689fda-e60e-4a5c-823b-3076e36a7586 /usr            ext3    defaults,​acl,​user_xattr ​       0       2
 +</​sxh>​
 +
 +Agora vamos mandar remontar a partição
 +<sxh bash>
 +mount -o remount /usr
 +</​sxh>​
 +
 +Agora vamos conferir se foi carregado o atributo de acl
 +<sxh bash>
 +mount | egrep acl
 +/dev/sda5 on /usr type ext3 (rw,​user_xattr,​acl)
 +</​sxh>​
 +
 +Em alguns casos o sistema não carrega a acl com isso tem que ser reiniciado o servidor para ele recarregar.
 +
 +Agora vamos testar o sistema de arquivos precisamos criar um arquivo e setar as flags de attr
 +
 +O primeiro teste de setattr da erro se for em sistema de arquivos ext3.
 +<sxh bash>
 +touch test.txt
 +setfattr -n user.test -v test test.txt
 +setfattr -n security.test -v test2 test.txt
 +</​sxh>​
 +
 +Agora testar o atributo user
 +<sxh bash>
 +getfattr -d test.txt
 +# file: test.txt
 +user.test="​test"​
 +</​sxh>​
 +
 +Agora vamos testar o atributo security
 +<sxh bash>
 +getfattr -n security.test -d test.txt
 +# file: test.txt
 +security.test="​test2"​
 +</​sxh>​
 +
 +Caso o sistema de arquivos não de suporte ao xattr podemos emular ele adicionando a seguinte linha no smb.conf
 +<sxh bash>
 + ​posix:​eadb = /​usr/​local/​samba/​eadb.tdb
 +</​sxh>​
 +
 +Agora vamos acessar o diretório que vai armazenar o samba
 +<sxh bash>
 +cd /usr/src
 +</​sxh>​
 +
 +Agora vamos obter os fontes
 +<sxh bash>
 +wget -c http://​ftp.samba.org/​pub/​samba/​stable/​samba-4.1.3.tar.gz
 +</​sxh>​
 +
 +Agora vamos desempacotar o samba
 +<sxh bash>
 +tar -xzvf samba-4.1.3.tar.gz
 +</​sxh>​
 +
 +Agora vamos acessar o diretório dos fontes
 +<sxh bash>
 +cd samba-4.1.3
 +</​sxh>​
 +
 +Agora vamos mandar configurar ele
 +<sxh bash>
 +./configure --enable-debug --enable-selftest
 +</​sxh>​
 +
 +Agora vamos mandar compilar ele
 +<sxh bash>
 +make
 +</​sxh>​
 +
 +Agora vamos mandar instalar ele
 +<sxh bash>
 +make install
 +</​sxh>​
 +
 +Agora vamos acertar a PATH do usuário root no caso dele estar utilizando o shell Bash
 +<sxh bash>
 +echo "​export PATH=/​usr/​local/​sbin:/​usr/​local/​bin:/​usr/​sbin:/​usr/​bin:/​sbin:/​bin:/​usr/​bin/​X11:/​usr/​local/​samba/​sbin:/​usr/​local/​samba/​bin"​ >> /​root/​.bashrc
 +</​sxh>​
 +
 +Agora precisamos importar a nova PATH
 +<sxh bash>
 +source /​root/​.bashrc
 +</​sxh>​
 +
 +Agora vamos acertar a PATH do usuário root no caso dele estar utilizando o shell zsh
 +<sxh bash>
 +echo "​export PATH=/​usr/​local/​sbin:/​usr/​local/​bin:/​usr/​sbin:/​usr/​bin:/​sbin:/​bin:/​usr/​bin/​X11:/​usr/​local/​samba/​sbin:/​usr/​local/​samba/​bin"​ >> /​root/​.zshrc
 +</​sxh>​
 +
 +Agora precisamos importar a nova PATH
 +<sxh bash>
 +source /​root/​.zshrc
 +</​sxh>​
 +
 +Agora vamos ajustar o /​etc/​resolv.conf
 +<sxh bash>
 +vim /​etc/​resolv.conf
 +domain lab.lan
 +search lab.lan
 +nameserver 192.168.0.1
 +</​sxh>​
 +
 +Agora vamos ajustar o /etc/hosts
 +<sxh bash>
 +vim /etc/hosts
 +127.0.0.1 localhost
 +127.0.1.1 debian.lab.lan ​ debian
 +192.168.0.131 debian.lab.lan ​ debian
 +[...]
 +</​sxh>​
 +
 +Agora vamos criar o nosso domínio
 +<sxh bash>
 +samba-tool domain provision
 +Realm [lab.lan]: #ENTER
 + ​Domain [LAB]: #ENTER
 + ​Server Role (dc, member, standalone) [dc]: #ENTER
 + DNS backend (SAMBA_INTERNAL,​ BIND9_FLATFILE,​ BIND9_DLZ, NONE) [SAMBA_INTERNAL]:​ #ENTER
 + DNS forwarder IP address (write '​none'​ to disable forwarding) [192.168.0.1]:​ #ENTER
 +Administrator password: #S3Nh4
 +Retype password: #S3Nh4
 +Looking up IPv4 addresses
 +Looking up IPv6 addresses
 +No IPv6 address will be assigned
 +Setting up share.ldb
 +Setting up secrets.ldb
 +Setting up the registry
 +Setting up the privileges database
 +Setting up idmap db
 +Setting up SAM db
 +Setting up sam.ldb partitions and settings
 +Setting up sam.ldb rootDSE
 +Pre-loading the Samba 4 and AD schema
 +Adding DomainDN: DC=confianceit,​DC=com,​DC=br
 +Adding configuration container
 +Setting up sam.ldb schema
 +Setting up sam.ldb configuration data
 +Setting up display specifiers
 +Modifying display specifiers
 +Adding users container
 +Modifying users container
 +Adding computers container
 +Modifying computers container
 +Setting up sam.ldb data
 +Setting up well known security principals
 +Setting up sam.ldb users and groups
 +Setting up self join
 +Adding DNS accounts
 +Creating CN=MicrosoftDNS,​CN=System,​DC=confianceit,​DC=com,​DC=br
 +Creating DomainDnsZones and ForestDnsZones partitions
 +Populating DomainDnsZones and ForestDnsZones partitions
 +Setting up sam.ldb rootDSE marking as synchronized
 +Fixing provision GUIDs
 +A Kerberos configuration suitable for Samba 4 has been generated at /​usr/​local/​samba/​private/​krb5.conf
 +Once the above files are installed, your Samba4 server will be ready to use
 +Server Role:           ​active directory domain controller
 +Hostname: ​             debian
 +NetBIOS Domain: ​       LAB
 +DNS Domain: ​           lab.lan
 +DOMAIN SID:            S-1-5-21-1179828200-3213206288-4271035701
 +</​sxh>​
 +
 +Explicando:
 +  * Aqui em Realm é o nosso domínio Kerberos lab.lan
 +  * Domain: É o domínio que o servidor vai usar LAB
 +  * Server Role qual a função do nosso servidor padrão é DC Domain Controller
 +  * DNS Backend é como que vai ser utilizando o DNS o padrão é SAMBA INTERNAL que vai utilizar o DNS interno do samba
 +  * DNS forwarder IP address o ip do DNS principal da rede
 +  * Administrator password é a senha do administrador do domínio
 +
 +Aqui o nosso domínio já está configurado.
 +
 +Agora vamos iniciar o samba
 +<sxh bash>
 +/​usr/​local/​samba/​sbin/​samba
 +</​sxh>​
 +
 +Agora vamos checar a versão do nosso smbclient
 +<sxh bash>
 +smbclient --version
 +Version 4.1.3
 +</​sxh>​
 +
 +Agora vamos listar os compartilhamentos
 +<sxh bash>
 +smbclient -L localhost -U%
 +Domain=[LAB] OS=[Unix] Server=[Samba 4.1.3]
 +
 +  Sharename ​      ​Type ​     Comment
 +  --------- ​      ​---- ​     -------
 +  netlogon ​       Disk      ​
 +  sysvol ​         Disk      ​
 +  IPC$            IPC       IPC Service (Samba 4.1.3)
 +Domain=[LAB] OS=[Unix] Server=[Samba 4.1.3]
 +
 +  Server ​              ​Comment
 +  --------- ​           -------
 +
 +  Workgroup ​           Master
 +  --------- ​           -------
 +</​sxh>​
 +
 +Agora vamos testar a autenticação nos compartilhamentos
 +<sxh bash>
 +smbclient //​localhost/​netlogon -UAdministrator%'​S3Nh4'​ -c '​ls'​
 +Domain=[LAB] OS=[Unix] Server=[Samba 4.1.3]
 +  .                                   ​D ​       0  Sun Feb 24 09:49:48 2013
 +  ..                                  D        0  Sun Feb 24 09:49:54 2013
 +
 +    60797 blocks of size 131072. 45509 blocks available
 +</​sxh>​
 +
 +Vamos verificar a configuração do samba
 +<sxh bash>
 +testparm
 +Load smb config files from /​usr/​local/​samba/​etc/​smb.conf
 +rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
 +Processing section "​[netlogon]"​
 +Processing section "​[sysvol]"​
 +Loaded services file OK.
 +Server role: ROLE_ACTIVE_DIRECTORY_DC
 +Press enter to see a dump of your service definitions
 +
 +[global]
 +  workgroup = LAB
 +  realm = lab.lan
 +  server role = active directory domain controller
 +  passdb backend = samba_dsdb
 +  dns forwarder = 192.168.0.1
 +  rpc_server:​tcpip = no
 +  rpc_daemon:​spoolssd = embedded
 +  rpc_server:​spoolss = embedded
 +  rpc_server:​winreg = embedded
 +  rpc_server:​ntsvcs = embedded
 +  rpc_server:​eventlog = embedded
 +  rpc_server:​srvsvc = embedded
 +  rpc_server:​svcctl = embedded
 +  rpc_server:​default = external
 +  idmap config * : backend = tdb
 +  create mask = 0777
 +  directory mask = 0777
 +  map archive = No
 +  map readonly = no
 +  store dos attributes = Yes
 +  vfs objects = dfs_samba4, acl_xattr
 +
 +[netlogon]
 +  path = /​usr/​local/​samba/​var/​locks/​sysvol/​lab.lan/​scripts
 +  read only = No
 +
 +[sysvol]
 +  path = /​usr/​local/​samba/​var/​locks/​sysvol
 +  read only = No
 +
 +</​sxh>​
 +
 +Agora vamos acertar o arquivo /​etc/​security/​limits.conf para não ficar mostrando erro no samba
 +<sxh bash>
 +vim /​etc/​security/​limits.conf
 +#colocar no final do arquivo
 +root hard nofile 131072
 +root soft nofile 65536
 +mioutente hard nofile 32768
 +mioutente soft nofile 16384
 +</​sxh>​
 +
 +Agora vamos listar os processos do samba
 +<sxh bash>
 +ps aux | egrep samba
 +root      1231  0.0  8.8 512872 44888 ?        Ss   ​09:​55 ​  0:00 /​usr/​local/​samba/​sbin/​samba
 +root      1233  0.0  6.3 512872 32084 ?        S    09:55   0:00 /​usr/​local/​samba/​sbin/​samba
 +root      1234  0.0  6.4 512872 32964 ?        S    09:55   0:00 /​usr/​local/​samba/​sbin/​samba
 +root      1235  0.0  6.6 512872 33732 ?        S    09:55   0:00 /​usr/​local/​samba/​sbin/​samba
 +root      1236  0.0  6.3 512872 32056 ?        S    09:55   0:00 /​usr/​local/​samba/​sbin/​samba
 +root      1237  0.0  6.5 512872 33440 ?        S    09:55   0:00 /​usr/​local/​samba/​sbin/​samba
 +root      1238  0.0  6.4 512872 32652 ?        S    09:55   0:00 /​usr/​local/​samba/​sbin/​samba
 +root      1239  0.0  6.7 512872 34188 ?        S    09:55   0:00 /​usr/​local/​samba/​sbin/​samba
 +root      1240  0.0  6.5 512872 33472 ?        S    09:55   0:00 /​usr/​local/​samba/​sbin/​samba
 +root      1241  0.0  6.6 516332 33776 ?        S    09:55   0:00 /​usr/​local/​samba/​sbin/​samba
 +root      1242  0.0  6.3 512872 32172 ?        S    09:55   0:00 /​usr/​local/​samba/​sbin/​samba
 +root      1243  0.0  7.9 512872 40388 ?        S    09:55   0:00 /​usr/​local/​samba/​sbin/​samba
 +root      1244  0.0  6.5 512872 33132 ?        S    09:55   0:00 /​usr/​local/​samba/​sbin/​samba
 +root      1245  0.0  9.0 470044 46176 ?        Ss   ​09:​55 ​  0:00 /​usr/​local/​samba/​sbin/​smbd -D --option=server role check:​inhibit=yes --foreground
 +root      1247  0.0  6.7 513292 34192 ?        S    09:55   0:00 /​usr/​local/​samba/​sbin/​samba
 +root      1250  0.0  6.3 470052 32320 ?        S    09:55   0:00 /​usr/​local/​samba/​sbin/​smbd -D --option=server role check:​inhibit=yes --foreground
 +root      1295  0.0  0.1   ​7792 ​  880 pts/0    S+   ​10:​03 ​  0:00 egrep samba
 +</​sxh>​
 +
 +Agora vamos ajustar o /​etc/​resolv.conf para ser utilizado o ip do nosso servidor samba
 +<sxh bash>
 +vim /​etc/​resolv.conf
 +domain lab.lan
 +search lab.lan
 +nameserver 192.168.0.131
 +</​sxh>​
 +
 +Agora vamos testar com o nslookup
 +<sxh bash>
 +nslookup lab.lan
 +Server: ​  ​192.168.0.131
 +Address: ​ 192.168.0.131#​53
 +
 +Name: lab.lan
 +Address: 192.168.0.131
 +</​sxh>​
 +
 +Agora vamos ajustar o arquivo do kerberos
 +
 +Vamos fazer um backup dele
 +<sxh bash>
 +cp /​etc/​krb5.conf /​etc/​krb5.conf.old
 +</​sxh>​
 +
 +Agora vamos remover o original
 +<sxh bash>
 +rm -rf /​etc/​krb5.conf
 +</​sxh>​
 +
 +Agora vamos criar um link do arquivo do kerberos utilizado pelo samba
 +<sxh bash>
 +ln -sf /​usr/​local/​samba/​share/​setup/​krb5.conf /​etc/​krb5.conf
 +</​sxh>​
 +
 +Agora vamos ajustar a sua configuração
 +<sxh bash>
 +vim /​etc/​krb5.conf
 +[libdefaults]
 +  default_realm = lab.lan
 +  dns_lookup_realm = false
 +  dns_lookup_kdc = true
 +</​sxh>​
 +
 +Agora vamos inicializar um ticket do kerberos para o usuário administrator
 +<sxh bash>
 +kinit administrator@lab.lan
 +Password for administrator@lab.lan: ​
 +Warning: Your password will expire in 41 days on Sun Apr  7 09:49:53 2013
 +</​sxh>​
 +
 +Agora vamos listar o nosso ticket
 +<sxh bash>
 +klist
 +Ticket cache: FILE:/​tmp/​krb5cc_0
 +Default principal: administrator@lab.lan
 +
 +Valid starting ​    ​Expires ​           Service principal
 +02/24/13 10:​43:​23 ​ 02/24/13 20:​43:​23 ​ krbtgt/​lab.lan@lab.lan
 +  renew until 02/25/13 10:43:20
 +</​sxh>​
 +
 +Agora vamos testar a nossa autenticação no samba utilizando o token do kerberos
 +<sxh bash>
 +smbclient -k //​debian.lab.lan/​netlogon -c '​ls'​
 +Domain=[LAB] OS=[Unix] Server=[Samba 4.1.3]
 +  .                                   ​D ​       0  Sun Feb 24 09:49:48 2013
 +  ..                                  D        0  Sun Feb 24 09:49:54 2013
 +
 +    60797 blocks of size 131072. 45503 blocks available
 +</​sxh>​
 +
 +Para utilizar o token do kerberos precisamos passar o nome do nosso dc no meu caso debian.lab.lan caso passe somente localhost vamos ter o seguinte erro.
 +<sxh bash>
 +smbclient -k //​localhost/​netlogon -c '​ls'​
 +ads_krb5_mk_req:​ smb_krb5_get_credentials failed for cifs/​localhost@lab.lan (Server not found in Kerberos database)
 +cli_session_setup_kerberos:​ spnego_gen_krb5_negTokenInit failed: Server not found in Kerberos database
 +session setup failed: NT_STATUS_UNSUCCESSFUL
 +</​sxh>​
 +
 +Este erro é comentado no seguinte link http://​lists.samba.org/​archive/​samba-technical/​2011-June/​078134.html
 +
 +Agora vamos configurar o servidor ntp
 +<sxh bash>
 +aptitude install ntp -y
 +</​sxh>​
 +
 +Agora vamos fazer um backup do nosso arquivo de configuração
 +<sxh bash>
 +cp /​etc/​ntp.conf /​etc/​ntp.conf.old
 +</​sxh>​
 +
 +Agora vamos deixar ele da seguinte forma
 +<sxh bash>
 +vim /​etc/​ntp.conf
 +server 127.127.1.0
 +fudge  127.127.1.0 stratum 10
 +server a.ntp.br iburst prefer
 +server 0.pool.ntp.org ​ iburst prefer
 +server 1.pool.ntp.org ​ iburst prefer
 +driftfile /​var/​lib/​ntp/​ntp.drift
 +logfile /​var/​log/​ntp
 +ntpsigndsocket /​usr/​local/​samba/​var/​lib/​ntp_signd/​
 +restrict default kod nomodify notrap nopeer mssntp
 +restrict 127.0.0.1
 +restrict a.ntp.br mask 255.255.255.255 nomodify notrap nopeer noquery
 +restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery
 +restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery
 +</​sxh>​
 +
 +Agora vamos reiniciar o serviço
 +<sxh bash>
 +/​etc/​init.d/​ntp restart
 +</​sxh>​
 +
 +
 +Agora vamos consultar o serviço ntp
 +<sxh bash>
 +ntpq -p 127.0.0.1
 +     ​remote ​          ​refid ​     st t when poll reach   ​delay ​  ​offset ​ jitter
 +==============================================================================
 + ​LOCAL(0) ​       .LOCL. ​         10 l   ​26 ​  ​64 ​   1    0.000    0.000   0.000
 ++a.ntp.br ​       200.160.7.186 ​   2 u   ​15 ​  ​64 ​   1   ​11.543 ​   4.363   0.306
 + ​0.pool.ntp.org ​ .INIT. ​         16 u    -   ​64 ​   0    0.000    0.000   0.000
 +*1.pool.ntp.org ​ 200.160.7.186 ​   2 u   ​13 ​  ​64 ​   1    6.470    5.146   0.305
 +</​sxh>​
 +
 +Agora vamos ajustar a permissão do ntp
 +<sxh bash>
 +chgrp ntp /​usr/​local/​samba/​var/​lib/​ntp_signd
 +</​sxh>​
 +
 +Agora vamos criar o script de inicialização do samba
 +<sxh bash>
 +vim /​etc/​init.d/​samba
 +#! /bin/sh
 +
 +### BEGIN INIT INFO
 +# Provides: ​         samba4
 +# 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.
 +#
 +
 +PIDDIR=/​usr/​local/​samba/​var/​run
 +SAMBAPID=$PIDDIR/​samba.pid
 +
 +# clear conflicting settings from the environment
 +unset TMPDIR
 +
 +# See if the daemon and the config file are there
 +test -x /​usr/​local/​samba/​sbin/​samba -a -r /​usr/​local/​samba/​etc/​smb.conf || exit 0
 +
 +. /​lib/​lsb/​init-functions
 +
 +case "​$1"​ in
 +  start)
 +    log_daemon_msg "​Starting Samba 4 daemon"​ "​samba"​
 +    # Make sure we have our PIDDIR, even if it's on a tmpfs
 +    install -o root -g root -m 755 -d $PIDDIR
 +
 +    if ! start-stop-daemon --start --quiet --oknodo --exec /​usr/​local/​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
 +</​sxh>​
 +
 +Vamos ajustar a permissão do script
 +<sxh bash>
 +chmod +x /​etc/​init.d/​samba
 +</​sxh>​
 +
 +Agora vamos colocar o script na inicialização do sistema
 +<sxh bash>
 +insserv -f -v samba
 +</​sxh>​
 +
 +Agora vamos criar um compartilhamento básico de impressão
 +
 +Agora vamos criar o diretório de spool de impressão e vamos ajustar as suas permissões
 +<sxh bash>
 +mkdir /​usr/​local/​samba/​var/​spool
 +chmod 1777 /​usr/​local/​samba/​var/​spool
 +</​sxh>​
 +
 +Agora vamos adicionar na configuração do samba o nosso compartilhamento de impressão
 +<sxh bash>
 +vim /​usr/​local/​samba/​etc/​smb.conf
 +# Global parameters
 +[global]
 +        workgroup = LAB
 +        realm = lab.lan
 +        netbios name = DEBIAN
 +        server role = active directory domain controller
 +        dns forwarder = 192.168.0.1
 +
 +[netlogon]
 +        path = /​usr/​local/​samba/​var/​locks/​sysvol/​lab.lan/​scripts
 +        read only = No
 +
 +[sysvol]
 +        path = /​usr/​local/​samba/​var/​locks/​sysvol
 +        read only = No
 +
 +[printers]
 +    comment = All Printers
 +    path = /​usr/​local/​samba/​var/​spool
 +    browseable = Yes
 +    read only = No
 +    printable = Yes
 +</​sxh>​
 +
 +Agora precisamos criar os diretório para armazenar os drivers das impressoras que o cliente windows sempre vai tentar procurar quando for instalar uma impressora
 +<sxh bash>
 +mkdir -p /​usr/​local/​samba/​var/​print/​{COLOR,​IA64,​W32ALPHA,​W32MIPS,​W32PPC,​W32X86,​WIN40,​x64}
 +</​sxh>​
 +
 +Agora vamos criar mais um compartilhamento no samba
 +<sxh bash>
 +vim /​usr/​local/​samba/​etc/​smb.conf
 +# Global parameters
 +[global]
 +        workgroup = LAB
 +        realm = lab.lan
 +        netbios name = DEBIAN
 +        server role = active directory domain controller
 +        dns forwarder = 192.168.0.1
 +
 +[netlogon]
 +        path = /​usr/​local/​samba/​var/​locks/​sysvol/​lab.lan/​scripts
 +        read only = No
 +
 +[sysvol]
 +        path = /​usr/​local/​samba/​var/​locks/​sysvol
 +        read only = No
 +
 +[printers]
 +    comment = All Printers
 +    path = /​usr/​local/​samba/​var/​spool
 +    browseable = Yes
 +    read only = No
 +    printable = Yes
 +
 +[print$]
 +    comment = Point and Print Printer Drivers
 +    path = /​usr/​local/​samba/​var/​print
 +    read only = No
 +</​sxh>​
 +
 +Agora vamos mandar recarregar o samba
 +<sxh bash>
 +killall -HUP samba
 +</​sxh>​
 +
 +Para adicionar uma impressora
 +  * Logue no computador cliente com o usuário Administrador do dominio
 +  * Click Iniciar -> Run digite '​\\debian.lab.lan\'​
 +  * Na lista de compartilhamentos,​ de um duplo click em '​Impressoras e Fax'
 +  * Click em Arquivo -> Propriedades do servidor
 +  * Na guia Drivers, Click em '​Adicionar...',​ depois '​Next'​
 +
 +
 +{{:​sambaserverdrivers.jpg?​500|}}
 +
 +  * No menu de opções, escolha o driver da sua impressora que deseja instalar, e selecione '​Next'​
 +
 +{{:​sambaserverchoosedriver.jpg?​500|}}
 +
 +Agora escolha os driver para a sua arquitetura. Caso não tenha o driver para a sua arquitetura vai ser solicitado inserir uma midia com os driver
 +
 +{{:​sambaserverchoosearch.jpg?​500|}}
 +
 +  * Agora feche a tela de drivers
 +  * Agora click com o botão direito em drivers de impressora e selecione propriedades
 +  * Na guia avançado, escolha o driver que já foi instalado
 +
 +Inserindo uma máquina XP no domínio Samba4
 +
 +Vamos chamar a configuração da interface
 +  * Menu iniciar/run digite ncpa.cpl
 +
 +Vamos deixar o endereço DNS para o ip do servidor samba
 +
 +Vai ter que ficar como abaixo.
 +
 +{{:​interface.png?​500|}}
 +
 +Agora vamos testar o dns
 +<sxh bash>
 +nslookup debian.lab.lan
 +*** Não é possível encontrar o nome de servidor para o endereço 192.168.0.131:​ No information
 +*** Os servidores padrão não estão disponíveis
 +Servidor: UnKnown
 +Address: 192.168.0.131
 +
 +Nome = debian.lab.lan
 +Address: 192.168.0.131
 +</​sxh>​
 +
 +
 +Agora precisamos deixar o nosso servidor com o horário e timezone igual ao do servidor samba
 +
 +Vamos chamar a configuração
 +  * Menu Iniciar/run aqui digite timedate.cpl
 +
 +{{:​dataehora.png?​500|}}
 +
 +Aqui ajute o seu horario
 +
 +Na guia fuso horário escolha o da sua localização
 +
 +{{:​fusohorario.png?​500|}}
 +
 +Agora vamos fazer o join do domínio
 +
 +    * Menu iniciar/run aqui digite sysdm.cpl
 +
 +
 +  * Aqui selecione a guia Nome do computador.
 +  * Agora selecione alterar
 +
 +Aqui em domínio vamos informar lab.lan
 +
 +{{:​join1xp.png?​500|}} ​
 +
 +Agora selecione ok
 +
 +Vamos ter uma tela como abaixo, informe o usuário administrator e a senha que foi definida para ele na criação do domínio samba.
 +
 +{{:​autenticacaojoin1.png?​500|}}
 +
 +Se tudo der certo vamos ter a seguinte mensagem
 +
 +{{:​boajoin.png?​500|}}
 +
 +Quando selecionarmos ok vamos ter a seguinte mensagem.
 +
 +{{:​alteracaoxp.png?​500|}}
 +
 +Agora é só selecionar ok e ok novamente e sim para reiniciar a máquina.
 +
 +Quando iniciar vamos ter a seguinte tela
 +
 +{{:​ctrldel.png?​500|}}
 +
 +Agora precisamos informar ctrl + alt + del
 +
 +{{:​loginxp.png?​500|}}
 +
 +Aqui em fazer logon em selecione LAB
 +
 +O usuário vai ser administrator e a senha dele.
 +
 +Instalando o Windows Remote Administration Tools no Windows
 +
 +Links para obtermos o Windows Remote Administration Tools:
 +  * http://​www.microsoft.com/​en-us/​download/​details.aspx?​id=39296 (Windows 8.1)
 +  * http://​www.microsoft.com/​download/​details.aspx?​id=28972 (Windows 8)
 +  * http://​www.microsoft.com/​downloads/​details.aspx?​FamilyId=9FF6E897-23CE-4A36-B7FC-D52065DE9960&​displaylang=en (Vista)
 +  * http://​www.microsoft.com/​downloads/​details.aspx?​FamilyID=7D2F6AD7-656B-4313-A005-4E344E43997D&​displaylang=en (Windows 7)
 +  * http://​www.microsoft.com/​en-us/​download/​details.aspx?​id=6315 (Windows XP/Server 2003)
 +
 +OBS: Na instalação do RSAT no Windows 8/7/Vista depois de instalado temos que ir em programas no painel de controle "​Habilitar recursos do Windows"​ precisamos habilitar as ferramentas administrativas.
 +
 +Depois de obter o pacote precisamos mandar rodar ele
 +
 +{{:​rsat1.png?​500|}}
 +
 +Instalando
 +
 +{{:​rsat2.png?​500|}}
 +
 +Instalação Concluída
 +
 +{{:​rsat4.png?​500|}}
 +
 +Ferramentas instaladas
 +
 +{{:​ferramentasadministrativas.png?​500|}}
 +
 +Agora vamos chamar o MMC Usuários e computadores do Active Directory em Ferramentas administrativas ou pelo run dsa.msc
 +
 +Vamos ter algo como abaixo.
 +
 +{{:​dsamsc1.png?​500|}}
 +
 +Aqui podemos fazer a criação de usuários, grupos, computadores criação de GPOS
 +
 +Exemplo de Objetos que podemos criar
 +
 +{{:​objetosad.png?​500|}}
 +
 +Exemplo da tela de criação de usuários
 +
 +{{:​criacaousuarioad.png?​500|}}
 +
 +Exemplo da tela de GPOs
 +
 +{{:​gpos.png?​500|}}
 +
 +Podemos também fazer a administração do DNS via MMC nas ferramentas administrativas chame o DNS
 +
 +{{:​conexaodns.png?​500|}}
 +
 +Exemplo da tela de configuração de DNS
 +
 +{{:​mmcdns.png?​500|}}
 +
 +
 +
 +Podemos também fazer a criação de usuários via comando
 +<sxh bash>
 +samba-tool user add nerso
 +New Password: ​
 +Retype Password: ​
 +User '​nerso'​ created successfully
 +</​sxh>​
 +
 +Agora vamos ver nos usuários do AD
 +
 +{{:​dsamscnerso.png?​500|}}
 +
 +Agora vamos ajustar o perfil móvel
 +
 +Vamos ajustar o arquivo de configuração do samba
 +<sxh bash>
 +vim /​usr/​local/​samba/​etc/​smb.conf
 +# Global parameters
 +[global]
 +        workgroup = LAB
 +        realm = lab.lan
 +        netbios name = DEBIAN
 +        server role = active directory domain controller
 +        dns forwarder = 192.168.0.1
 +
 +[netlogon]
 +        path = /​usr/​local/​samba/​var/​locks/​sysvol/​lab.lan/​scripts
 +        read only = No
 +
 +[sysvol]
 +        path = /​usr/​local/​samba/​var/​locks/​sysvol
 +        read only = No
 +
 +[printers]
 +    comment = All Printers
 +    path = /​usr/​local/​samba/​var/​spool
 +    browseable = Yes
 +    read only = No
 +    printable = Yes
 +
 +[print$]
 +    comment = Point and Print Printer Drivers
 +    path = /​usr/​local/​samba/​var/​print
 +    read only = No
 +
 +[profiles]
 +      path = /​usr/​local/​samba/​var/​profiles
 +      read only = no
 +</​sxh>​
 +
 +Vamos criar o diretório para armazenar os profiles
 +<sxh bash>
 +mkdir /​usr/​local/​samba/​var/​profiles
 +</​sxh>​
 +
 +Agora vamos acertar as permissões
 +<sxh bash>
 +chmod -R 1777 /​usr/​local/​samba/​var/​profiles
 +</​sxh>​
 +
 +Agora vamos mandar recarregar o samba
 +<sxh bash>
 +killall -HUP samba
 +</​sxh>​
 +
 +Agora vamos ajustar o perfil do usuário douglas.santos
 +
 +{{:​perfilmovel.png?​500|}}
 +
 +Agora vamos logar com o usuário.
 +
 +Quando efetuarmos logon no servidor vai ser criado uma pasta com o nome do nosso usuário em /​usr/​local/​samba/​var/​profiles
 +<sxh bash>
 +ls -l /​usr/​local/​samba/​var/​profiles
 +total 8
 +drwxrws---+ 2 3000019 staff 4096 Fev 24 13:19 douglas.santos/​
 +</​sxh>​
 +
 +Note que o nosso arquivo tem o sinal de + ou seja está habilitado acl, vamos listar elas
 +<sxh bash>
 +getfacl -p /​usr/​local/​samba/​var/​profiles/​douglas.santos
 +# file: /​usr/​local/​samba/​var/​profiles/​douglas.santos
 +# owner: 3000019
 +# group: staff
 +# flags: -s-
 +user::rwx
 +group::---
 +group:​staff:​---
 +group:​3000002:​rwx
 +group:​3000019:​rwx
 +mask::rwx
 +other::---
 +default:​user::​rwx
 +default:​user:​3000019:​rwx
 +default:​group::​---
 +default:​group:​staff:​---
 +default:​group:​3000002:​rwx
 +default:​group:​3000019:​rwx
 +default:​mask::​rwx
 +default:​other::​---
 +</​sxh>​
 +
 +Agora quando efetuarmos logoff os arquivos vão ser salvos dentro do diretório
 +<sxh bash>
 +ls -l /​usr/​local/​samba/​var/​profiles/​douglas.santos
 +total 624
 +drwxrws---+ 2 3000019 users   4096 Fev 23 13:44 Ambiente\ de\ impressão/
 +drwxrws---+ 2 3000019 users   4096 Fev 23 13:44 Ambiente\ de\ rede/
 +drwxrws---+ 2 3000019 users   4096 Fev 23 16:50 Cookies/
 +drwxrws---+ 4 3000019 users   4096 Fev 24 13:19 Dados\ de\ aplicativos/​
 +drwxrws---+ 2 3000019 users   4096 Fev 23 13:44 Desktop/
 +drwxrws---+ 3 3000019 users   4096 Fev 24 13:19 Favoritos/
 +drwxrws---+ 3 3000019 users   4096 Fev 23 13:44 Menu\ Iniciar/
 +drwxrws---+ 4 3000019 users   4096 Fev 24 13:19 Meus\ documentos/
 +drwxrws---+ 2 3000019 users   4096 Fev 23 16:48 Modelos/
 +-rwxrwx---+ 1 3000019 users 524288 Fev 24 13:22 NTUSER.DAT*
 +-rwxrwx---+ 1 3000019 users   1024 Fev 24 13:22 NTUSER.DAT.LOG*
 +-rwxrwx---+ 1 3000019 users    300 Fev 24 13:22 ntuser.ini*
 +drwxrws---+ 2 3000019 users   4096 Fev 24 13:19 Recent/
 +drwxrws---+ 2 3000019 users   4096 Fev 24 13:19 SendTo/
 +</​sxh>​
 +
 +<WRAP center round important 60%> Para mais configurações sobre PAM e clientes favor consultar o seguinte artigo: http://​wiki.douglasqsantos.com.br/​doku.php/​instalando_e_configurando_o_samba4_com_suporte_a_adminpack_no_debian_wheezy_pt_br </​WRAP>​
 +
 +
 +====== Referências ======
 +  - http://​wiki.samba.org/​index.php/​Samba4
 +  - http://​wiki.samba.org/​index.php/​Samba_AD_DC_HOWTO
 +  - http://​wiki.samba.org/​index.php/​Samba4/​HOWTO/​Join_a_domain_as_a_DC
 +  - http://​lists.samba.org/​archive/​samba-technical/​2011-June/​078134.html
 +  - http://​lists.samba.org/​
 +  - https://​wiki.samba.org/​index.php/​Samba_4/​OS_Requirements