Guide

Nouvelles mises à jour et améliorations de Roundfleet.

Avis important

Les exemples de code et scripts fournis dans ces tutoriels sont uniquement à des fins éducatives. Roundfleet n'est pas responsable des problèmes, dommages ou vulnérabilités de sécurité qui pourraient survenir lors de l'utilisation, modification ou implémentation de ces exemples. Toujours vérifier et tester le code dans un environnement sécurisé avant de l'utiliser dans des systèmes de production.

Gestion du Chiffrement FileVault Entreprise sur macOS

Gérez le chiffrement de disque FileVault sur votre déploiement Roundfleet avec une surveillance complète, des rapports de conformité et une gestion automatisée du chiffrement. Ce tutoriel fournit des solutions de niveau entreprise pour maintenir la sécurité des données grâce au chiffrement de disque.

Comprendre le Chiffrement FileVault

FileVault est la technologie de chiffrement de disque complet d'Apple qui protège les données au repos sur les appareils macOS :

  • Chiffrement de disque complet - Chiffre l'intégralité du disque de démarrage
  • Algorithme de chiffrement XTS-AES-128 avec clé 256 bits
  • Accélération matérielle sur les appareils Mac supportés
  • Gestion des clés de récupération pour le déploiement d'entreprise
  • Exigences de conformité pour les normes de protection des données

Surveillance Basique du Statut de Chiffrement

Vérifier le Statut FileVault

#!/bin/bash

# Vérifier le statut actuel du chiffrement FileVault
sudo fdesetup status

echo "Vérification du statut FileVault terminée"

Vérifier l'État du Chiffrement

#!/bin/bash

# Obtenir des informations détaillées sur le chiffrement
echo "=== Statut FileVault ==="
status=$(sudo fdesetup status)
echo "$status"

# Analyser le statut pour l'automatisation
if echo "$status" | grep -q "FileVault is On"; then
    echo "✅ Chiffrement : ACTIVÉ"
    exit 0
elif echo "$status" | grep -q "FileVault is Off"; then
    echo "❌ Chiffrement : DÉSACTIVÉ"
    exit 1
else
    echo "⚠️ Chiffrement : ÉTAT INCONNU"
    exit 2
fi

Surveillance de la Progression du Chiffrement

macOS 10.11 et 10.12 (Core Storage)

#!/bin/bash

# Surveiller la progression chiffrement/déchiffrement pour les anciennes versions macOS
echo "=== Progression du Chiffrement Core Storage ==="
progress=$(diskutil cs list | grep "Conversion Progress")

if [[ -n "$progress" ]]; then
    echo "Chiffrement en cours :"
    echo "$progress"
else
    echo "Aucune opération de chiffrement/déchiffrement en cours"
fi

macOS 10.13+ (APFS)

#!/bin/bash

# Surveiller la progression du chiffrement pour APFS (macOS 10.13+)
echo "=== Progression du Chiffrement APFS ==="

# Vérifier la progression du chiffrement
enc_progress=$(diskutil apfs list | grep "Encryption Progress")
if [[ -n "$enc_progress" ]]; then
    echo "Chiffrement en cours :"
    echo "$enc_progress"
fi

# Vérifier la progression du déchiffrement
dec_progress=$(diskutil apfs list | grep "Decryption Progress")
if [[ -n "$dec_progress" ]]; then
    echo "Déchiffrement en cours :"
    echo "$dec_progress"
fi

if [[ -z "$enc_progress" && -z "$dec_progress" ]]; then
    echo "Aucune opération de chiffrement/déchiffrement en cours"
fi

Moniteur de Progression Universel

#!/bin/bash

# Moniteur de progression de chiffrement universel
check_encryption_progress() {
    local macos_version
    macos_version=$(sw_vers -productVersion | cut -d. -f1-2)
    
    echo "=== Moniteur de Progression du Chiffrement ==="
    echo "Version macOS : $macos_version"
    
    case "$macos_version" in
        "10.11"|"10.12")
            echo "Utilisation de la surveillance Core Storage..."
            diskutil cs list | grep "Conversion Progress" || echo "Aucune progression détectée"
            ;;
        *)
            echo "Utilisation de la surveillance APFS..."
            local enc_progress dec_progress
            enc_progress=$(diskutil apfs list | grep "Encryption Progress")
            dec_progress=$(diskutil apfs list | grep "Decryption Progress")
            
            if [[ -n "$enc_progress" ]]; then
                echo "Chiffrement : $enc_progress"
            elif [[ -n "$dec_progress" ]]; then
                echo "Déchiffrement : $dec_progress"
            else
                echo "Aucune opération de chiffrement/déchiffrement en cours"
            fi
            ;;
    esac
}

