Concluída as etapas de
configuração das interfaces e regras de firewall, chegou a hora de criar o primeiro container.
Para isso, na interface web, vá em Services, e clique em LXC Containers.
No primeiro acesso, ele irá baixar automaticamente os templates disponíveis, e só depois irá permitir selecionar e criar o container.
Neste cenário foi utilizado o template ubuntu noble, e o nome lxc-01 para o containar que terá serviço do Active Directory.
Após selecionar o template e inserir o nome, clique em criar.
Após criada, antes de iniciar, precisamos alterar o arquivo de
configuração /srv/lxc/lxc-01/config, atrever do acesso via ssh, conforme a imagem abaixo:
Após a edição do arquivo de
configuração, será necessário definir o ip estático para este container.
Para isso, na interface web do roteador, em Network, selecione DHCP and DNS.
Na aba Static Leases, clique em Add.
No campo Hostname, insira o nome lxc-01, já na caixa de seleção do MAC Address, no último campo, insira o endereço MAC que consta no arquivo de
configuração e pressione Enter.
Na caixa de seleção IP Address, novamente no último campo, insira o endereço 172.16.0.1 e pressione Enter.
Depois clique em Save, e posteriomente Save & Apply.
Agora, vamos iniciar o container pela interface web. Dentro da opção LXC Containers, pressionando o botão Start do container. Se tudo estiver correto, o ícone de status ficará verde após iniciar.
Com o container em funcionamento, vamos acessá-lo pelo terminal. Para isso, através do acesso via ssh, entre com o comando:
# lcx-attach lxc-01
Quando estiver dentro do container, será exibido o prompt root@lxc-01.
O primeiro passo dentro do container, será a
instalação dos pacotes necessários para o funcionamento do Active Directory, para isso entre com os comandos abaixo:
# apt update
# apt install -y samba krb5-user krb5-config winbind libpam-winbind libnss-winbind
Caso apareça uma tela do Kerberus, basta pressionar Enter.
Após
instalação dos pacotes, serão necessários desativar alguns serviços, e ajustar algumas configurações.
Primeiro, desative os serviços através dos comandos abaixo:
# systemctl disable systemd-resolved.service
# systemctl stop systemd-resolved.service
# systemctl stop samba-ad-dc.service smbd.service nmbd.service winbind.service
# systemctl disable samba-ad-dc.service smbd.service nmbd.service winbind.service
O próximo passo é apontar o roteador como servidor de DNS padrão, em vez do dnsmasq, uma vez que ele foi desativado na seção anterior.
Para isso remova o link do arquivo /etc/resolv.conf, e recrie o arquivo conforme abaixo.
Agora, edite o arquivo /etc/systemd/timesyncd.conf, e insira os servidores NTP que o container irá consultar. No caso serão utilizados os servidores do NTP.br.
Após inserir os servidores NTP, configure o fuso horário, no caso foi configurado para São Paulo.
# timedatectl set-timezone America/Sao_Paulo
O passo seguinte, será a
configuração do locale para pt_BR, para isso entre com o comando abaixo:
# dpkg-reconfigure locales
Desça a barra até encontrar a opção pt_BR, pressione espaço para selecionar e depois Enter. Na tela seguinte vá até a opção pt_BR e pressione Enter novamente.
Agora, vamos configurar o Active Directory, mas primeiro precisamos renomear o arquivo /etc/samba/smb.conf.
# mv /etc/samba/smb.conf /etc/samba/smb.conf.initial
O próximo passo será provisionar e configurar o samba. Antes de executar, verifique o endereço IP está correto, 172.16.0.1.
Para o provisionamento entre com o comando apaixo:
# samba-tool domain provision --use-rfc2307 --interactive
Durante a execução, serão solicitados alguns dados. No caso utilizaremos os já definidos anteriormente.
Realm: comercio.lan
Domain: comercio
Server Role: dc
DNS Backend: SAMBA_INTERNAL
DNS forwarder IP: 172.16.0.62
Executado o provisionamento, será necessário criar um link do arquivo de
configuração do Kerberus gerado pelo Samba, para isso entre com os comandos:
# mv /etc/krb5.conf /etc/krb5.conf.initial
# ln -s /var/lib/samba/private/krb5.conf /etc/
Agora edite o aquivo de
configuração do samba, inserindo as linhas abaixo, dentro da seção global, para corrigir algumas questões na codificação dos caracteres:
unix charset = utf-8
dos charset = iso-8859-1
Agora vamos ativar o serviço samba-ad-dc.service:
# systemctl unmask samba-ad-dc.service
# systemctl enable samba-ad-dc.service
# systemctl start samba-ad-dc.service
O próximo passo será de ajuste no serviço samba-ad-dc.service para que ele inicie corretamente após o reinício do container. Para isso é necessário editar o arquivo /usr/lib/systemd/system/samba-ad-dc.service, e inserir systemd-networkd.service nos campos Wants e After.
Os comandos abaixo são opcionais. Eles são relativos a complexidade e segurança da senha dos usuários. No caso, eles estarão removendo a complexidade, reduzindo o tamanho mínimo da senha, e removendo a renovação. Eles não são recomendados, mas dependendo do ambiente, infelizmente se fazem necessárias essas alterações.
# samba-tool domain passwordsettings set --complexity=off
# samba-tool domain passwordsettings set --min-pwd-length=6
# samba-tool domain passwordsettings set --max-pwd-age=0
O último passo para da
configuração do Active Directory é no ajuste do direcionamento da zona comercio.lan, no roteador para o controlador de domínio. Para isso, na interface web do roteador, acesse Network, DHCP and DNS. Na aba Forwards, no campo DNS Forwards insira o valor, /comercio.lan/172.16.0.1 e clique no botão +.
E na aba Filter, desmarque a opção Rebind protection, depois Save & Apply
Para fim de teste, podemos dar um ping ou nslookup do computador no nome comercio.lan, e verificar se o mesmo está funcionando e retornando o IP do controlador do domínio, 172.16.0.1. Caso não responda, na opção de DNS Forwards, adicione também o valor, /*.comercio.lan/172.16.0.1. Para finalizar essa etapa, será necessário alterar novamente o arquivo /etc/resolv.conf. No campo nameservers altere o endereço 172.16.0.62 para 127.0.0.1.
Concluída a etapa de criação do controlador de domínio, iremos criar na próxima etapa, os usuários e grupos no Active Directory, como também a Central Policy.