Table of Contents
Configuração de certificado para um servidor OpenLDAP
Os comandos fornecidos são parte de um processo para configurar certificados SSL/TLS para um servidor OpenLDAP, utilizando a ferramenta certutil para gerenciar certificados. Vou analisar cada comando para explicar o que eles fazem:
certutil
1. Criação do diretório e geração da senha
mkdir /etc/openldap/certs pwgen -sy 32 1 > /etc/openldap/certs/password
- mkdir /etc/openldap/certs: Cria um diretório para armazenar os certificados e a senha do OpenLDAP.
- pwgen -sy 32 1: Gera uma senha segura de 32 caracteres que inclui símbolos e salva no arquivo especificado. Esta senha será usada para proteger a chave privada do certificado.
2. Inicialização do repositório de certificados
certutil -d /etc/openldap/certs -N -f /etc/openldap/certs/password
- certutil -d /etc/openldap/certs -N: Cria um novo repositório de certificados no diretório especificado.
- -f /etc/openldap/certs/password: Usa o arquivo de senha para acessar ou criar o banco de dados de certificados.
3. Geração de ruído para aleatoriedade
head -c 1024 /dev/urandom > /tmp/noise.txt
- Gera 1024 bytes de dados aleatórios de /dev/urandom e salva em /tmp/noise.txt, usado posteriormente como fonte de entropia na criação do certificado.
4. Criação do certificado da Autoridade Certificadora (CA)
certutil -S -n LDAP-CA -t "C,C,C" -x \ -f /etc/openldap/certs/password \ -d /etc/openldap/certs \ -z /tmp/noise.txt \ -s "CN=LDAP-CA,OU=IT,O=Company,L=City,ST=State,C=NL" \ -v 120 \ -Z SHA256 \ -g 4096
certutil -S: Cria um novo certificado. -n LDAP-CA: Nome do certificado. -t “C,C,C”: Define as regras de confiança para o certificado (aqui, confiado para tudo). -z /tmp/noise.txt: Usa o arquivo de ruído como fonte de entropia. -s “CN=…“: Especifica o sujeito do certificado. -v 120: Define a validade do certificado para 120 meses. -Z SHA256: Usa SHA-256 como algoritmo de hash. -g 4096: Gera uma chave de 4096 bits.
5. Criação do certificado do servidor OpenLDAP
certutil -S -n 'OpenLDAP Server' -t ",," \ -c LDAP-CA \ -f /etc/openldap/certs/password \ -d /etc/openldap/certs \ -z /tmp/noise.txt \ -s "CN=OpenLDAP Server,OU=IT,O=Company,L=City,ST=State,C=NL" \ -8 "ldap.domain.tld,ldap.mgmt.domain.tld-example!" \ -v 36 \ -Z SHA256 \ -g 4096
- Semelhante ao comando anterior, mas cria um certificado para o servidor LDAP específico, referenciando a CA criada no passo anterior.
- -8 “ldap.domain.tld,…“: Inclui nomes alternativos para o certificado.
6. Alteração das permissões de arquivos e diretórios
chmod 440 /etc/openldap/certs/password chown ldap. /etc/openldap/certs/*
- chmod 440: Define as permissões de leitura para o usuário e grupo do arquivo de senha.
- chown ldap.: Muda a propriedade de todos os arquivos no diretório para o usuário e grupo ldap.
7. Verificação e listagem dos certificados
certutil -L -d /etc/openldap/certs/ certutil -K -d /etc/openldap/certs/ -f /etc/openldap/certs/password certutil -L -d /etc/openldap/certs/ -n LDAP-CA certutil -V -d /etc/openldap/certs -n "OpenLDAP Server" -u C
- Várias operações de certutil para listar, verificar e validar os certificados e chaves no repositório.
Esses comandos representam uma configuração completa de certificados para um servidor OpenLDAP, utilizando práticas seguras de gestão de chaves e certificados.
OpenSSL
O OpenSSL é uma ferramenta poderosa e flexível que é frequentemente usada para criar certificados e gerenciar chaves públicas e privadas. Abaixo, segue um processo detalhado para criar um certificado de Autoridade Certificadora (CA) e um certificado de servidor usando o OpenSSL, similar ao que você descreveu para o certutil.
1. Criação do diretório e geração da senha
mkdir /etc/openldap/certs openssl rand -base64 32 > /etc/openldap/certs/password
- Criação do diretório: Armazena os certificados e chaves.
- Geração de senha: Gera uma senha segura e a salva em um arquivo.
2. Preparação para criação de chaves e certificados
cd /etc/openldap/certs
3. Criação da chave privada da CA
openssl genrsa -aes256 -passout file:/etc/openldap/certs/password -out ca-key.pem 4096
- genrsa: Gera uma chave RSA.
- aes256: Utiliza a criptografia AES-256 para proteger a chave.
- passout file: Especifica o arquivo que contém a senha para a chave privada.
- 4096: Tamanho da chave em bits.
4. Criação do certificado da CA
openssl req -new -x509 -days 3650 -key ca-key.pem -sha256 -out ca-cert.pem -passin file:/etc/openldap/certs/password \ -subj "/C=NL/ST=State/L=City/O=Company/OU=IT/CN=LDAP-CA"
- req -new -x509: Cria um novo pedido de assinatura de certificado (CSR) e o auto-assina, tornando-o um certificado CA.
- days 3650: Validade do certificado (10 anos).
- sha256: Usa SHA-256 como o algoritmo de hash.
- subj: Linha de comando para preencher o campo de assunto do certificado.
5. Criação da chave privada do servidor LDAP
openssl genrsa -aes256 -passout file:/etc/openldap/certs/password -out server-key.pem 4096
6. Criação do CSR (Pedido de Assinatura de Certificado) para o servidor LDAP
openssl req -new -key server-key.pem -out server-csr.pem -passin file:/etc/openldap/certs/password \ -subj "/C=NL/ST=State/L=City/O=Company/OU=IT/CN=OpenLDAP Server"
7. Assinatura do CSR com a CA criada
openssl x509 -req -days 1095 -in server-csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial \ -out server-cert.pem -passin file:/etc/openldap/certs/password -extensions v3_req -extfile <(echo "subjectAltName=DNS:ldap.domain.tld,DNS:ldap.mgmt.domain.tld")
- x509 -req: Usa o CSR para criar um certificado.
- days 1095: Validade do certificado (3 anos).
- CAcreateserial: Cria um arquivo de número serial se não existir.
- subjectAltName: Adiciona nomes alternativos ao certificado.
8. Mudança de permissões e propriedade dos arquivos
chmod 440 /etc/openldap/certs/password chown ldap:ldap /etc/openldap/certs/*
- Ajusta as permissões para que apenas o usuário e grupo `ldap` possam ler os arquivos críticos.
9. Verificação dos Certificados
openssl x509 -in ca-cert.pem -text -noout openssl x509 -in server-cert.pem -text -noout
- x509 -text: Exibe o conteúdo dos certificados.
Este conjunto de comandos cobre a geração de chaves e certificados para uma CA e um servidor LDAP usando o OpenSSL, proporcionando uma configuração segura similar à que seria feita com certutil.
