Académique Documents
Professionnel Documents
Culture Documents
AUTEUR : JM SIMON
Le Prérequis ........................................................................................................................................3
Serveur Active Directory .................................................................................................................3
Installation de LAPS ............................................................................................................................3
Extension ADMPWD (LAPS) .............................................................................................................3
Extension POSHKEEPASS .....................................................................................................................8
Pour que LAPS puisse fonctionner il faut l’intégrer sur un serveur Active Directory pour qu’il modifie le
schéma de l’Active Directory.
Installation de LAPS
Extension ADMPWD (LAPS)
Cette « Extension » disponible pour Powershell est une extension de l’annuaire Active Directory, elle
permet de centraliser et sécuriser l’ensemble des serveurs Windows ayant un compte d’administration
en locale.
Installation de l’extension
L’extension LAPS va nous permettre de définir un nouveau mot de passe totalement aléatoire tous les
x temps. Puis peut être récupérer sur le serveur LAPS et avec une commande PowerShell.
Installation client :
Import-module AdmPwd.PS
Update-AdmPwdADSchema
On va ensuite attribuer aux machines le droit de modifier ces attributs pour leur propre compte
machine :
En PowerShell :
KeePass existe sous deux versions différentes. La première utilise deux algorithmes de chiffrement :
AES (avec une clé de 256 bits) et Twofish (avec des blocs de 128 bits et une clé de 256 bits). La deuxième
n'utilise qu'AES (avec une clé de 256 bits). Dans notre contexte et en vue de l’importance des
informations stockées, il est logique d’intégrer la solution AES qui associe deux technologies de
chiffrement.
L’interface de KeePass :
Dans notre cas nous utilisons le mot de passe et la clé de déchiffrement. Une double authentification
nous permet déjà un minimum de sécurité. Au moment de la connexion à cette base de données il
nous faudra fournir le chemin d’accès au fichier .key contenant notre clé privée et notre mot de passe.
La base de données est à présent prête à accueillir nos données, il est possible de créer des groupes
pour organiser les utilisateurs.
Cette extension ajoute une nouvelle bibliothèque d’instruction à Powershell pour pouvoir échanger
des informations de connexions, gestion, import, export, … depuis une base de données KeePass.
Scripting
$import = "true"
$modules = Get-Module
$nmodules = $modules.Name
Le script permet de connaitre si le module est déjà présente pour ne pas le réinstaller à chaque
exécution. Il permet aussi de loger une éventuelle erreur lors de l’installation du module pour éviter
toute incompréhension.
Le module PoShKeePass a besoin d’une configuration avant de pouvoir communiquer avec la base de
données KeePass. Cette configuration renseigne le nom de la configuration (à définir), le chemin
d’accès à la base de données et la clé de décryptage pour avoir l’accès à la base de données.
$config = Get-KeePassDatabaseConfiguration
$config = $config.Name
Le script permet de connaitre si une configuration est déjà présent pour ne pas le réinstaller à chaque
exécution. Il permet aussi de loger une éventuelle erreur lors de l’installation du module pour éviter
toute incompréhension.
Il a été demandé qu’un nouveau groupe soit créé toutes les semaines, un groupe portant le numéro
de semaine auquel le script est lancé pour conserver chaque mot de passe en fin de semaine.
# Si le nom du groupe n'existe pas alors on lance la création du groupe sinon il nous
retourne une erreur dans un log
foreach($undouble in $double) {
if($undouble -eq "$KPEGroup $semaine") {
Add-content $outfile "Le script à été lancé le $Date"
Add-content $outfile "------------------- FAIL ---------------------"
Add-content $outfile "Un même dossier portant le même numéro de semaine existe
déjà"
Add-content $outfile "Le script ne peut être lancé qu'une seul fois par semaine "
exit
}
}
10 | M I S E E N P L A C E D E L A P S & K E E P A S S
Réception et envoie des informations (Script) :
$CN = $unlist.ComputerName
$Name = $unlist.Name
$Execpt = $unlist.IsException
if ($Execpt = "False") {
}
}
11 | M I S E E N P L A C E D E L A P S & K E E P A S S