check_encryption_progress

Gestion d'Entreprise Avancée

Audit Complet du Chiffrement

#!/bin/bash

# Outil d'Audit FileVault Entreprise Roundfleet
# Vérification complète du statut de chiffrement et de conformité

# Configuration
LOG_FILE="/var/log/roundfleet_encryption.log"
REPORT_DIR="/var/log/roundfleet_reports"
CONFIG_FILE="/etc/roundfleet/encryption_policy.conf"

# Créer les répertoires s'ils n'existent pas
mkdir -p "$(dirname "$LOG_FILE")" "$REPORT_DIR" "$(dirname "$CONFIG_FILE")"

# Configuration par défaut
cat > "$CONFIG_FILE" 2>/dev/null << 'EOF' || true
# Configuration de la Politique de Chiffrement Roundfleet
REQUIRE_FILEVAULT=true
ALERT_ON_DISABLED=true
MONITOR_PROGRESS=true
COMPLIANCE_REPORTING=true
AUTO_REMEDIATION=false
NOTIFICATION_EMAIL=""
EOF

# Charger la configuration
source "$CONFIG_FILE" 2>/dev/null || true

# Fonction de journalisation
log_action() {
    echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
}

# Obtenir les informations système
get_system_info() {
    echo "=== Informations Système ==="
    echo "Nom d'hôte : $(hostname)"
    echo "Version macOS : $(sw_vers -productVersion)"
    echo "Build : $(sw_vers -buildVersion)"
    echo "Matériel : $(system_profiler SPHardwareDataType | grep "Model Name" | awk -F: '{print $2}' | xargs)"
    echo "Numéro de série : $(system_profiler SPHardwareDataType | grep "Serial Number" | awk -F: '{print $2}' | xargs)"
    echo "Date d'audit : $(date)"
    echo ""
}

# Vérifier le statut FileVault
check_filevault_status() {
    echo "=== Analyse du Statut FileVault ==="
    
    local status
    status=$(sudo fdesetup status 2>/dev/null)
    
    if echo "$status" | grep -q "FileVault is On"; then
        echo "✅ Statut FileVault : ACTIVÉ"
        log_action "Le chiffrement FileVault est correctement activé"
        
        # Obtenir les utilisateurs activés
        local enabled_users
        enabled_users=$(sudo fdesetup list 2>/dev/null)
        if [[ -n "$enabled_users" ]]; then
            echo "Utilisateurs activés :"
            echo "$enabled_users"
        fi
        
        return 0
    elif echo "$status" | grep -q "FileVault is Off"; then
        echo "❌ Statut FileVault : DÉSACTIVÉ"
        log_action "ALERTE SÉCURITÉ : Le chiffrement FileVault est désactivé"
        
        if [[ "$ALERT_ON_DISABLED" == "true" ]]; then
            echo "⚠️  VIOLATION DE CONFORMITÉ : Chiffrement requis par la politique"
        fi
        
        return 1
    else
        echo "⚠️  Statut FileVault : INCONNU"
        log_action "AVERTISSEMENT : Impossible de déterminer le statut FileVault"
        return 2
    fi
}

# Vérifier la progression du chiffrement
check_encryption_progress() {
    echo "=== Progression du Chiffrement ==="
    
    local macos_version
    macos_version=$(sw_vers -productVersion | cut -d. -f1-2)
    
    case "$macos_version" in
        "10.11"|"10.12")
            local cs_progress
            cs_progress=$(diskutil cs list | grep "Conversion Progress")
            if [[ -n "$cs_progress" ]]; then
                echo "Progression Core Storage : $cs_progress"
                log_action "Chiffrement/Déchiffrement en cours : $cs_progress"
            else
                echo "Aucune conversion Core Storage en cours"
            fi
            ;;
        *)
            local enc_progress dec_progress
            enc_progress=$(diskutil apfs list | grep "Encryption Progress")
            dec_progress=$(diskutil apfs list | grep "Decryption Progress")
            
            if [[ -n "$enc_progress" ]]; then
                echo "Progression Chiffrement APFS : $enc_progress"
                log_action "Chiffrement APFS en cours : $enc_progress"
            elif [[ -n "$dec_progress" ]]; then
                echo "Progression Déchiffrement APFS : $dec_progress"
                log_action "Déchiffrement APFS en cours : $dec_progress"
            else
                echo "Aucun chiffrement/déchiffrement APFS en cours"
            fi
            ;;
    esac
}

