AD com Samba 4

12
Samba4 da instalação a administração

description

AD com Samba 4.

Transcript of AD com Samba 4

  • Samba4

    da instalao a administrao

  • Sumrioconsideraes iniciais.................................................................................................................................. 3configurao inicial do servidor................................................................................................................... 3

    Sistema de arquivos............................................................................................................................... 3hostnames, hosts, nsswitch.................................................................................................................... 3

    instalao de pre-requisitos......................................................................................................................... 4compilao do samba4................................................................................................................................ 4

    Compilao do samba4 rpida e integrada ao sistema...........................................................................4configurao inicial do samba4................................................................................................................... 4

    Criao do domnio (Provisionamento)...................................................................................................4arquivos de configurao........................................................................................................................ 5Testes iniciais.......................................................................................................................................... 7

    DNS................................................................................................................................................... 7mapeamento de usurios e grupos....................................................................................................7testar compartilhamentos.................................................................................................................. 7

    Administrao do AD Samba4..................................................................................................................... 7Recursos extras........................................................................................................................................... 7

    auditoria e lixeira.................................................................................................................................... 7verificao de status do servidor............................................................................................................ 8Backup e restore do AD Samba4........................................................................................................... 10

  • consideraes iniciaisO samba4 nesse ambiente foi instalado em um servidor com Debian 7.2, em sua ltima reviso e pacotes atualizados.Um adendo importante sobre o DNS, servio indispensvel ao samba4. Nos repositrios oficiais do Debian, o Bind no compatvel com zonas DLZ, fazendo no iniciar junto com o Samba4, quando integrado a ele.

    Outro o DNS interno do Samba4, que apesar de ser uma opo interessante para pequenos ambientes, no tem os mesmos recursos do BIND. Um recurso desses, de extrema importncia em termos de segurana, so o uso de dnssec para zonas, usando chaves criptograficas e integrao com o kerberos.Ainda nesse assunto, a atualizao de endereos atribuidos por DHCP pode ser feito pelo DNS do Samba4, porm sem segurana como no BIND

    configurao inicial do servidor

    Sistema de arquivosO sistema de arquivos deve suprir a capacidade de trabalhar com arquivos comnveis de permisses baseados em acls. Isso conseguido com ATTR e ACL no linux. necessrio que esses recursos estejam instalados no servidor, ou em ltimo caso, em um sistema de arquivos que no suporte o recurso, como o xfs, seja emulado pelo samba4No /etc/fstab deixe como abaixo.

    Device mountpoint filesystem options check/dev/sda1 / ext4 defaults 0 2/dev/sda2 /srv ext4 user_xattr,acl,defaults 0 0

    hostnames, hosts, nsswitchMesmo com o DNS funcional, o linux pode em alguns casos ter problemas de resoluo de nomes. Isso ocorre no somente com Linux, mas tambm com Windows, pois ele busca o DNS local antes de um servidor DNS. Ele fica no arquivo hosts.No arquivo /etc/hosts deixe como abaixoIPaddress FQDN hostname192.168.0.1 domainserver.domain.local domainserver192.168.0.2 memberdomain.domain.local memberdomain

    O nsswitch no Linux pode auxiliar em resolver problemas de resoluo de nomes e usado para mapear usurios e grupos em outras bases.Nele possvel determinar as bases de consulta de resoluo de nomes,

  • usurios e grupos, por exemplo.No arquivo /etc/nsswitch.conf deixe como abaixo.passwd:compat winbindgroup:compat winbindhosts files dns wins

    instalao de pre-requisitosUsando o Debian como base, temos os pre-requisitos que precisam ser instaladosbuildessentiallibacl1devlibattr1devlibblkiddevlibgnutlsdevlibreadlinedevpythondevpythondnspythongdbpkgconfiglibpoptdevlibldap2devdnsutilslibbsddevattrkrb5userdocbookxsllibcups2devacllibpamg0dev

    compilao do samba4Usei a ltima verso do samba4, a 4.1, que extingue as bibliotecas do swat, entre outros recursos, e o integrei ao sistema de arquivos do Linux. Em algumas literaturas isso no recomendvel, j que uma biblioteca do sistema ao ser atualizada pode sobrescrever uma do samba4.Adotei esse recurso, visto que nos testes essas atualizaes no causaram falhas no samba4.

    Compilao do samba4 rpida e integrada ao sistemaPara compilar so necessrios o sucesso em 3 fases, configurao do aplicativopara se integrar ao Linux, compilao das bibliotecas necessrias e por fim a instalao.Extraia o contedo do arquivo samba4-versao.tar.gz na pasta /usr/src, e execute:nicen20./configureprefix=/usrlocalstatedir=/varinfodir=/usr/share/infomandir=/usr/share/mansysconfdir=/etcenablefhs

    nicen20makej2&&nicen20makeinstalloniceirfazelocompilarcomomximodeprioridade

    configurao inicial do samba4Aps a instalao, os comandos do samba4 estaro disponveis no PATH dos usurios.

    Criao do domnio (Provisionamento)O samba4 possui um comando para a administrao do domnio, e provisionamento.Configurao de domnio com DNS interno, senha do administrador do domnio (administrator), com nvel funcional de domnio e floresta como 2008_R2, ltima suportada pelo samba4.Samba-tool domain provision --function-level=2008_R2 server-role=dc adminpass=senhacomplexa dns-backend=SAMBA_INTERNAL

  • --domain=domain --realm=domain.local --use-xattrs=yes --use-rfc2307Uma forma mais fcil, e intuitiva, usar o comando abaixo, para o mesmo resultadosamba-tool domain provision function-level=2008_R2 use-rfc2307 use-xattrs=yes --interactive

    arquivos de configuraoOs principais arquivos, logo aps o provisionamento so:/etc/krb5.conf/etc/samba/smb.conf

    O krb5.conf pode ser copiado da pasta /var/lib/samba/private/krb5.conf para /etc/krb5.conf. Entretanto, em nossos testes, o arquivo gerado pelo Debian, pelo dpkg no gera erros de autenticao, desde que esteja com domnio e servidores de autenticao devidamente configurados.

    O smb.conf gerado por padro pelo samba4, e o principal arquivo de configurao.Ele separado em sees, que em geral so:[global]seo de configuraes do samba4[netlogon]compartilhamento com as GPOs e scripts de logon[sysvol]compartilhamento padrao do domnio[compartilhamentos]cada compartilhamento entre colchete lido pelo samba4 e so visualizados pelos usurios[compartilhamentos_ocultos$]compartilhamentos ocultos, acessveis apenas pelo seu nome completo, incluindo o $Arquivo adotado em cliente/etc/samba/smb.conf#Globalparameters[global]comment=Serverdomainbindinterfacesonly=yesinterfaces=eth0,loworkgroup=domainrealm=domain.LOCALnetbiosname=domainSERVERserverrole=activedirectorydomaincontroller

  • dnsforwarder=192.168.0.1idmap_ldb:userfc2307=yesallowdnsupdates=nonsecuresocketoptions=TCP_NODELAYSO_RCVBUF=8192templateshell=/bin/sh#LOGlogfile=/var/log/samba/samba.logloglevel=3maxlogsize=1024

    [netlogon]path=/var/lib/samba/sysvol/domain.local/scriptsreadonly=No

    [sysvol]path=/var/lib/samba/sysvolreadonly=No

    [drivers$]path=/srv/driversreadonly=no

    [lixeira]path=/srv/lixeiraComment=Lixeirapblicareadonly=no[Restore]path=/RestoreComment=Restoredearquivosdebackupreadonly=no

    [Old]path=/srv/oldcomment=Compartilhamentoantigoreadonly=no

    [publico]path=/srv/publicocomment=CompartilhamentoPublicoreadonly=no

    /etc/krb5.conf

    [libdefaults]default_realm=DOMAIN.LOCALdns_lookup_realm=falsedns_lookup_kdc=true

    [realms]DOMAIN.LOCAL={kdc=domainserver.domain.local:88admin_server=domainserver.domain.local:749default_domain=domain.local}

  • [domain_realm].domain.local=DOMAIN.LOCALdomain.local=DOMAIN.LOCAL

    Testes iniciaisOs testes iniciais so baseados em testar resoluo de dns, mapeamento de usurios e grupos no domnio, e testar compartilhamentos

    DNSHost -t SRV _ldap._tcp.domain.localhost -t SRV _kerberos._udp.domain.localhost -t A domainserver.domain.localdig domain.local

    mapeamento de usurios e gruposGetent passwdgetent group

    testar compartilhamentosSmbclient -L localhost -U%smbclient //localhost/netlogon -Uadministrator -c 'ls'

    Administrao do AD Samba4A partir desse ponto, pode-se usar um windows XP Pro, windows 7 pro ou windows 8 para tal funo.

    Recursos extras

    auditoria e lixeiraA lixeira no remove os arquivos e sim os move para uma pasta lixeira, dentro do compartilhamento.A auditoria faz o acompanhamento do que feito em arquivos e pastas dentro dos compartilhamentos/etc/samba/smb.conf[compartilhamento]#auditoriaelixeiravfsobjects=recyclefull_auditrecycle:facility=LOCAL1

  • recycle:priority=NOTICErecycle:maxsize=0recycle:repository=/srv/lixeira/%S/%Urecycle:directory_mode=0750recycle:subdir_mode=0750recycle:keeptree=Yesrecycle:touch=Truerecycle:exclude=*.tmp,*.temp,*.log,*.ldb,*.o,*.obj,~*.*,*.bakrecycle:exclude_dir=tmp,temp,cacherecycle:noversions=.doc|.xls|.ppt|*.dclfull_audit:facility=LOCAL5full_audit:priority=NOTICEfull_audit:prefix=%S|%u|%Ifull_audit:success=renamermdirunlinkchownfull_audit:failure=nonePara gerar os logs, necessrio configurar o syslog, ou como usado aqui, o rsyslog. Adicione as linhas nos arquivos indicados abaixo:/etc/rsyslog.conflocal5.notice /var/log/samba/auditoria.log

    verificao de status do servidorUm script, disponibilizado pelo samba4, e que pode ser colocado num terminal permite o monitoramento em tempo real de todo o servidor samba4. Eu o personalizei para que refletisse informaes do domnio que desejava. Eu o coloquei em /usr/local/bin.#!/bin/bashsamba4_path="/usr"netstat=$(whichnetstat)lines=$(tputlines)columns=$(tputcols)

    #checkterminaldimensionstest$columnslt80o$lineslt24&&{echoe"Error:Can'trun$1.\nNeedatleast24linesand80columnsonyourterminal.Pleaseresizethewindow."echo"Pleasepressreturntocontinue"readexit1}

    #checkfornetstattest"x$netstat"=="x"&&{echo"Error:Can'trun$1.Missingnetstatonthissystem."echo"Pleasepressreturntocontinue"readexit1}

    get_socket_status(){ip=$1

  • test"$2"=="tcp"&&{prot="t"}||{prot="u"}port=$3

    $netstatlpn4$prot|grep"samba[]*$"|grep$ip|sed's/://'|awk'{print$5}'|grep$port>/dev/null2>&1test"$?"=="0"&&{printf"online"}||{printf"offline"}}

    get_status(){share_cons=$($samba4_path/bin/smbstatusb2>/dev/null|awk'{if(p==1){print$0};if($1~"^"){p=1}}'|wcl)

    echo"Systemtime:$(date+"%F%T%Z")"

    testz"$dnsips"&&return

    firstdnsip=$(echo$dnsips|awk'{print$1}')

    displaydnsips="$dnsips"test"$dnsips"="0.0.0.0"&&{displaydnsips="$dnsips(all)"}

    $samba4_path/bin/sambatooldomaininfo$firstdnsip2>/dev/nullecho"ServerIPs:$serverips"echo"DNSlistenson:$displaydnsips"echo"Smbconnections:$share_cons"echo""echo"Services"echo""echo"DNS(tcp):$(get_socket_status$firstdnsiptcp53)"echo"DNS(udp):$(get_socket_status$firstdnsipudp53)"echo"Kerberos5:$(get_socket_status$firstdnsipudp88)"echo"LDAP:$(get_socket_status$firstdnsipudp389)"echo"kpasswd:$(get_socket_status$firstdnsipudp464)"echo"SMB:$(get_socket_status$firstdnsipudp138)"echo"NETBIOSNS:$(get_socket_status$firstdnsipudp137)"}

    while[0];doforsin'|''/''''\';do#getsambasipserverips=$(ipaddr|awk'{if($1=="inet")printf"%s",$2}')dnsips=$($netstatnl4tp|grepsamba|awk'{print$4}'|grepe":53$"|awkF:'{printf"%s",$1}')status=$(get_status)

  • clear

    echo"Samba4ServerStatus$s"echo""echo"$status"

    if["x$dnsips"=="x"];thenechoe"\n\nWarning:Sambadoesnotlistenondnsport."sleep1fi

    sleep1donedone

    Backup e restore do AD Samba4O backup, assim como o sambastatus, so disponibilizados por um script feito pelo samba4. Tambm o personalizei, visto que sem paralisar o servio, percebiem alguns momentos problemas com restore do banco de dados do servio. Assim tambm como enviar e-mail e gravar em log o registro de backup realizado. Tambm est em /usr/local/bin#!/bin/sh

    FROMWHERE=/var/lib/sambaFROMWHERE2=/etc/sambaWHERE=/srv/backup_sambaif[n"$1"]&&["$1"="h"o"$1"="usage"];thenecho"samba_backup[provisiondir][destinationdir]"echo"Willbackupyourprovisionlocatedinprovisiondirtoarchivestoredindestinationdir"echo"Defaultprovisiondir:$FROMWHERE"echo"Defaultdestinationdir:$WHERE"exit0fi

    [n"$1"ad"$1"]&&FROMWHERE=$1[n"$2"ad"$2"]&&WHERE=$2#Parandoosamba4echo"Parandoosamba4..."/etc/init.d/samba4stopsleep1DIRS="privatesysvol"#NumberofdaystokeepthebackupDAYS=90WHEN=`date+%d%m%y`

    if[!d$WHERE];thenecho"Missingbackupdirectory$WHERE"exit1fi

    if[!d$FROMWHERE];then

  • echo"Missingorwrongprovisiondirectory$FROMWHERE"exit1fi

    cd$FROMWHEREtarcjf${WHERE}/smbconf_${WHEN}.tar.bz2${FROMWHERE2}/smb.conf>/dev/null2>&1if[$?ne0];thenecho"BackupdoSMB.confcomerro"fifordin$DIRS;dorelativedirname=`find.typedname"$d"prune`n=`echo$d|sed's/\//_/g'`if["$d"="private"];thenfind$relativedirnamename"*.ldb.bak"execrm{}\;forldbin`find$relativedirnamename"*.ldb"`;dotdbbackup$ldbif[$?ne0];thenecho"Errorwhilebackuping$ldb"exit1fidonetarcjf${WHERE}/${n}.${WHEN}.tar.bz2$relativedirnameexclude=*.ldb>/dev/null2>&1if[$?ne0];thenecho"Errorwhilearchiving${WHERE}/samba4_${n}.${WHEN}.tar.bz2">>/var/log/domain/backup_error.log;exit1fifind$relativedirnamename"*.ldb.bak"execrm{}\;elsetarcjf${WHERE}/${n}.${WHEN}.tar.bz2$relativedirname>/dev/null2>&1if[$?ne0];thenecho"Errorwhilearchiving${WHERE}/${n}.${WHEN}.tar.bz2">>/var/log/domain/backup_error.log;tail5/var/log/domain/sambabackup.log|/usr/bin/mutts"ErroBackupdoSamba4em`date+%d%m%Y`"[email protected]"BackupdeSamba4comsucesso`date+%c`">>/var/log/domain/sambabackup.logecho"`duh${WHERE}/*${WHEN}*|cutd"/"f1,4`">>/var/log/domain/sambabackup.logecho"">>/var/log/domain/sambabackup.logecho"iniciandoosamba4..."/etc/init.d/samba4startsleep1tail5/var/log/domain/sambabackup.log|/usr/bin/mutts"BackupdoSamba4em`date+%d%m%Y`"[email protected]"Relatorioenviadoporemail..."exit1fifidone

    find$WHEREname"samba4_*bz2"mtime$DAYSexecrm{}\;>/dev/null2>&1* os endereos de e-mails foram alterados aqui, e devem estar de acordo com

  • seu ambiente.

    consideraes iniciaisconfigurao inicial do servidorSistema de arquivoshostnames, hosts, nsswitch

    instalao de pre-requisitoscompilao do samba4Compilao do samba4 rpida e integrada ao sistema

    configurao inicial do samba4Criao do domnio (Provisionamento)arquivos de configuraoTestes iniciaisDNSmapeamento de usurios e grupostestar compartilhamentos

    Administrao do AD Samba4Recursos extrasauditoria e lixeiraverificao de status do servidorBackup e restore do AD Samba4