Gestion des Identites et des Acces (IAM)¶
Concepts IAM¶
La gestion des identites et des acces (IAM - Identity and Access Management) est un pilier de la securite. Elle repond a deux questions fondamentales : qui es-tu ? (authentification) et que peux-tu faire ? (autorisation).
Authentification vs Autorisation¶
| Concept | Question | Mecanisme | Exemple |
|---|---|---|---|
| Authentification | Qui es-tu ? | Mot de passe, certificat, biometrie, token | Login avec identifiant + MFA |
| Autorisation | Que peux-tu faire ? | Roles, groupes, ACL, RBAC | Acces en lecture seule a un dossier |
Principe du moindre privilege
Chaque utilisateur ou service ne recoit que les droits strictement necessaires a l'exercice de sa fonction. C'est un principe fondamental de securite qui limite l'impact d'une compromission de compte.
Protocoles d'authentification¶
| Protocole | Type | Fonctionnement | Usage |
|---|---|---|---|
| Kerberos | Ticket-based | Le KDC delivre un TGT (Ticket Granting Ticket), puis des tickets de service. Pas de mot de passe transmis sur le reseau. | Active Directory, FreeIPA |
| SAML 2.0 | XML-based federation | L'IdP (Identity Provider) emet une assertion XML signee vers le SP (Service Provider). | Applications web entreprise |
| OIDC | Token-based (OAuth 2.0) | L'IdP emet un ID Token JWT apres authentification. Plus leger que SAML. | Applications modernes, SPA |
| LDAP | Directory query | Interrogation directe de l'annuaire pour verifier les credentials (bind). | Applications legacy |
SSO, MFA et Federation¶
| Concept | Definition | Benefice |
|---|---|---|
| SSO (Single Sign-On) | Une seule authentification pour acceder a tous les services | Moins de mots de passe, meilleure UX |
| MFA (Multi-Factor Authentication) | Au moins 2 facteurs parmi : savoir, avoir, etre | Bloque 99.9% des attaques par credentials |
| Federation | Confiance entre domaines d'identite distincts | Un compte FreeIPA peut acceder aux ressources AD |
Architecture IAM¶
Notre architecture IAM repose sur trois piliers interconnectes pour couvrir les environnements Linux, Windows et Cloud :
graph TB
ENTRA["Microsoft Entra ID<br/>Cloud SSO + MFA<br/>SAML 2.0 / OIDC"]
subgraph ONPREM["Infrastructure On-Premise"]
subgraph FREEIPA_G["FreeIPA - Linux"]
MASTER["INF-IIDA20A<br/>10.15.100.225<br/>Master"]
REPLICA["INF-IIDA20B<br/>10.15.100.226<br/>Replica"]
MASTER <-->|"Replication<br/>multi-master"| REPLICA
end
subgraph AD_G["Active Directory - Windows"]
DC["Domain Controller<br/>Durci CIS L2"]
end
FREEIPA_G <-->|"Cross-realm<br/>Kerberos Trust"| AD_G
end
ENTRA <-->|"SAML 2.0"| AD_G
ENTRA <-->|"OIDC Federation"| FREEIPA_G
subgraph BASTION["Bastion"]
GUAC["INF-ABAS14A<br/>10.15.100.129<br/>Apache Guacamole"]
end
FREEIPA_G -->|"HBAC + SUDO"| LINUX["Serveurs Linux<br/>Rocky 9"]
AD_G -->|"GPO + LAPS"| WIN["Serveurs Windows"]
ENTRA -->|"SSO + MFA"| CLOUD["M365, Azure<br/>Applications Cloud"]
GUAC -->|"SSH / RDP"| LINUX
GUAC -->|"RDP"| WIN
Active Directory - Hardening¶
Active Directory est durci selon les recommandations ANSSI et le CIS Benchmark Level 2, avec une architecture en tiers pour isoler les comptes privilegies.
Modele Tier 0 / 1 / 2¶
Le modele de tiering isole les niveaux de privilege pour empecher un attaquant de pivoter depuis un poste utilisateur jusqu'aux controleurs de domaine :
| Tier | Perimetre | Exemples de ressources | Acces autorise |
|---|---|---|---|
| Tier 0 | Identite (coeur AD) | Domain Controllers, PKI AD CS, ADFS | Uniquement depuis PAW Tier 0 |
| Tier 1 | Serveurs | Serveurs applicatifs, BDD, fichiers | PAW Tier 0 ou Tier 1 |
| Tier 2 | Postes de travail | Stations utilisateurs, peripheriques | PAW Tier 0, 1 ou 2 |
graph TB
subgraph T0["Tier 0 - Identite"]
DC_T["Domain Controllers"]
PAW0["PAW Tier 0<br/>Acces exclusif DC"]
end
subgraph T1["Tier 1 - Serveurs"]
SRV["Serveurs applicatifs"]
PAW1["PAW Tier 1<br/>Admin serveurs"]
end
subgraph T2["Tier 2 - Postes"]
WKS["Postes utilisateurs"]
PAW2["PAW Tier 2<br/>Support IT"]
end
PAW0 -->|"Autorise"| DC_T
PAW1 -->|"Autorise"| SRV
PAW2 -->|"Autorise"| WKS
PAW1 -.->|"INTERDIT"| DC_T
PAW2 -.->|"INTERDIT"| SRV
PAW2 -.->|"INTERDIT"| DC_T
Pourquoi le tiering est critique
Sans tiering, un attaquant qui compromet un poste utilisateur (Tier 2) peut potentiellement recuperer les credentials d'un admin qui s'y est connecte, puis pivoter vers les serveurs et enfin vers les DC. Le tiering brise cette chaine d'attaque.
Mesures de durcissement AD¶
| Mesure | Description | Impact securite |
|---|---|---|
| PAW (Privileged Access Workstation) | Stations dediees par tier, jamais utilisees pour la navigation web | Isole les credentials privilegies |
| LAPS (Local Admin Password Solution) | Rotation automatique du mot de passe admin local, unique par machine | Empeche le lateral movement via comptes locaux |
| NTLMv1 desactive | Protocole d'authentification obsolete et crackable force desactive | Bloque les attaques pass-the-hash legacy |
| SMBv1 desactive | Protocole de partage de fichiers vulnerable (EternalBlue/WannaCry) | Elimine un vecteur d'attaque majeur |
| LLMNR desactive | Protocole de resolution de noms local, facilement spoofable | Bloque les attaques LLMNR poisoning (Responder) |
| NetBIOS desactive | Protocole legacy de resolution de noms | Reduit la surface d'attaque reseau |
| Audit avance | Journalisation des evenements Kerberos, logons, modifications AD | Detection des attaques (DCSync, Golden Ticket) |
FreeIPA¶
FreeIPA est la solution d'identite pour l'ensemble des serveurs Linux. Elle integre un annuaire LDAP (389 DS), Kerberos, DNS, NTP et une PKI dans une solution unifiee.
Fonctionnalites FreeIPA¶
| Fonctionnalite | Description | Exemple concret |
|---|---|---|
| HBAC (Host-Based Access Control) | Controle quel utilisateur peut se connecter a quel serveur | L'equipe SOC peut acceder uniquement aux serveurs SIEM |
| SUDO granulaire | Regles SUDO centralisees par role, hote et commande | L'admin BDD peut faire sudo systemctl restart postgresql mais pas sudo su - |
| SELinux User Maps | Associe un contexte SELinux a un utilisateur FreeIPA | Les utilisateurs non-privilegies sont confines au contexte user_u |
| PKI integree | Autorite de certification pour les certificats de service | Delivrance automatique de certificats TLS pour Apache, LDAP |
| Kerberos Realm | Authentification ticket-based sans mot de passe sur le reseau | kinit user puis acces transparent a tous les services kerberises |
HBAC en pratique
Sans HBAC, tout utilisateur FreeIPA peut se connecter a n'importe quel serveur Linux. Avec HBAC, on definit des regles granulaires : l'equipe reseau accede aux routeurs, l'equipe monitoring au serveur Zabbix, etc. C'est le moindre privilege applique au SSH.
Lab : FreeIPA Master + Replica¶
| VM | IP | Role | CPU | RAM | Services |
|---|---|---|---|---|---|
| INF-IIDA20A | 10.15.100.225 | FreeIPA Master | 2 vCPU | 8 Go | LDAP, Kerberos, DNS, NTP, PKI |
| INF-IIDA20B | 10.15.100.226 | FreeIPA Replica | 2 vCPU | 8 Go | LDAP, Kerberos, DNS, NTP |
Les deux serveurs FreeIPA servent egalement de DNS autoritaire et de serveur NTP pour l'ensemble de l'infrastructure. La replication est multi-master : les modifications peuvent etre faites sur l'un ou l'autre noeud.
Bastion Apache Guacamole¶
Le bastion est le point d'entree unique pour l'administration des serveurs. Aucun acces SSH ou RDP direct n'est autorise depuis le reseau utilisateur.
Fonctionnalites du bastion¶
| Fonctionnalite | Description |
|---|---|
| Acces HTML5 | Interface web, aucun client SSH/RDP a installer |
| Protocoles | SSH, RDP, VNC, Telnet via un navigateur web |
| Enregistrement | Toutes les sessions sont enregistrees (video) pour l'audit et la forensique |
| MFA | Authentification obligatoire via Microsoft Entra ID (OIDC) |
| Controle d'acces | Acces granulaire par utilisateur/groupe a chaque serveur |
| Audit trail | Historique complet des connexions (qui, quand, ou, combien de temps) |
| VM | IP | VLAN | Role |
|---|---|---|---|
| INF-ABAS14A | 10.15.100.129 | VLAN Admin | Bastion Apache Guacamole |
Securite du bastion
Le bastion est un composant critique : sa compromission donnerait acces a tous les serveurs. Il est place dans un VLAN d'administration dedie, durci (SELinux enforcing, CIS), et ses logs sont envoyes en temps reel au SIEM pour detection d'anomalies.
Flux d'authentification complet¶
Le diagramme suivant illustre le parcours complet d'un administrateur qui se connecte a un serveur via le bastion :
sequenceDiagram
participant User as Administrateur
participant Browser as Navigateur
participant Guac as Guacamole<br/>INF-ABAS14A
participant Entra as Microsoft Entra ID
participant IPA as FreeIPA<br/>INF-IIDA20A/B
participant AD as Active Directory
participant Target as Serveur cible
User->>Browser: 1. Ouvre guacamole.infra.indio
Browser->>Guac: 2. Requete HTTPS
Guac->>Entra: 3. Redirection OIDC (SSO)
Entra->>User: 4. Challenge MFA (Authenticator / SMS)
User->>Entra: 5. Validation du 2e facteur
Entra->>Guac: 6. ID Token JWT valide
Guac->>Guac: 7. Verification des ACL Guacamole
alt Serveur Linux (SSH)
Guac->>IPA: 8a. Verification HBAC
IPA-->>Guac: 9a. Acces autorise + ticket Kerberos
Guac->>Target: 10a. Session SSH (certificat ou Kerberos)
IPA-->>Target: 11a. Regles SUDO appliquees
else Serveur Windows (RDP)
Guac->>AD: 8b. Authentification Kerberos
AD-->>Guac: 9b. Ticket de service
Guac->>Target: 10b. Session RDP securisee (NLA)
AD-->>Target: 11b. GPO appliquees
end
Note over Guac: Session video enregistree
Note over Guac: Logs envoyes au SIEM en temps reel
Etapes detaillees du flux¶
| Etape | Action | Protocole | Securite |
|---|---|---|---|
| 1-2 | Acces au portail Guacamole | HTTPS TLS 1.3 | Certificat Vault PKI |
| 3-6 | Authentification SSO + MFA | OIDC / OAuth 2.0 | Token JWT signe, MFA obligatoire |
| 7 | Verification des ACL locales | Interne Guacamole | L'utilisateur ne voit que ses serveurs |
| 8-9 | Verification identite backend | Kerberos / LDAP | HBAC (Linux) ou GPO (Windows) |
| 10-11 | Connexion au serveur cible | SSH ou RDP (NLA) | Certificat SSH CA ou Kerberos ticket |
Zero Trust en pratique
Ce flux illustre une approche Zero Trust : chaque etape est verifiee independamment. L'identite est confirmee par Entra ID (MFA), les droits sont verifies par FreeIPA/AD, et la connexion est enregistree pour audit. Aucune confiance implicite n'est accordee.