# Guatá AD (Samba AD DC) em container — Oracle Linux 9 / RHEL

Por que container? Red Hat/Oracle empacotam o Samba **sem** o papel de AD DC
(empurram o FreeIPA/IdM). Não existe `samba-ad-dc` no `dnf`. Então rodamos o
controlador de domínio **em container** (base Debian, onde o AD DC existe) — e ele
roda em **qualquer** host: Oracle Linux 9, RHEL, Rocky, Alma, Debian.

> Regra Guatá: rede **mista / com Windows → Samba AD DC** (este container).
> Rede **só Linux → FreeIPA/IdM** (nativo no OL9).

## 1. Instalar o runtime (no host OL9)
```bash
sudo dnf install -y podman
```

## 2. Construir a imagem (ou receber pronta)
```bash
sudo podman build -t guata-ad:1.2.0-container .
```

## 3. Subir o domínio
O DC precisa das portas da rede (DNS 53, Kerberos 88, LDAP 389, SMB 445...),
de um volume com suporte a xattr/ACL e da capability SYS_ADMIN. Rode como root
(portas < 1024). Troque o REALM/senha:

```bash
sudo podman run -d --name guata-ad \
  --network host \
  --cap-add SYS_ADMIN --cap-add NET_ADMIN \
  --restart unless-stopped \
  -v guata-ad-data:/var/lib/samba:Z \
  -v guata-ad-etc:/etc/samba:Z \
  -v guata-ad-conf:/etc/guata-ad:Z \
  -e GUATA_REALM="minhaempresa.local" \
  -e GUATA_NETBIOS="MINHAEMPRESA" \
  -e GUATA_HOSTNAME="dc01" \
  -e GUATA_ADMIN_PASS="TROQUE@Esta#Senha1" \
  -e GUATA_DNS_FORWARDER="1.1.1.1" \
  -e GUATA_AD_WEB_PORT="80" \
  guata-ad:1.2.0-container
```

`:Z` ajusta o rótulo SELinux do volume (padrão no OL9). `--network host` faz o DC
ser o DNS/Kerberos da rede pelo IP do próprio servidor.

## 4. Firewall do host (OL9)
```bash
for p in 53/tcp 53/udp 88/tcp 88/udp 389/tcp 445/tcp 464/tcp 464/udp 636/tcp 3268/tcp 3269/tcp 135/tcp 80/tcp; do
  sudo firewall-cmd --permanent --add-port=$p; done
sudo firewall-cmd --reload
```

## 5. Usar
- Painel web: `http://IP-DO-SERVIDOR/`  (login: `Administrator` + a senha de GUATA_ADMIN_PASS)
- Ligar um **Windows**: use o IP do DC como DNS → Entrar no domínio `minhaempresa.local`.
- Ligar um **Linux (OL9/RHEL)** no domínio (NATIVO, sem container do lado cliente):
  ```bash
  sudo dnf install -y realmd sssd adcli samba-common-tools oddjob oddjob-mkhomedir
  sudo realm join -U Administrator minhaempresa.local
  ```
- Checar: `sudo podman exec guata-ad samba-tool domain info 127.0.0.1`

## Persistência / backup
Todo o domínio vive nos volumes `guata-ad-data` (/var/lib/samba) e `guata-ad-etc`.
Backup = parar o container e salvar esses volumes (ou `samba-tool domain backup online`).

## Status: validado (12/11/2026)
Provisionamento, `domain info`, criação de usuário, DNS SRV interno, Kerberos (kinit→TGT)
e painel web (HTTP 200) testados num container. Validação final no OL9 real do DBA.