# Vérifier les informations du disque
check_disk_info() {
    echo "=== Informations Disque ==="
    
    # Informations du disque de démarrage
    local boot_disk
    boot_disk=$(diskutil info / | grep "Device Node" | awk '{print $3}')
    echo "Disque de démarrage : $boot_disk"
    
    # Taille et utilisation du disque
    echo "Utilisation du disque :"
    df -h /
    
    # Informations APFS (macOS 10.13+)
    if command -v diskutil >/dev/null && diskutil apfs list >/dev/null 2>&1; then
        echo -e "\nInformations Conteneur APFS :"
        diskutil apfs list | grep -E "(Container|Volume|Encryption)"
    fi
}

# Générer un rapport de conformité
generate_compliance_report() {
    local report_file="$REPORT_DIR/encryption_compliance_$(date +%Y%m%d_%H%M%S).json"
    
    echo "=== Génération du Rapport de Conformité ==="
    
    # Obtenir le statut FileVault
    local filevault_enabled=false
    local status_detail=""
    
    if sudo fdesetup status 2>/dev/null | grep -q "FileVault is On"; then
        filevault_enabled=true
        status_detail="activé"
    else
        status_detail="désactivé"
    fi
    
    # Créer le rapport JSON
    cat > "$report_file" << EOF
{
  "type_rapport": "conformite_chiffrement",
  "horodatage": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
  "nom_hote": "$(hostname)",
  "numero_serie": "$(system_profiler SPHardwareDataType | grep "Serial Number" | awk -F: '{print $2}' | xargs)",
  "version_macos": "$(sw_vers -productVersion)",
  "chiffrement": {
    "filevault_active": $filevault_enabled,
    "detail_statut": "$status_detail",
    "statut_conformite": "$([ "$filevault_enabled" == "true" ] && echo "conforme" || echo "non_conforme")",
    "politique_requise": $REQUIRE_FILEVAULT
  },
  "infos_disque": {
    "disque_demarrage": "$(diskutil info / | grep "Device Node" | awk '{print $3}')",
    "systeme_fichiers": "$(diskutil info / | grep "File System" | awk -F: '{print $2}' | xargs)"
  },
  "details_audit": {
    "date_audit": "$(date)",
    "version_politique": "1.0",
    "remediation_requise": $([ "$filevault_enabled" != "true" ] && echo "true" || echo "false")
  }
}
EOF
    
    echo "Rapport de conformité sauvegardé dans : $report_file"
    log_action "Rapport de conformité généré : $report_file"
}

# Actions de remédiation
perform_remediation() {
    echo "=== Remédiation Automatisée ==="
    
    if [[ "$AUTO_REMEDIATION" != "true" ]]; then
        echo "Remédiation automatique désactivée dans la politique"
        return 0
    fi
    
    # Vérifier si FileVault est désactivé
    if ! sudo fdesetup status 2>/dev/null | grep -q "FileVault is On"; then
        echo "⚠️  FileVault est désactivé - remédiation requise"
        log_action "REMÉDIATION : Le chiffrement FileVault est désactivé"
        
        echo "Étapes de remédiation manuelle :"
        echo "1. Ouvrir Préférences Système > Sécurité et confidentialité"
        echo "2. Cliquer sur l'onglet FileVault"
        echo "3. Cliquer sur Activer FileVault"
        echo "4. Suivre l'assistant de configuration"
        echo ""
        echo "Ou utiliser la MDM pour imposer la politique de chiffrement FileVault"
        
        # Créer un ticket de remédiation (placeholder)
        echo "Création d'un ticket de remédiation pour l'appareil : $(hostname)"
    fi
}

# Fonction d'audit principale
main() {
    log_action "=== Audit FileVault Roundfleet Démarré ==="
    
    get_system_info
    check_filevault_status
    local filevault_status=$?
    
    echo ""
    check_encryption_progress
    echo ""
    check_disk_info
    echo ""
    
    if [[ "$COMPLIANCE_REPORTING" == "true" ]]; then
        generate_compliance_report
        echo ""
    fi
    
    if [[ $filevault_status -ne 0 ]]; then
        perform_remediation
    fi
    
    log_action "=== Audit FileVault terminé avec le statut : $filevault_status ==="
    return $filevault_status
}

# Exécuter la fonction principale
main "$@"

Gestion des Politiques d'Entreprise

Modèle de Configuration de Politique

#!/bin/bash

