Recentemente (13/Dez/2024) fiz um vídeo mostrando como instalar um Active Directory com Samba4 utilizando máquinas virtuais https://www.youtube.com/watch?v=9_lVXZmbBoQ com toda documentação disponível em Active-Directory-With-Samba-4
Um desenvolvedor e colega meu disse:
Legal esse samba4, mas dá muito trabalho. Porquê você não faz em Docker pra eu testar uma aplicação que utiliza o LDAP para autenticar?
Depois de refletir sobre o que ele falou, eu decidi:
Aprender a utilizar esse Docker como um desenvolvedor.
Mergulhar no Git, GitHub, Docker, Dockerfile, docker-compose.yml, docker build, etc.
Contruir uma imagem com o Samba4 atualizado que fosse simples de ser instanciada.
# obter o código fonte
git clone https://github.com/Tiozao-do-Linux/samba4-addc.git
# entrar no diretório
cd samba4-addc
# copiar o arquivo env.example para .env
cp env.example .env
# Executar o container observando os logs
docker compose up -d && docker compose logs -f
O Sistema de Nomes de Domínio (DNS) será seudominio.com.br.
Com o container rodando é possível utilizar autenticação LDAP nas portas 389/636 com o usuário [email protected] e senha SuperSecretPassword@2025 com a raiz LDAP DC=seudominio,DC=com,DC=br no seu host local (127.0.0.1)
De brinde pode-se efetuar consultas/alterações nos mil usuários já povoados.
Suponha que seu Sistema de Nomes de Domínio (DNS) seja terra.com.br.
Alterar o seu
.env
conforme abaixo:
_REALM="TERRA.COM.BR"
_SYSVOL="terra.com.br"
_DOMAIN="TERRA"
_PASSWORD="SuperSecretPassword@2025"
_NETBIOS="dc01"
_DNS_FORWARDER_1="1.1.1.1"
_DNS_FORWARDER_2="8.8.8.8"
_DNS_BACKEND="SAMBA_INTERNAL"
_TEMP_PASSWORD="TempSuperSecretPassword@2025"
Dentro do diretório provision deve existir um arquivo fake.TERRA.ldif. Se não houver esse arquivo ldif contendo o nome de DOMINIO no nome, não ocorrerá o povoamento pelo script post-provision.sh
# utilizar o generate-fake-ldif com 1000 entradas para o TERRA.COM.BR com language em pt_BR
docker run --rm jarbelix/generate-fake-ldif 1000 TERRA.COM.BR pt_BR > provision/fake.TERRA.ldif
Remover o domínio seudominio.com.br criado anteriormente.
# parar o container
docker stop samba4-ad
# remover o container
docker rm samba4-ad
# remover os volumes relacionados ao samba
docker volume rm $( docker volume ls -q | grep samba )
Subir o novo container para o novo domínio e visualizar os logs
# Executar o container observando os logs
docker compose up -d && docker compose logs -f
Entre no container e execute comandos dentro dele.
# Entrar no container
docker exec -it samba4-ad bash
# Mostrar o /etc/samba/smb.conf
cat /etc/samba/smb.conf
# Listando apenas 10 usuários do domínio
samba-tool user list | head
# Listando os detalhes do primeiro usuário
samba-tool user show $(samba-tool user list | head -n1)
ldif
para o Domíniosamba4-adc no GitHub - https://github.com/Tiozao-do-Linux/samba4-addc
generate-fake-ldif no GitHub - https://github.com/Tiozao-do-Linux/generate-fake-ldif
Gerenciador Web do AD no GitHub - https://github.com/Tiozao-do-Linux/GNU-ADMW (ainda em desenvolvimento) com uma Demonstração https://admw-demo.tiozaodolinux.com/
Podman Desktop via flatpak - https://flathub.org/apps/io.podman_desktop.PodmanDesktop
Browser LDAP Apache Directory Studio via flatpak - https://flathub.org/apps/org.apache.directory.studio