Archive for junho 2015

Usaremos nesse cenário a distribuição Debian 8.1 por possuir life cycle alto e conter todos os pacotes necessários para tal.

Baixe e instale a o Debian 8.1 preferencialmente usando somente o necessário, não precisaremos da interface gráfica para administrar o sistema. Pro samba funcionar redondo precisaremos configurar um servidor de DNS, e um servidor de DHCP. Uma coisa que notei nos meus testes era que se o servidor estiver apontando para um gateway inválido, não era possível autenticar e consequentemente ingressar nenhuma máquina no domínio, portanto meus ilustres, atenção a isso!

Primeiro passo é configurar a rede, usarei o ip 192.168.0.10 para o servidor e 192.168.0.1 para o gateway.

# vi /etc/network/interfaces

auto eth0
iface eth0 inet static
   address 192.168.0.10
   netmask 255.255.255.0
   gateway 192.168.0.1
   dns-nameserver 192.168.0.1
   dns-search youare.not.br

# vi /etc/resolv.conf

domain youare.not.br
search youare.not.br
nameserver 192.168.0.10
nameserver 4.2.2.2

# vi /etc/hosts

Adicionar linha referente ao servidor.

192.168.0.10   servidor.youare.not.br   servidor

Reinicie a rede.

# systemctl stop networking
# systemctl start networking

Feito isso iremos configurar o suporte a ACL (parâmetros user_xattr, acl e barrier) no filesystem onde o as pastas do SAMBA serão compartilhadas. No meu caso o /, mas poderia ser por ex. ser /home caso ela estivesse numa partição a parte.

# vi /etc/fstab

UUID=9244417b-9e61-46f2-adc4-a1712bf930bf /   ext4   userxattr,acl,barrier=1,errors=remount-ro   0   1

Vamos então remontar a partição.

# mount -o remount,rw /

Nesse momento vamos instalar os pacotes necessários.

# apt-get install isc-dhcp-server attr acl krb5-user ntp samba smbclient libnss-winbind bind9

O Kerberos irá solicitar o ” Reino por omissão do Kerberos ” nesse campo colocaremos no nosso nome de domínio, no meu caso YOUARE.NOT.BR , o restante das perguntas basta deixar em branco.

Agora iremos configurar o DHCP.

# vi /etc/dhcp/dhcpd.conf

log-facility local7;

shared-network youare {
subnet 192.168.0.0 netmask 255.255.255.0 {

default-lease-time 600;
max-lease-time 7200;

option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
option domain-name-servers 192.168.0.10;
option netbios-name-servers 192.168.0.10;
option domain-name “youare.not.br”;

range 192.168.0.11 192.168.0.254;
   }
}

Ajustaremos alguns parâmetros para que a integração funcione.

# vi /etc/nsswitch.conf

passwd: compat winbind
group: compat winbind
shadow: compat winbind

# vi /etc/ntp.conf

driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
server 3.debian.pool.ntp.org iburst

ntpsigndsocket /var/lib/samba/ntp_signd/

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

restrict 127.0.0.1
restrict ::1

Agora vamos reiniciar os serviços que já configuramos. E parar o SAMBA para que possamos configurar ele.

# systemctl stop samba

# systemctl restart ntp isc-dhcp-server

Finalmente vamos mexer no SAMBA, faça uma cópia do arquivo de configuração ou simplesmente apague-o.

# mv /etc/samba/smb.conf /etc/samba/smb.conf.orig

Agora vamos configurar o SAMBA.

# samba-tool domain provision –option=”interfaces=lo eth0″ –option=”bind interfaces only=yes” –use-rfc2307 –realm=YOUARE.NOT.BR –domain=YOUARE –server-role=dc –dns-backend=BIND9_DLZ –adminpass=’SenhaSecreta77′

Mais alguns ajustes para que tudo funcione corretamente

# vi /etc/bind/named.conf

Adicione a linha no final do arquivo.

include “/var/lib/samba/private/named.conf”;

# vi /etc/bind/named.conf.options

Adicione a linha abaixo de dnssec-validation auto.

