Samba 4 (Active Directory) no Debian/Ubuntu Server
Tutorial para instalação do Samba 4 que, com sua última versão, possibilitou a criação de um domínio Active Directory, tornando a vida dos administradores de redes mais simples e mostrando que o GNU/Linux também tem a robustez do seu eterno rival.
Introdução / Preparação / Dependências
Primeiramente, gostaria de agradecer aos leitores desse tão renomado site de software livre e agradecer também à equipe de desenvolvimento do Samba que, com sua última versão, possibilitou a criação de um domínio Active Directory, tornando a vida dos administradores de redes mais simples e mostrando que o GNU/Linux também tem a robustez do seu eterno rival.
Todos sabemos e conhecemos o sacrifício que é configurar o Samba com o OpenLDAP, que depois de configurado, fica uma beleza, mas ainda assim, não é tão bom quanto o Active Directory da MS. Porém, com esse novo modo de pensar do time Samba.org, temos em primeira mão o Samba 4, ou melhor dizendo, o nosso Active Directory open source.
Nesse artigo, vou mostrar como instalar e configurar o Samba 4, mostrando um pouco do meu conhecimento sobre a ferramenta e direi também algumas melhores práticas, porém, ressalto que o foco é a instalação do Samba 4. Assim, este artigo deverá servir como um guia de instalação.
# 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
Caso esteja utilizando outra distribuição, favor verificar a instalação das dependências no site oficial do Samba.org e procurar sobre a sua distribuição:
Após feito a instalação das dependências, vamos fazer a configuração do sistema de arquivos para receber o Samba 4.
Nas dependências, instalamos o "attr", que dará suporte a recursos avançadas do Samba 4. Também devemos ter um sistema de arquivos que suporte ACL, pois ela nos dará mais possibilidades de configuração de permissões especiais do Active Directory. E a opção de "barrier=1", que nos dá a segurança para que as transações do "tdb" e "ldb" sejam realizadas de forma segura, prevenindo assim, um erro por falha de energia que pode corromper do banco de dados do AD.
Vamos então ao fstab (Obs.: muito cuidado ao mexer no fstab, pois você poderá deixar o sistema não inicializável).
* Outra dica: o ideal é que o sistema de arquivos seja ext3, ext4 ou superior, no meu caso, estou utilizando o ext4.
sudo vim /etc/fstab
Localize a linha que monta o seu sistema de arquivos /home e modifique-a para a seguinte forma:
Nesse caso eu adicionei apenas "user_xattr,acl,barrier=1", como expliquei anteriormente, agora vamos remontar e testar se as modificações estão OK?
# mount -o remount,rw /home
Testes no sistema de arquivos:
# touch test.txt
# setfattr -n user.test -v test test.txt
# setfattr -n security.test -v test2 test.txt
# getfattr -d test.txt
# getfattr -n security.test -d test.txt
Se estiver tudo correto, os comandos acima retornarão essas respostas, respectivamente:
Se até aqui estiver tudo certinho, vamos para o próximo passo.
Todos sabemos e conhecemos o sacrifício que é configurar o Samba com o OpenLDAP, que depois de configurado, fica uma beleza, mas ainda assim, não é tão bom quanto o Active Directory da MS. Porém, com esse novo modo de pensar do time Samba.org, temos em primeira mão o Samba 4, ou melhor dizendo, o nosso Active Directory open source.
Nesse artigo, vou mostrar como instalar e configurar o Samba 4, mostrando um pouco do meu conhecimento sobre a ferramenta e direi também algumas melhores práticas, porém, ressalto que o foco é a instalação do Samba 4. Assim, este artigo deverá servir como um guia de instalação.
Preparação do servidor
Bom, como falei antes, o servidor deverá ter as particularidades de cada empresa, no meu caso, eu utilizo o sistema de arquivos com RAID + LVM para facilitar a minha manutenção. Vou colocar aqui a configuração que utilizei para fazer os testes:- / → 30 GB (ext4) - Onde será instalado o Samba 4.
- /home → 47 GB (ext4) - Onde será feito o controle de quota de disco.
- SWAP → 4 GB.
Instalando dependências
Tendo particionado o seu sistema de arquivos, vamos para a instalação das dependências, lembrando que eu testei e configurei em sistemas Debian e Ubuntu server, então, para outras distribuições, a instalação é diferente, porém, a instalação e configuração do Samba 4 não difere.# 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
Caso esteja utilizando outra distribuição, favor verificar a instalação das dependências no site oficial do Samba.org e procurar sobre a sua distribuição:
Após feito a instalação das dependências, vamos fazer a configuração do sistema de arquivos para receber o Samba 4.
Nas dependências, instalamos o "attr", que dará suporte a recursos avançadas do Samba 4. Também devemos ter um sistema de arquivos que suporte ACL, pois ela nos dará mais possibilidades de configuração de permissões especiais do Active Directory. E a opção de "barrier=1", que nos dá a segurança para que as transações do "tdb" e "ldb" sejam realizadas de forma segura, prevenindo assim, um erro por falha de energia que pode corromper do banco de dados do AD.
Vamos então ao fstab (Obs.: muito cuidado ao mexer no fstab, pois você poderá deixar o sistema não inicializável).
* Outra dica: o ideal é que o sistema de arquivos seja ext3, ext4 ou superior, no meu caso, estou utilizando o ext4.
sudo vim /etc/fstab
Localize a linha que monta o seu sistema de arquivos /home e modifique-a para a seguinte forma:
/dev/sdb1 /home ext4 user_xattr,acl,barrier=1 1 1
Nesse caso eu adicionei apenas "user_xattr,acl,barrier=1", como expliquei anteriormente, agora vamos remontar e testar se as modificações estão OK?
# mount -o remount,rw /home
Testes no sistema de arquivos:
# touch test.txt
# setfattr -n user.test -v test test.txt
# setfattr -n security.test -v test2 test.txt
# getfattr -d test.txt
# getfattr -n security.test -d test.txt
Se estiver tudo correto, os comandos acima retornarão essas respostas, respectivamente:
# file: test.txt
user.test="test"
# file: test.txt
security.test="test2"
Se até aqui estiver tudo certinho, vamos para o próximo passo.