# Créer une politique de chiffrement complète
cat > /etc/roundfleet/encryption_policy.conf << 'EOF'
# Politique de Chiffrement Entreprise Roundfleet
# Version : 2.0

# Exigences de Base
REQUIRE_FILEVAULT=true
ENFORCE_IMMEDIATE_ENCRYPTION=true
ALLOW_PERSONAL_RECOVERY_KEY=false
REQUIRE_INSTITUTIONAL_RECOVERY_KEY=true

# Configuration de Surveillance
ALERT_ON_DISABLED=true
MONITOR_PROGRESS=true
PROGRESS_CHECK_INTERVAL=3600  # secondes
COMPLIANCE_REPORTING=true
AUDIT_FREQUENCY=86400  # quotidien

# Paramètres de Remédiation
AUTO_REMEDIATION=false
ESCALATION_THRESHOLD=72  # heures
NOTIFICATION_EMAIL="[email protected]"
HELP_DESK_CONTACT="+33-1-55-00-12-34"

# Politiques de Sécurité
MIN_RECOVERY_KEY_LENGTH=24
RECOVERY_KEY_ROTATION_DAYS=90
ENCRYPTION_ALGORITHM="XTS-AES-128"

# Normes de Conformité
COMPLIANCE_FRAMEWORKS="SOC2,HIPAA,PCI-DSS"
DATA_CLASSIFICATION_REQUIRED=true
AUDIT_TRAIL_RETENTION_DAYS=2555  # 7 ans
EOF

echo "Politique de chiffrement d'entreprise configurée"

Gestion des Clés de Récupération

#!/bin/bash

# Gestion des clés de récupération d'entreprise
manage_recovery_keys() {
    echo "=== Gestion des Clés de Récupération ==="
    
    # Vérifier si la clé de récupération institutionnelle est définie
    local has_institutional_key=false
    if sudo fdesetup list 2>/dev/null | grep -q "institutional"; then
        has_institutional_key=true
        echo "✅ Clé de récupération institutionnelle configurée"
    else
        echo "❌ Aucune clé de récupération institutionnelle trouvée"
    fi
    
    # Valider la clé de récupération
    if [[ "$has_institutional_key" == "true" ]]; then
        echo "Validation de la clé de récupération :"
        sudo fdesetup validaterecovery 2>/dev/null && echo "✅ Clé de récupération valide" || echo "❌ Clé de récupération invalide"
    fi
    
    # Dépôt de la clé de récupération (intégration MDM)
    echo "Statut de dépôt de la clé de récupération :"
    if system_profiler SPConfigurationProfileDataType | grep -q "FDERecoveryKeyEscrow"; then
        echo "✅ Clé de récupération déposée dans la MDM"
    else
        echo "⚠️  Clé de récupération non déposée"
    fi
}

manage_recovery_keys

Surveillance et Alertes

Script de Surveillance Continue

#!/bin/bash

# Démon de surveillance FileVault continue
DAEMON_NAME="roundfleet-encryption-monitor"
PID_FILE="/var/run/${DAEMON_NAME}.pid"
CHECK_INTERVAL=300  # 5 minutes

# Fonctions du démon
start_monitoring() {
    if [[ -f "$PID_FILE" ]]; then
        echo "Démon de surveillance déjà en cours d'exécution (PID : $(cat "$PID_FILE"))"
        return 1
    fi
    
    echo "Démarrage du démon de surveillance FileVault..."
    
    # Boucle de surveillance en arrière-plan
    (
        while true; do
            # Vérification rapide du statut
            if ! sudo fdesetup status 2>/dev/null | grep -q "FileVault is On"; then
                logger -t "$DAEMON_NAME" "ALERTE : Chiffrement FileVault désactivé sur $(hostname)"
                
                # Envoyer une notification (personnaliser pour votre environnement)
                osascript -e 'display notification "Le chiffrement FileVault est désactivé !" with title "Alerte Sécurité Roundfleet"' 2>/dev/null || true
            fi
            
            sleep "$CHECK_INTERVAL"
        done
    ) &
    
    echo $! > "$PID_FILE"
    echo "Démon de surveillance démarré (PID : $!)"
}

stop_monitoring() {
    if [[ -f "$PID_FILE" ]]; then
        local pid
        pid=$(cat "$PID_FILE")
        kill "$pid" 2>/dev/null
        rm -f "$PID_FILE"
        echo "Démon de surveillance arrêté"
    else
        echo "Démon de surveillance non en cours d'exécution"
    fi
}

