Seguindo os mesmos passos da criação do container para o Active Directory, criaremos um novo container com o nome lxc-02, usando o template ubuntu noble.
No arquivo de
configuração do container, localizado em /srv/lxc/lcx-02/config, insira as informações conforme a imagem abaixo:
Após editado o arquivo, configure o container para receber o IP estático 172.16.0.2, seguindo os mesmos passos usados no container do lxc-01, alterando o nome, endereço IP e MAC Address.
Agora, inicie o container através da interface web do roteador, e após entre no console do mesmo através da interface ssh do roteador através do comando:
# lxc-attach lxc-02
Dentro do container, iremos instalar o Samba, juntamente com os arquivos para ingressá-lo no domínio, e aplicar as ACLs. Para isso entre com os comandos abaixo:
# apt update
# apt install samba smbclient krb5-config krb5-user winbind libnss-winbind libpam-winbind acl -y
Seguindo os mesmos passos usados no container do lxc-01, edite o arquivo /etc/systemd/timesyncd.conf, adicionado os servidores NTP, configure o timezone para America/São_Paulo e adicione o locale pt_BR como padrão.
O próximo passo será a alteração do arquivo /etc/krb5.conf, para que ele contenha os dados abaixo:
[libdefaults]
default_realm = COMERCIO.LAN
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
fcc-mit-ticketflags = true
[realms]
COMERCIO.LAN = {
kdc = 172.16.0.1:88
admin_server = 172.16.0.1
default_domain = COMERCIO.LAN
}
[domain_realm]
.COMERCIO.LAN = COMERCIO.LAN
COMERCIO.LAN = COMERCIO.LAN
O próximo passo é a edição do arquivo /etc/samba/smb.conf:
[global]
workgroup = comercio
security = ads
realm = comercio.lan
password server = lxc-01.comercio.lan
domain logons = no
template shell = /bin/bash
template homedir = /home/%D/%U
winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes
winbind offline logon = yes
domain master = no
local master = no
prefered master = no
os level = 0
idmap config *:backend = tdb
idmap config *:range = 11000-20000
idmap config COMERCIO.LAN:backend = rid
idmap config COMERCIO.LAN:range=10000000-19000000
unix charset = utf-8
dos charset = iso-8859-1
map acl inherit = yes
store dos attributes = yes
netbios alias = files files.comercio.lan
[comercio]
path = /dados/comercio
read only = no
writeable = yes
guest ok = no
public = no
browseable = yes
create mask = 777
directory mask = 777
valid users = +"COMERCIO\Domain Users"
As opções template shell e template homedir foram configuradas dessa forma, mesmo não sendo feito o login dos usuários do domínio no container, pois em alguns serviços, como o vsftpd, quando integrado ao Active Directory, é necessário criar o diretório home do usuário, para ele ter acesso ao serviço.
Após a edição dos arquivos, crie o diretório /dados/comercio, onde serão armazenados os arquivos da
empresa, e inicialmente dê a permissão 777 para o diretório.
No /etc/pam.d/common-account, adicione a linha no final do arquivo, para que seja criado o diretório home do usuário de forma automática:
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
O próximo passo é ingressar o container no domínio, e reiniciar para as alterações entrarem em vigor.
Assim, entre com os comandos abaixo, e digite a senha do usuário Administrator quando solicitado:
# kinit Administrator
# net join -U Administrator
# reboot
Na VM com o Windows, crie os grupos de usuários para associar a eles a permissão de acesso no
Linux através das ACLs.
Neste exemplo, dentro da OU USUARIOS, crie uma outa OU, chamada GRUPOS, e dentro dela os grupos de usuários, sendo dois grupos por setor, um para leitura e outro para escrita.
Em cada grupo, insira os usuários no qual irão ter acesso de escrita e leitura em determinado diretório no compartilhamento.
Exemplo: Gabriel Flach, como CEO terá permissão de escrita em todos os diretórios, então ele deverá ser inserido em todos os grupos de escrita. Já Bianca Cunha terá permissão de escrita no diretório Produção e de leitura no Loja, então ela deverá fazer parte somente dos grupos escrita do setor de Produção e no de leitura no setor Loja.
Agora no Windows Explorer, acesse o endereço \\172.16.0.2\comercio, e crie as pastas Administração, Produção, Loja e uma pasta Público, onde todos os usuários terão permissão de escrita, para compartilhamento de arquivo entre eles. Os diretórios também poderão ser criados dentro do console do container.
Os próximos passos serão referentes a criação dos diretórios e
configuração das ACLs
Acesse novamente o console do container lxc-02 pela interface ssh do roteador:
# lxc-attach lxc-02
Agora entre com os comandos abaixo para criar as ACLs referente aos permissões de acesso:
# setfacl -m g:"Domain Users":r-x /dados/comercio
# setfacl -m g:"Administracao_Leitura":r-x /dados/comercio/Administração/
# setfacl -m d:g:"Administracao_Leitura":r-x /dados/comercio/Administração/
# setfacl -m g:"Administracao_Escrita":rwx /dados/comercio/Administração/
# setfacl -m d:g:"Administracao_Escrita":rwx /dados/comercio/Administração/
# setfacl -m g:"Loja_Leitura":r-x /dados/comercio/Loja/
# setfacl -m d:g:"Loja_Leitura":r-x /dados/comercio/Loja/
# setfacl -m g:"Loja_Escrita":rwx /dados/comercio/Loja/
# setfacl -m d:g:"Loja_Escrita":rwx /dados/comercio/Loja/
# setfacl -m g:"Producao_Leitura":r-x /dados/comercio/Produção/
# setfacl -m d:g:"Producao_Leitura":r-x /dados/comercio/Produção/
# setfacl -m g:"Producao_Escrita":rwx /dados/comercio/Produção/
# setfacl -m d:g:"Producao_Escrita":rwx /dados/comercio/Produção/
# setfacl -m g:"Domain Users":rwx /dados/comercio/Público
# setfacl -m d:g:"Domain Users":rwx /dados/comercio/Público
# setfacl -R -m o::--- /dados/comercio
# setfacl -R -m d:o::--- /dados/comercio
# chown -R root:root /dados/comercio
Ao concluir os comandos, o usuário Administrator irá perder o acesso aos diretórios compartilhados. Para testá-los, será necessário fazer o login com uma das contas de usuário criadas anteriormente, ou adicionar a permissão para o usuário Administrator. Agora iremos configurar o Alias para acessar o servidor de arquivo através do endereço \\files.
Para isso desconecte do container lxc-02, e entre no container lxc-01. Essa
configuração irá ajudar na migração no futuro do servidor de arquivos para uma outra máquina, já que não necessárias alterações nas GPOs.
Dentro do console do lxc-01, entre com os seguintes comandos:
# samba-tool spn add cifs/files LXC-02$
# samba-tool spn add cifs/files.comercio.lan LXC-02$
Para confirmar a
configuração, digite o comando, samba-tool spn list lxc-02$, e verifique se as informações estão corretas.
De volta a VM, no menu iniciar, digite DNS para abrir o console de gerenciamento. Neles iremos adicionar o CNAME files, apontando para o nome lxc-02.rgf.lan.
Na janela de Conectar-se ao servidor de DNS, marque, No seguinte computador, e digite lxc-01.comercio.lan, e pressione OK.
Com a ferramenta aberta, clique com o botão direito dentro da zona comercio.lan, depois, Novo Alias (CNAME).
Dentro da janela aberta, preencha os dados conforme a imagem abaixo:
Nas telas acima, é possível ver que não foi criada a entrada lxc-02 no DNS durante o ingresso no domínio, e para corrigir, basta criar um novo registro do tipo A, como o nome lxc-02 apontando para o endereço 172.16.0.2.
Para testar a
configuração, dê um ping no endereço files.comercio.lan e verifique se ele irá retornar o IP do container.
O último passo dessa etapa, é a criação de uma GPO para permitir que o Windows acesse os compartilhamentos através do Alias. Para isso no Iniciar, pesquise por Gerenciamento de Política de Grupo, e abra a ferramenta.
Dentro dela, na OU COMPUTADORES, clique com o botão direito, e selecione Criar um GPO neste domínio e fornecer um link para ele aqui.
Na janela aberta, insira um nome amigável para a GPO, por exemplo, Acessar compartilhamento por Alias, e pressione OK. Após criada, sobre a GPO, clique com o botão direito, e selecione Editar.
Já janela de edição, navegue por Configurações do Computador, Preferências, Configurações do Windows, e finalmente Registro.
Clique com o botão direito do mouse e selecione, Novo, em seguida, Item do Registro, e insira os dados nos campos correspondentes e ao final pressione OK:
Caminho da chave: SYSTEM\CurrentControlSet\Services\lanmanserver\parameters
Nome do valor: DisableStrictNameChecking
Tipo de valor: REG_DWORD
Dados de valor: 1
Criada a GPO, está finalizada a
configuração do container, e seu acesso através do Alias. A próxima etapa é referente a criação das GPOs para mapeamento dos diretórios compartilhados. Para tornar a mudança no Windows efetiva, aplicando a GPO nas estações, na ferramenta de gerenciamento de usuários, arraste todas as máquinas da OU Computers, para a OU, COMPUTADORES, e após, reinicie a VM ou execute o comando gpupdate.