Samba 4 como controlador de domínio
Após muitas pesquisas na Internet e muitas frustrações com artigos que prometem transformar o Samba 4 como controlador de domínio, resolvi criar este artigo. Percebi que muitos usuários do Viva o Linux buscavam também soluções e tutoriais capazes de satisfazer esta necessidade. Mesmo este sendo o meu primeiro artigo, espero que ajude a todos que buscam um tutorial completo sobre o assunto.
Serviços do Samba 4
Neste artigo estarei passando os passos para compilar o Samba 4 como um PDC no Debian.
O Samba 4 está em sua versão estável, o que me fez criar este tutorial de instalação e configuração como controlador de domínio. Utilizei a última versão estável que já está disponível para download.
O Samba 4 implementa um ambiente igual ao Active Directory da Microsoft, então, qualquer administrador Windows pode, facilmente, administrar o domínio. Neste caso envolvendo 5 serviços, como o próprio AD:
Neste artigo, usei como referência os posts dos sites:
Porém alguns passos importantes não constam nestes links, então eu fiz uma adaptação do servidor BIND e do DHCP, que será melhor explicado.
2. Próximo passo, descompactar o arquivo. Deixei-o salvo em: /usr/src
# cd /usr/src
# tar xzf samba-4.0.0.tar.gz
3. Em seguida, baixar as dependências:
# 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 acl attr bind9 krb5-kdc krb5-user vim mc isc-dhcp-comum isc-dhcp-server
Alguns pacotes adicionais foram colocados, como Vim, o MC e servidor DHCP. Caso não precise de um servidor deste tipo, não há necessidade de instalá-lo.
4. Configurar o sistema de arquivos para suportar acl e attr:
4.1. Configurar no filesystem: /etc/fstab
# vi /etc/fstab
Ex.:
Como mostrado, adicionar depois do remount-ro: acl,user_xattr
Caso não seja efetuada esta configuração, será exibida uma tela de erro na compilação.
4.2. Montar o sistema novamente:
# mount -o remount,rw /
4.3. Digitar novamente mount e a saída será:
# mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro,acl,user_xattr)
5. Rodar os comandos para compilação:
# ./configure
Depois o make:
# make
E, por fim, fazer a instalação com o:
# make install
O Samba 4 está em sua versão estável, o que me fez criar este tutorial de instalação e configuração como controlador de domínio. Utilizei a última versão estável que já está disponível para download.
O Samba 4 implementa um ambiente igual ao Active Directory da Microsoft, então, qualquer administrador Windows pode, facilmente, administrar o domínio. Neste caso envolvendo 5 serviços, como o próprio AD:
- LDAP, no GNU/Linux com OpenLDAP;
- CIFS Samba;
- Kerberos, no GNU/Linux KDC;
- DNS, no GNU/Linux com BIND 9;
- DHCP no GNU/Linux com isc-dhcp-server.
Neste artigo, usei como referência os posts dos sites:
Porém alguns passos importantes não constam nestes links, então eu fiz uma adaptação do servidor BIND e do DHCP, que será melhor explicado.
Instalando o Samba
1. Baixar o Samba. Isto pode ser feito através do site:2. Próximo passo, descompactar o arquivo. Deixei-o salvo em: /usr/src
# cd /usr/src
# tar xzf samba-4.0.0.tar.gz
3. Em seguida, baixar as dependências:
# 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 acl attr bind9 krb5-kdc krb5-user vim mc isc-dhcp-comum isc-dhcp-server
Alguns pacotes adicionais foram colocados, como Vim, o MC e servidor DHCP. Caso não precise de um servidor deste tipo, não há necessidade de instalá-lo.
4. Configurar o sistema de arquivos para suportar acl e attr:
4.1. Configurar no filesystem: /etc/fstab
# vi /etc/fstab
Ex.:
UUID=70a184fa-01d9-40ee-b094-7c79a4a5c30e / ext4 errors=remount-ro,acl,user_xattr 0 1
Como mostrado, adicionar depois do remount-ro: acl,user_xattr
Caso não seja efetuada esta configuração, será exibida uma tela de erro na compilação.
4.2. Montar o sistema novamente:
# mount -o remount,rw /
4.3. Digitar novamente mount e a saída será:
# mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro,acl,user_xattr)
5. Rodar os comandos para compilação:
# ./configure
Depois o make:
# make
E, por fim, fazer a instalação com o:
# make install
Acrescentando algumas dicas:
1-É possível utilizar o servidor DNS que acompanha o samba4. Ele é instalado automáticamente.
2-Para cadastrar um usuário no domínio você terá que respeitar as regras de validação de senha do servidor. Para mudar essas regras utilize os seguintes comandos:
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):
/usr/local/samba/bin/samba-tool domain passwordsettings set complexity=off
Mudar o tamanho mínimo da senha (definindo como 4):
/usr/local/samba/bin/samba-tool domain passwordsettings set min-pwd-length=4
Mudar 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)
/usr/local/samba/bin/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)
/usr/local/samba/bin/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)
/usr/local/samba/bin/samba-tool domain passwordsettings set history-length=5
3 - 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.
4 - Tem esse "como fazer" no site oficial do samba que também é bem completo:
http://wiki.samba.org/index.php/Samba4/HOWTO
Estou com o samba4 em um debian x64 a quase um mês e está funcionando perfeitamente. Ele funciona também como controle de acesso a internet (squid) integrado ao diretório (inclusive buscando os grupos) e também o acesso aos arquivos compartilhados. Funciona também como servidor de autenticação do nosso sistema interno.