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
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.
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:
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
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
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
Validando a relação de confiança entre os domínios
ipa trust-add --type=ad nt.example.com --admin Administrator --password
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
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.
No console do FreeIPA vá em Indetity > User Groups e crie o grupo com o padrão abaixo para mapear o grupo no AD
Clique no grupo e selecione EXTERNAL adicionando o grupo
Crie um grupo local ActiveDirectorySSH e o adicione no grupo addsshmap
Vá em Policies > HBAC Rules e crie a política ActiveDirectory-SSH
Clique na Regra e adicione o grupo , serviço e o host que serão envolvidos
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
No log /var/log/secure podemos ver que a sessão foi autorizada
Referência
http://www.freeipa.org/page/Active_Directory_trust_setup#DNS_configuration