# Exécuter selon l'argument
case "${1:-start}" in
    start)
        start_monitoring
        ;;
    stop)
        stop_monitoring
        ;;
    restart)
        stop_monitoring
        sleep 2
        start_monitoring
        ;;
    status)
        if [[ -f "$PID_FILE" ]]; then
            echo "Démon de surveillance en cours d'exécution (PID : $(cat "$PID_FILE"))"
        else
            echo "Démon de surveillance non en cours d'exécution"
        fi
        ;;
    *)
        echo "Usage : $0 {start|stop|restart|status}"
        exit 1
        ;;
esac

Notes de Sécurité Importantes

Bonnes Pratiques FileVault

  • Activer avant le déploiement - Chiffrer les appareils avant le déploiement utilisateur
  • Dépôt des clés de récupération - Utiliser la MDM pour la gestion centralisée des clés
  • Rotation régulière des clés - Faire tourner périodiquement les clés de récupération institutionnelles
  • Surveiller la conformité - Surveillance continue des violations de politique
  • Tester les procédures de récupération - Tester régulièrement les processus de récupération de clés

Considérations d'Entreprise

  • Impact sur les performances - Minimal sur le matériel Mac moderne avec T2/Apple Silicon
  • Temps de chiffrement initial - Peut prendre plusieurs heures pour les gros disques
  • Planification de récupération - Assurer la disponibilité des clés de récupération pour le support
  • Formation des utilisateurs - Éduquer les utilisateurs sur les avantages du chiffrement et la récupération
  • Rapports de conformité - Audits réguliers pour les exigences réglementaires

Considérations Apple Silicon

  • Accélération matérielle - Performance de chiffrement optimisée
  • Secure Enclave - Protection renforcée des clés
  • Limitations de surveillance de progression - Certains outils de surveillance peuvent ne pas fonctionner
  • Sécurité de démarrage - Fonctionnalités de sécurité supplémentaires au-delà de FileVault

N'oubliez pas de tester ces scripts de manière approfondie dans votre environnement avant de les déployer sur les appareils de production.

Related Tutorials

Gérer le chiffrement FileVault sur macOS

Apprenez à activer, désactiver et gérer de force le chiffrement de disque FileVault sur les appareils macOS en utilisant des scripts en ligne de commande pour la gestion de la sécurité d'entreprise.

7 juil. 2025

Gestion du Chiffrement de Fichiers sur macOS

Apprenez à chiffrer et déchiffrer des fichiers sur macOS en utilisant OpenSSL, implémenter des politiques de chiffrement d'entreprise, gérer les clés de chiffrement, et assurer la conformité de la sécurité des données sur votre flotte.

7 juil. 2025

Gestion Sécurisée d'Archives sur macOS

Apprenez à créer, gérer et sécuriser des archives sur les appareils macOS en utilisant des fichiers ZIP protégés par mot de passe avec sécurité de niveau entreprise, opérations par lots, suivi de conformité et capacités de gestion d'archives à l'échelle de la flotte.

7 juil. 2025

Gestion des Jetons Sécurisés sur macOS

Apprenez à gérer et accorder des jetons sécurisés aux utilisateurs sur les appareils macOS en utilisant sysadminctl pour la sécurité d'entreprise, la gestion FileVault et l'authentification des opérations cryptographiques.

7 juil. 2025

Gestion à Distance d'Entreprise et Contrôle d'Accès Sécurisé sur macOS

Configuration complète de la gestion à distance, contrôle d'accès sécurisé, support multi-protocoles et cadres de conformité d'entreprise pour les appareils macOS avec surveillance de sécurité avancée et application automatisée des politiques.

7 juil. 2025

Gestion des Mots de Passe d'Entreprise sur macOS

Gérez les mots de passe utilisateur, implémentez des politiques de mots de passe et contrôlez les mécanismes d'authentification sur les appareils macOS en utilisant dscl, sysadminctl et les frameworks de gestion de mots de passe d'entreprise pour la sécurité de flotte.

7 juil. 2025

Gestion Entreprise de Changement de Mot de Passe sur macOS

Guide complet pour les opérations sécurisées de changement de mot de passe en entreprise sur les appareils Roundfleet avec application de politiques, contrôles de sécurité et capacités d'audit complètes.

7 juil. 2025

Gestion d'Entreprise du Pare-feu pour macOS

Gérez les paramètres de pare-feu macOS sur les appareils Roundfleet avec des politiques de sécurité automatisées, une protection réseau avancée, une détection de menaces et une surveillance de conformité complète pour la sécurité réseau d'entreprise.

7 juil. 2025