Observação:
- Este tutorial está disponível em um ambiente de laboratório gratuito fornecido pela Oracle.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir o laboratório, substitua esses valores por valores específicos ao seu ambiente de nuvem.
Instalar o Servidor FreeIPA no Oracle Linux
Introdução
FreeIPA é um sistema de gerenciamento de identidade e autenticação de código-fonte aberto para ambientes em rede do Linux. O servidor inclui o Servidor de Diretórios 389 como o armazenamento de dados central, fornecendo funcionalidade multi-master LDAPv3 completa.
Além do escopo deste tutorial, FreeIPA também fornece MIT Kerberos para autenticação de logon único, a Dogtag Certificate Authority e gerenciamento opcional de nomes de domínio por meio de um servidor ISC Bind.
Este tutorial mostra como instalar o FreeIPA e configurar o diretório LDAP incluído.
Objetivos
- Instalar Servidor FreeIPA
- Desativar binds anônimos
- Adicionar Usuários e Grupos
Do Que Você Precisa?
- Um sistema com no mínimo 2 vCPUs, 2 GB de RAM e o Oracle Linux instalado
- Um FQDN (Nome de Domínio Totalmente Qualificado) apontando para o endereço IP do servidor
Para obter mais informações sobre requisitos para FreeIPA, consulte o Guia de Início Rápido upstream.
Configurar o Ambiente de Laboratório
Observação: Ao usar o ambiente de laboratório gratuito, consulte Conceitos Básicos do Oracle Linux Lab para obter informações sobre conexão e outras instruções de uso.
-
Abra um terminal e conecte via ssh à instância freeipa-server caso ainda não esteja conectada.
ssh oracle@<ip_address_of_instance>
Confirme o Servidor HostName
O servidor FreeIPA requer uma configuração de DNS em funcionamento. Os clientes inscritos usando a ferramenta de linha de comando ipa
pesquisam o servidor pelos parâmetros xmlrpc_url
e domain
definidos no arquivo /etc/ipa/default.conf
.
-
Verifique o nome do host do servidor.
sudo hostname
A saída não deve retornar
localhost
oulocalhost6
.
Confirme o FQDN (Fully Qualified Domain Name).
FreeIPA tem uma limitação de 64 caracteres para o FQDN que ele valida durante a instalação. Se o FQDN exceder 64 caracteres, use sudo hostnamectl set-hostname NAME
, em que NAME
é o FQDN, para reduzi-lo.
-
Verifique o FQDN e seu tamanho.
hostname -f
echo $(hostname -f) | wc -m
Observação: O FQDN consiste em
freeipa.<RND_SUBNET>.linuxvirt.oraclevcn.com
, em que<RND_SUBNET>
é uma string aleatória de 4 caracteres prefixada pela letrao
.
Confirmar Resolução de Nome.
-
Obter o endereço IP do servidor.
sudo ip addr show
Exemplo de Saída:
[oracle@freeipa ~]$ sudo ip addr show ... 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:00:17:02:b3:9e brd ff:ff:ff:ff:ff:ff altname enp0s3 inet 10.0.0.150/24 brd 10.0.0.255 scope global dynamic noprefixroute ens3 valid_lft 85923sec preferred_lft 85923sec inet6 fe80::200:17ff:fe02:b39e/64 scope link noprefixroute valid_lft forever preferred_lft forever
O endereço IPv4 é exibido na linha que começa com
inet
. -
Verifique a configuração do DNS de encaminhamento.
host $(hostname -f)
Exemplo de Saída:
[oracle@freeipa ~]$ host $(hostname -f) freeipa.o6fb5.linuxvirt.oraclevcn.com has address 10.0.0.150
Outra forma de verificar a configuração do DNS de encaminhamento é usar
dig +short $(hostname -f) A
.host
edig
fazem parte do pacotebind-utils
, que fornece diferentes utilitários para consulta a servidores de nomes DNS. -
Verifique a configuração de DNS reverso (registros PTR).
host $(hostname -i)
Exemplo de Saída:
[oracle@freeipa ~]$ host $(hostname -i) 150.0.0.10.in-addr.arpa domain name pointer freeipa.o6fb5.linuxvirt.oraclevcn.com.
Uma alternativa é usar
dig +short -x $(hostname -i)
.
Abra as Portas de Firewall Necessárias
O FreeIPA exige que várias portas estejam abertas e disponíveis para comunicação com seus serviços.
Serviço | Portas | Protocolo |
---|---|---|
HTTP/HTTPS | 80.443 | TCP |
LDAP/LDAPs | 389.636 | TCP |
Kerberos | 88.464 | TCP e UDP |
DNS | 53 | TCP e UDP |
NTP | 123 | UDP |
O Oracle Linux fornece o serviço freeipa-4
para abrir essas portas necessárias. Para obter detalhes, consulte /usr/lib/firewalld/services/freeipa-4.xml
. O serviço freeipa-4
substitui os serviços freeipa-ldap
e freeipa-ldaps
obsoletos.
-
Adicione o serviço
firewalld
.sudo firewall-cmd --permanent --add-service=freeipa-4
sudo firewall-cmd --reload
Instalar os Pacotes Necessários
-
Instale os pacotes para um servidor FreeIPA sem os serviços DNS integrados.
sudo dnf install ipa-server -y
Observação: Os serviços de DNS integrados não são usados como parte deste tutorial. Se necessário, adicione o pacote
ipa-server-dns
à lista de instalação.
Instale e Configure o Servidor FreeIPA
-
Execute o utilitário de instalação.
sudo ipa-server-install
O script é iniciado fornecendo o local do arquivo de log da instalação e um resumo do que o servidor FreeIPA inclui.
Exemplo de Saída:
[oracle@freeipa ~]$ sudo ipa-server-install The log file for this installation can be found in /var/log/ipaserver-install.log ============================================================================== This program will set up the IPA Server. Version 4.9.8 This includes: * Configure a stand-alone CA (dogtag) for certificate management * Configure the NTP client (chronyd) * Create and configure an instance of Directory Server * Create and configure a Kerberos Key Distribution Center (KDC) * Configure Apache (httpd) * Configure SID generation * Configure the KDC to enable PKINIT ...
O script então usa vários prompts para configurar a configuração do servidor. O terminal mostra a resposta padrão para o prompt dentro dos colchetes e pressionar
Enter
aceita a resposta padrão. -
Aceite a resposta padrão de
no
para configurar o serviço DNS integrado.Do you want to configure integrated DNS (BIND)? [no]:
-
Aceite o nome do host padrão, o nome do domínio e o nome do realm.
Estes são os valores verificados no início deste laboratório. É recomendável que o nome do realm corresponda ao nome do domínio DNS primário, com todas as letras maiúsculas.
Enter the fully qualified domain name of the computer on which you're setting up server software. Using the form <hostname>.<domainname> Example: master.example.com. Server host name [freeipa.o6fb5.linuxvirt.oraclevcn.com]: The domain name has been determined based on the host name. Please confirm the domain name [o6fb5.linuxvirt.oraclevcn.com]: The kerberos protocol requires a Realm name to be defined. This is typically the domain name converted to uppercase. Please provide a realm name [O6FB5.linuxvirt.ORACLEVCN.COM]:
-
Informe e confirme as senhas do superusuário do Servidor de Diretórios e do usuário FreeIPA
admin
.O superusuário do Servidor de Diretórios é mapeado para
cn=Directory Manager
no diretório.Certain directory server operations require an administrative user. This user is referred to as the Directory Manager and has full access to the Directory for system management tasks and will be added to the instance of directory server created for IPA. The password must be at least 8 characters long. Directory Manager password: Password (confirm): The IPA server requires an administrative user, named 'admin'. This user is a regular system account used for IPA server administration. IPA admin password: Password (confirm):
-
Aceite os padrões de nome de domínio NETBIOS e configure cronicamente.
NetBIOS domain name [O6FB5]: Do you want to configure chrony with NTP server or pool address? [no]:
-
O script apresenta um resumo da configuração do servidor.
-
Informe
yes
para aceitar a configuração do servidor.Continue to configure the system with these values? [no]: yes
-
O script continua a configurar o servidor.
Esta operação poderá levar alguns minutos para ser concluída.
... Client configuration complete. The ipa-client-install command was successful Please add records in this file to your DNS system: /tmp/ipa.system.records.mv9i0ec2.db ============================================================================== Setup complete Next steps: 1. You must make sure these network ports are open: TCP Ports: * 80, 443: HTTP/HTTPS * 389, 636: LDAP/LDAPS * 88, 464: kerberos UDP Ports: * 88, 464: kerberos * 123: ntp 2. You can now obtain a kerberos ticket using the command: 'kinit admin' This ticket will allow you to use the IPA tools (e.g., ipa user-add) and the web user interface. Be sure to back up the CA certificates stored in /root/cacert.p12 These files are required to create replicas. The password for these files is the Directory Manager password The ipa-server-install command was successful
Após a conclusão, o script fornece:
- Um resumo.
- Uma lista de registros a serem adicionados ao sistema de DNS.
- Recomendação para fazer backup dos certificados de CA gerados.
As portas de rede necessárias já estão abertas usando o serviço
freeipa-4
firewalld
.
Testar o Servidor FreeIPA
A instalação FreeIPA inclui um cliente de linha de comando e um WebUI para interagir com o servidor. O uso do WebUI está fora do escopo deste tutorial.
Acessar a Interface de Linha de Comando (CLI)
-
Autentique o usuário
admin
no realm do Kerberos.kinit admin
Quando solicitado, informe a senha do usuário
admin
criado durante as etapas de instalação e configuração. O comandokinit
gera um ticket Kerberos. -
Listar as informações do ticket
klist
Exemplo de Saída:
[oracle@freeipa ~]$ sudo klist Ticket cache: KCM:0 Default principal: admin@O6FB5.LINUXVIRT.ORACLEVCN.COM Valid starting Expires Service principal 09/28/2022 14:05:46 09/29/2022 13:05:53 krbtgt/O6FB5.LINUXVIRT.ORACLEVCN.COM@O6FB5.LINUXVIRT.ORACLEVCN.COM
-
Obtenha uma lista de todos os usuários existentes no servidor FreeIPA.
ipa user-find
Os resultados retornam o usuário
admin
, que é o único usuário que existe atualmente.Exemplo de Saída:
[oracle@freeipa ~]$ sudo ipa user-find -------------- 1 user matched -------------- User login: admin Last name: Administrator Home directory: /home/admin Login shell: /bin/bash Principal alias: admin@O6FB5.LINUXVIRT.ORACLEVCN.COM, root@O6FB5.LINUXVIRT.ORACLEVCN.COM UID: 872200000 GID: 872200000 Account disabled: False ---------------------------- Number of entries returned 1 ----------------------------
Configurações de Segurança e Proteção
Estas são algumas maneiras de usar o servidor FreeIPA com segurança.
Desativar Binds Anônimos
O servidor LDAP FreeIPA permite associações anônimas como padrão, expondo assim definições de configuração e valores de diretório específicos.
O atributo nsslapd-allow-anonymous-access
controla esse comportamento. Os valores aceitáveis incluem:
on
: permite todos os binds anônimos (padrão)rootdse
: permite associações anônimas somente para informações de DSE raizoff
: não permite binds anônimos
A recomendação é usar rootdse
em vez de off
ao não permitir binds anônimos, pois o uso de off
também bloqueia clientes externos de verificar a configuração do servidor. Clientes que não são de domínio, como LDAP e clientes Web, se conectam de maneira anônima lendo o arquivo DSE raiz para obter detalhes da conexão.
-
Verifique se os binds anônimos estão ativados.
ldapsearch -x -h $(hostname -f) -b dc=$RND_SUBNET,dc=linuxvirt,dc=oraclevcn,dc=com
-x
define autenticação simples ou anônima.-h
define o host do servidor LDAP.-b
define o dn base para pesquisa.
As definições de chave, incluindo o dn base para o servidor FreeIPA, são armazenadas no arquivo
/etc/ipa/default.conf
.$RND_SUBNET
é uma variável de ambiente definida no ambiente de laboratório livre que representa a string aleatória de 4 caracteres no FQDN.Exemplo de Saída:
... # Default SMB Group, groups, accounts, o6fb5.linuxvirt.oraclevcn.com dn: cn=Default SMB Group,cn=groups,cn=accounts,dc=o6fb5,dc=linuxvirt,dc=oraclevc n,dc=com cn: Default SMB Group description: Fallback group for primary group RID, do not add users to this gr oup objectClass: top objectClass: ipaobject objectClass: posixgroup objectClass: ipantgroupattrs ipaUniqueID: 0c9cf178-4324-11ed-bf0b-02001704fe22 gidNumber: 921600001 ipaNTSecurityIdentifier: S-1-5-21-2697967063-3375457457-2974965896-1001 # search result search: 2 result: 0 Success # numResponses: 110 # numEntries: 109
Os resultados da pesquisa retornam a árvore inteira do diretório LDAP.
-
Modifique a configuração e desative os binds anônimos.
O comando
ldapmodify
aceita um arquivo LDIF com as alterações a serem feitas ou lê as operações da entrada padrão.-
Crie o arquivo LDIF.
cat << 'EOF' | tee ~/disable_anon_bind.ldif > /dev/null dn: cn=config changetype: modify replace: nsslapd-allow-anonymous-access nsslapd-allow-anonymous-access: rootdse EOF
A alteração de vários atributos é possível separando-os com um caractere de traço
-
em uma linha por si só. Cada alteração adicional começa com o tipo de alteração do atributo e fornece os atributos necessários. -
Aplicar as alterações de LDIF.
ldapmodify -x -D "cn=Directory Manager" -W -H ldap:// -ZZ -f ~/disable_anon_bind.ldif
-x
define autenticação simples ou anônima.-D
define o dn de bind.-W
solicita a senhaadmin
do LDAP.-H
usa o URI (Uniform Resource Identifier) do LDAP para estabelecer conexão em vez do host do servidor LDAP.-ZZ
inicia uma solicitação TLS e força uma resposta bem-sucedida.
Observação: O
-ZZ
é necessário devido ao uso de certificados autoassinados.Exemplo de Saída:
[oracle@freeipa ~]$ ldapmodify -x -D "cn=Directory Manager" -W -H ldap:// -ZZ -f ~/disable_anon_bind.ldif Enter LDAP Password: modifying entry "cn=config"
-
Reinicie o servidor FreeIPA.
sudo systemctl restart ipa.service
-
-
Verifique a modificação consultando anonimamente o diretório.
ldapsearch -x -h $(hostname -f) -b dc=$RND_SUBNET,dc=linuxvirt,dc=oraclevcn,dc=com
Observe a resposta
Anonymous access is not allowed
.Exemplo de Saída:
[oracle@freeipa ~]$ ldapsearch -x -h freeipa.o6fb5.linuxvirt.oraclevcn.com -b dc=o6fb5,dc=linuxvirt,dc=oraclevcn,dc=com # extended LDIF # # LDAPv3 # base <dc=o6fb5,dc=linuxvirt,dc=oraclevcn,dc=com> with scope subtree # filter: (objectclass=*) # requesting: ALL # # search result search: 2 result: 48 Inappropriate authentication text: Anonymous access is not allowed. # numResponses: 1
-
Verifique se a consulta do diretório funciona usando autenticação.
ldapsearch -D uid=admin,cn=users,cn=accounts,dc=$RND_SUBNET,dc=linuxvirt,dc=oraclevcn,dc=com -W -H ldap://
Exemplo de Saída:
... # freeipa.o6fb5.linuxvirt.oraclevcn.com + 389, subordinate-ids, dna, ipa, etc, o6fb5.linuxvirt.oraclevcn.com dn: dnaHostname=freeipa.o6fb5.linuxvirt.oraclevcn.com+dnaPortNum=389,cn=subord inate-ids,cn=dna,cn=ipa,cn=etc,dc=o6fb5,dc=linuxvirt,dc=oraclevcn,dc=com objectClass: dnaSharedConfig objectClass: top dnaHostname: freeipa.o6fb5.linuxvirt.oraclevcn.com dnaPortNum: 389 dnaSecurePortNum: 636 dnaRemainingValues: 32766 # search result search: 2 result: 0 Success # numResponses: 475 # numEntries: 474
Verificar se o TLS está Ativado
A partir do Oracle Linux 8, o FreeIPA usa a política de criptografia de todo o sistema. Consulte a página man crypto-policies(7)
para obter mais detalhes.
-
Liste a política de criptografia atual em todo o sistema.
cat /etc/crypto-policies/config
-
Liste os detalhes da política de criptografia.
cat /usr/share/crypto-policies/$(cat /etc/crypto-policies/config)/nss.txt
Exemplo de Saída:
[oracle@freeipa ~]$ cat /usr/share/crypto-policies/$(cat /etc/crypto-policies/config)/nss.txt library= name=Policy NSS=flags=policyOnly,moduleDB config="disallow=ALL allow=HMAC-SHA256:HMAC-SHA1:HMAC-SHA384:HMAC-SHA512:CURVE25519:SECP256R1:SECP384R1:SECP521R1:aes256-gcm:chacha20-poly1305:aes256-cbc:aes128-gcm:aes128-cb > c:SHA256:SHA384:SHA512:SHA224:ECDHE-RSA:ECDHE-ECDSA:RSA:DHE-RSA:ECDSA:RSA-PSS:RSA-PKCS:tls-version-min=tls1.2:dtls-version-min=dtls1.2:DH-MIN=2048:DSA-MIN=2048:RSA-MIN=2048"
Observe que a política
DEFAULT
usa no mínimoTLS 1.2
.
Verifique o Status do Servidor FreeIPA
O servidor FreeIPA inclui o utilitário ipactl
para exibir o status dos serviços configurados. O mesmo utilitário também pode iniciar, interromper e reiniciar o servidor FreeIPA inteiro. Se você precisar start
, stop
ou restart
componentes individuais, use systemctl COMMAND name.service
.
-
Mostra o status de todos os serviços.
sudo ipactl status
Exemplo de Saída:
[oracle@freeipa ~]$ sudo ipactl status Directory Service: RUNNING krb5kdc Service: RUNNING kadmin Service: RUNNING httpd Service: RUNNING ipa-custodia Service: RUNNING pki-tomcatd Service: RUNNING ipa-otpd Service: RUNNING ipa: INFO: The ipactl command was successful
Use
sudo ipactl --help
para ver opções de comando adicionais.
Criar Usuários e Grupos
Com a instalação e configuração básicas do servidor FreeIPA concluídas, a próxima etapa é tratar o gerenciamento de identidades, que consiste na criação de usuários e grupos. Antes de fazer isso, gere um token do Kerberos.
-
Gere um token para o usuário
admin
.kinit admin
-
Obtenha uma lista de tokens existentes.
klist
Por padrão, os tokens do Kerberos são válidos por 24 horas. Devido à execução anterior desses comandos na etapa intitulada "Acessar a CLI (Interface de Linha de Comando), a listagem exibe o token original em vez de criar um novo.
-
Adicione um novo grupo de usuários.
FreeIPA define um grupo de usuários como um conjunto de usuários com políticas de senha padrão, privilégios e outras características.
Um grupo de usuários pode incluir:
- usuários
- outros grupos de usuários
- usuários externos que existem fora de FreeIPA
ipa group-add foo
Exemplo de Saída:
[oracle@freeipa ~]$ ipa group-add foo ----------------- Added group "foo" ----------------- Group name: foo GID: 1326400003
O servidor FreeIPA suporta três tipos de grupo:
- POSIX (padrão)
- Não POSIX
- Externa
O grupo foo
é um grupo de usuários POSIX. Para especificar um tipo de grupo diferente, use uma destas opções:
--nonposix
para criar um grupo não POSIX--external
para criar um grupo externo- Obter uma lista de todos os grupos de usuários existentes.
ipa group-find
Exemplo de Saída:
[oracle@freeipa ~]$ ipa group-find ---------------- 5 groups matched ---------------- Group name: admins Description: Account administrators group GID: 1326400000 Group name: editors Description: Limited admins who can edit other users GID: 1326400002 Group name: foo GID: 1326400003 Group name: ipausers Description: Default group for all users Group name: trust admins Description: Trusts administrators group ---------------------------- Number of entries returned 5 ----------------------------
O servidor FreeIPA cria os grupos de usuários a seguir durante a instalação.
admins
ipausers
trust admins
Advertência: Não exclua o grupo
admin
, pois ele contém o usuárioadmin
padrão. O servidor FreeIPA requer que o grupoadmin
opere corretamente.
-
Adicione uma nova conta de usuário.
ipa user-add
O comando executa um script interativo solicitando que o conjunto mínimo de dados FreeIPA precise criar uma conta de usuário.
Exemplo de Saída:
[oracle@freeipa ~]$ ipa user-add First name: Oracle Last name: User User login [ouser]: oracle ------------------- Added user "oracle" ------------------- User login: oracle First name: Oracle Last name: User Full name: Oracle User Display name: Oracle User Initials: OU Home directory: /home/oracle GECOS: Oracle User Login shell: /bin/sh Principal name: oracle@OD1F5.LINUXVIRT.ORACLEVCN.COM Principal alias: oracle@OD1F5.LINUXVIRT.ORACLEVCN.COM Email address: oracle@od1f5.linuxvirt.oraclevcn.com UID: 1326400004 GID: 1326400004 Password: False Member of groups: ipausers Kerberos keys available: False
Como alternativa, executar o comando com várias opções permite criar uma conta de usuário em um modo não interativo. Para obter uma lista de opções disponíveis, execute
ipa user-add --help
. -
Adicione o novo usuário ao novo grupo de usuários.
ipa group-add-member foo --users=oracle
Exemplo de Saída:
[oracle@freeipa ~]$ ipa group-add-member foo --users=oracle Group name: foo GID: 1326400003 Member users: oracle ------------------------- Number of members added 1 -------------------------
O comando ipa
tem mais funcionalidade do que a mostrada. Para comandos adicionais, execute ipa help commands
para obter uma lista abrangente.
Resumo
Isso conclui este laboratório, que apresenta os conceitos básicos da instalação e uso do servidor FreeIPA. Explore mais usando os links abaixo ou lendo nas páginas manuais do produto, pois o FreeIPA tem muitos recursos adicionais além do que é abordado aqui.
Para Obter Mais Informações
Consulte outros recursos relacionados:
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal YouTube do Oracle Learning. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Install FreeIPA Server on Oracle Linux
F71514-01
October 2022
Copyright © 2022, Oracle and/or its affiliates.