badsectorlabs.ludus_adcs

Rôle Ansible : ADCS (Ludus)

Un rôle Ansible qui installe ADCS sur Windows Server et configure éventuellement des modèles Certified Preowned.

  • Transforme la VM assignée au rôle "badsectorlabs.adcs" en autorité de certification
  • Crée optionnellement des modèles de certificats pour ESC1,2,3 et 13
  • Configure optionnellement ATTRIBUTESUBJECTALTNAME2 sur CA pour ESC6
  • Active optionnellement l'inscription en ligne pour ESC8
  • Crée optionnellement un utilisateur (esc13user), un groupe (esc13group), un modèle (ESC13) et une politique d'émission (IssuancePolicyForESC13) pour ESC13

[!WARNING] Ce rôle n'est pas idempotent ! En définissant une valeur ludus_adcs_escX sur true, en appliquant le rôle, puis en la définissant sur false et en appliquant à nouveau le rôle, cela ne supprimer* pas le modèle qui est maintenant défini sur false.

Exigences

Aucune.

Variables du Rôle

Les variables disponibles sont listées ci-dessous, avec les valeurs par défaut (voir defaults/main.yml) :

# Cela récupère le netbios_name du domaine assigné à cette machine dans la configuration de la plage ludus
ludus_adcs_domain: "{{ (ludus | selectattr('vm_name', 'match', inventory_hostname))[0].domain.fqdn.split('.')[0] }}"
# Cela récupère le vm_name du primary-dc pour le domaine assigné à cette machine dans la configuration de la plage ludus
ludus_adcs_dc: "{{ (ludus | selectattr('domain', 'defined') | selectattr('domain.fqdn', 'match', ludus_adcs_domain) | selectattr('domain.role', 'match', 'primary-dc'))[0].hostname }}"
# Cela récupère le nom d'hôte à partir de la configuration ludus pour cet hôte
ludus_adcs_ca_host: "{{ (ludus | selectattr('vm_name', 'match', inventory_hostname))[0].hostname }}"
ludus_adcs_domain_username: "{{ ludus_adcs_domain }}\\{{ defaults.ad_domain_admin }}"
ludus_adcs_domain_password: "{{ defaults.ad_domain_admin_password }}"
ludus_adcs_ca_common_name: "{{ ludus_adcs_domain }}-CA"
ludus_adcs_esc1: true
ludus_adcs_esc2: true
ludus_adcs_esc3: true
ludus_adcs_esc3_cra: true
ludus_adcs_esc4: true
ludus_adcs_esc6: true
ludus_adcs_esc8: true
ludus_adcs_esc13: true

# Variables pour des ESC spécifiques
ludus_adcs_esc13_user: esc13user
ludus_adcs_esc13_password: ESC13password
ludus_adcs_esc13_group: esc13group
ludus_adcs_esc13_template: ESC13

Dépendances

Aucune.

Exemple de Playbook

- hosts: adcs_hosts
  roles:
    - badsectorlabs.ludus_adcs
  vars:
    ludus_adcs_domain: mydomain
    ludus_adcs_ca_host: CAHOST
    ludus_adcs_domain_username: "mydomain\\Administrator"
    ludus_adcs_domain_password: P@ssw0rd
    ludus_adcs_ca_common_name: mydomain-CA
    ludus_adcs_ca_web_enrollment: true
    ludus_adcs_esc1: true
    ludus_adcs_esc2: true
    ludus_adcs_esc3: true
    ludus_adcs_esc3_cra: true
    ludus_adcs_esc4: true
    ludus_adcs_esc6: true
    ludus_adcs_esc8: true
    ludus_adcs_esc13: true

Exemple de Configuration de Plage Ludus

ludus:
  - vm_name: "{{ range_id }}-ad-dc-win2022-server-x64-1"
    hostname: "{{ range_id }}-DC01-2022"
    template: win2022-server-x64-template
    vlan: 10
    ip_last_octet: 11
    ram_gb: 6
    cpus: 4
    windows:
      sysprep: true
    domain:
      fqdn: ludus.domain
      role: primary-dc
    roles:
      - badsectorlabs.ludus_adcs
    role_vars:
      ludus_adcs_esc6: false # Par défaut, ESC1,2,3,4,6,8 et 13 sont activés

Licence

GPLv3

Certaines parties du code sont basées sur des tâches de GOAD (également sous GPLv3).

Le projet inclus ADCSTemplate est sous licence MIT et a été écrit par Ashley McGlone.

Informations sur l'Auteur

Ce rôle a été créé en 2024 par Bad Sector Labs, pour Ludus.

À propos du projet

Add Active Directory Certificate Services to a Windows server

Installer
ansible-galaxy install badsectorlabs.ludus_adcs
Licence
gpl-3.0
Téléchargements
680
Propriétaire