tkey-gssapi-keytab “/var/lib/samba/private/dns.keytab”;

# vi /var/lib/samba/private/named.conf

Comente a linha referente ao bind 9.8 e descomente a linha referente ao bind 9.

database “dlopen /usr/lib/i386-linux-gnu/samba/bind9/dlz_bind9_9.so”;

Copiamos o arquivo de configuração gerado pelo samba para o diretório de sistema.

# cp /var/lib/samba/private/krb5.conf /etc/

Devemos agora iniciar o samba para que ele prepare o arquivo dns.keytab para o bind, reiniciar o bind para que ele use o arquivo e em seguida reiniciar o samba para que ele passe a usar o bind como DNS.

# systemctl start samba-ad-dc
# systemctl restart bind9
# systemctl restart samba-ad-dc

Hora de setar para que a senha de administrador nuca expire.

# samba-tool user setexpiry administrator –noexpiry

Crie as pastas que deseje usar no samba.

# mkdir -p /home/samba/home /home/samba/profiles /home/samba/trash

E configure as no arquivo de configuração do SAMBA.

# vi /etc/samba/smb.conf

[global]
workgroup = YOUARE
realm = YOUARE.NOT.BR
netbios name = SERVIDOR
interfaces = lo, eth0
bind interfaces only = Yes
server role = active directory domain controller
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate
idmap_ldb:use rfc2307 = yes

## Configura Lixeira para o Samba4
vfs objects = recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:repository = /home/samba/trash/%U
recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak
recycle:exclude_dir = tmp, cache, profiles 

## Desabilita o compartilhamento de impressoras
printcap name = /dev/null
load printers = no
disable spoolss = yes
printing = bsd

[netlogon]
path = /var/lib/samba/sysvol/youare.not.br/scripts
read only = No
browseable = No

[sysvol]
path = /var/lib/samba/sysvol
read only = No
browseable = No

[profiles]
path = /home/samba/profiles
read only = No
browseable = No

[home]
path = /home/samba/home
read only = No

[Lixeira]
comment = Lixeira
path = /home/samba/trash/%U
read only = No
directory mask = 0777

Aplique as novas configurações.

# smbcontrol all reload-config

Teste a autenticação, esse comando não deve retornar nada.

# kinit administrator@YOUARE.NOT.BR

Teste o DNS do samba.

# host -t SRV _ldap._tcp.youare.not.br
# host -t SRV _kerberos._udp.youare.not.br
# host -t A servidor.youare.not.br

… e conectividade com o samba.

# smbclient -k //servidor.youare.not.br/netlogon -c ‘ls’

Se tudo deu certo seu servidor esta pronto pro uso, mas antes vamos habilitar os serviços na inicialização.

# systemctl disable smbd nmbd samba

# systemctl enable isc-dhcp-server bind9 ntp samba-ad-dc winbind

Para administrar o servidor use o RSAT da Microsoft.

RSAT p/ Windows 7 SP1 i386
RSAT p/ Windows 7 SP1 x64

Alguns comandos úteis para administração do SAMBA.

Desativar a verificação de complexidade de senha.

# samba-tool domain passwordsettings set –complexity=off

Mudar o tamanho mínimo da senha.

# samba-tool domain passwordsettings set –min-pwd-length=5

Mudar o prazo mínimo em que o usuário pode mudar a senha.

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

Mudar o tempo de vida máximo da senha do usuário.

# 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

Outra coisa que muita gente busca é saber como exportar os usuários e grupos do antigo controlador de domínios windows para o novo servidor SAMBA, nesse caso eu recomendo o uso da ferramenta LDIFDE.

Abra o cmd usando login administrativo e digite:


ldifde -f contas.ldf -s servidor -d “dc=youare,dc=not,dc=br” -p subtree -r “(&(objectCategory=person)(objectClass=User)(givenname=*))” -l “cn,givenName,objectclass,samAccountName”

 

Com uma máquina no domínio SAMBA logado com administrator e com o RSAT instalado abra um cmd e execute a importação.

 

ldifde -i -f contas.ldf -s servidor