freeIPA : Active Directory Integration

Neste post será apresentado como integrar o freeIPA com o Active Directory da Microsoft.

Cada vez mais as tecnologias estão integradas e investir em um domínio integrado entre ambientes diferentes é garantir a administração centralizada com segurança.

Detalhes via documentação do projeto :

https://docs.fedoraproject.org/en-US/Fedora/17/html/FreeIPA_Guide/active-directory.html

freeipa-integration

Obs : Este post visa a integração do freeIPA com o Active Directory , o foco desse post não é a solução da Microsoft.

1) Ambiente :

FreeIPA Domain 4
Directory Server Name: ipa-01.lx.example.com
Directory Server IP: 10.0.10.5
Domain Name: lx.example.com
Realm: LX.EXAMPLE.COM
NetBIOS Name: LX

Active Directory Domain 2008 R2 Forest
Directory Server Name: ntad-01.nt.example.com
Directory Server IP: 10.0.10.6
Domain Name: nt.example.com
Realm: NT.EXAMPLE.COM
NetBIOS Name: NT

Cliente com o FreeIPA Agent instalado
Nome : client01.lx.example.com
IP : 10.0.10.20

Só são suportados domínios do Windows 2008 e Windows 2012.

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Identity_Management_Guide/active-directory.html#platforms-sync

Portas Liberadas no Firewall

TCP ports: 80, 88, 443, 389, 636, 88, 464, 53, 138, 139, 445
UDP ports: 88, 464, 53, 123, 138, 139, 389, 445

Documentação referência para as portas do AD:

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd772723(v=ws.10)

2) DNS Ambiente Microsoft :

Adicione a zona LX.EXAMPLE.COM de forma que todas as consultas nesse domínio vá para ela.

C:\> dnscmd 127.0.0.1 /ZoneAdd ipa_domain /Forwarder ipa_ip_address

Captura de Tela 2016-06-19 às 11.24.56

3) Instalação e Configuração do freeIPA :

Instalação de todos os pacotes

yum install -y *ipa-server ipa-server-trust-ad bind bind-dyndb-ldap ipa-server-dns

Adicione a entrada estática com ipa-01.lx.example.com

echo "10.0.10.5 ipa-01.lx.example.com" >> /etc/hosts

Desabilite o ipv6 adicionando as entradas trocando [INTERFACE] pela interface usada no arquivo /etc/sysctl.conf

 # Disable IPv6
 net.ipv6.conf.all.disable_ipv6 = 1
 net.ipv6.conf.[INTERFACE].disable_ipv6 = 1

Atualize o sysctl com o comando abaixo

 sysctl -p 

Instalação do freeIPA não assistida

ipa-server-install --admin-password=Fajlinux123 --ds-password=Fajlinux123 \
--domain=lx.example.com --realm=LX.EXAMPLE.COM \
--setup-dns --no-forwarders --unattended

Valide a instalação com logando no domínio e listando o usuário admin

kinit admin
id admin
getent passwd admin

Captura de Tela 2016-06-19 às 12.44.14

Em nosso lab não será utilizado DNSSEC , desabilite no arquivo /etc/named.conf colocando as opções abaixo de yes para no

dnssec-enable no;
dnssec-validation no;

Configuração de relação de confiança cross-realm

ipa-adtrust-install --netbios-name=LX \ 
-a Fajlinux123

Autorize a tranferência de zona no DNS

ipa dnszone-mod lx.example.com \ 
--allow-transfer=10.0.10.6

Configure todas as requisições no domínio nt.example.com sejam encaminhadas para o Active Directory

ipa dnsforwardzone-add nt.example.com  \ 
--forwarder=10.0.10.6 \
--forward-policy=only

Valide a resolução de nomes entre os ambientes.

dig SRV _ldap._tcp.nt.example.com
dig SRV _ldap._tcp.lc.example.com

Saída do comando dig SRV _ldap._tcp.nt.example.com

Captura de Tela 2016-06-19 às 14.28.33

Validando a relação de confiança entre os domínios

ipa trust-add --type=ad nt.example.com --admin Administrator --password

Captura de Tela 2016-06-19 às 14.41.21

4) Instalando agente no cliente :

Instale os pacotes

yum install ipa-client ipa-admintools -y

Adicione a entrada no arquivo hosts

echo "10.0.10.20 client-01.lx.example.com" >> /etc/hosts

Execute a instalação

ipa-client-install –enable-dns-updates 

Captura de Tela 2016-06-19 às 15.39.15

Habilitando autenticação via Kerberos

authconfig --enablekrb5 --update
authconfig --enablemkhomedir --update

5) Criando Grupos e ACL de Teste :

Será mapeado um grupo do AD e permitido que ele logue um servidor Linux , segue abaixo o grupo do AD listando o usuário que terá acesso.

Captura de Tela 2016-06-19 às 15.34.18

No console do FreeIPA vá em Indetity > User Groups e crie o grupo com o padrão abaixo para mapear o grupo no AD

Captura de Tela 2016-06-19 às 16.16.58

Clique no grupo e selecione EXTERNAL adicionando o grupo

Captura de Tela 2016-06-19 às 16.20.06

Captura de Tela 2016-06-19 às 16.19.58

Crie um grupo local ActiveDirectorySSH e o adicione no grupo addsshmap

Captura de Tela 2016-06-19 às 16.22.54

Captura de Tela 2016-06-19 às 16.23.56

Vá em Policies > HBAC Rules e crie a política ActiveDirectory-SSH

Captura de Tela 2016-06-19 às 15.56.32

Clique na Regra e adicione o grupo , serviço e o host que serão envolvidos

Captura de Tela 2016-06-19 às 16.26.27

6) Testes Finais :

Para validar a configuração foi chamado de um servidor Windows via cliente SSH (Putty) o servidor client-01.lx.example.com com o usuário NT\user1

Captura de Tela 2016-06-19 às 16.56.13

No log /var/log/secure podemos ver que a sessão foi autorizada

Captura de Tela 2016-06-19 às 16.57.42

Referência

http://www.freeipa.org/page/Active_Directory_trust_setup#DNS_configuration