J’ai eu pour consigne d’effectuer le chiffrement de tous les PCs sous Windows. Pour Windows 7 Pro, le salut fût dans Veracrypt, voir Chiffrement avec veracrypt. Néanmoins, il y avait des postes sous Windows 10 mais qui n’étaient pas équipés de puce TPM. Qu’à cela ne tienne! On peut utiliser BitLocker sans TPM Et voici comment j’ai fait pour chiffrer des ordinateurs Windows 10 pro non standard sans présence ou activation du module de plateforme sécurisée (TPM – puce de sécurité intégrée), et contourner l’exigence de clé de chiffrement de clé USB.
Dans le cadre de mes activités, j’ai dû chiffrer ou crypter (oui, on peut aussi utiliser le mot crypter) les machines… Au sujet des machines sous Windows 10, un article leur est dédié. Pour les machines sous windows 7, cela a été un peu plus « compliqué ». En effet, Microsoft n’a pas inclus Bitlocker dans les versions Pro de Windows 7. Ultimate et Enterprise sont les seuls gagnants du Loto du chiffrement.
J’ai donc dû utiliser Veracrypt Pour pouvoir déchiffrer (ou décrypter) la machine de l’utilisateur (au cas où. Exemple : réquisition, Police, DGSI, Armée, etc). Il me fallait avoir un moyen de déchiffrement stocké dans un séquestre accessible du service tout en offrant à l’utilisateur la possibilité d’avoir son propre mot de passe. Donc un mot de passe propre à l’utilisateur sur chaque machine mais un moyen de déchiffrer les machines disponible pour le service.
Et j’ai procédé ainsi :
Avec Monero, le minage n’a jamais été aussi simple et aussi « abordable ».
Étape 1 : Procurez-vous une adresse Monero vers laquelle miner! Je vous recommande d’utiliser le portefeuille officiel avec GUI si vous n’avez pas encore de portefeuille Monero.
Étape 2: Téléchargez le mineur que vous souhaitez utiliser. Monero peut actuellement être exploité sur les processeurs et sur les GPU AMD (il faut mettre la carte graphique en mode compute). Des documentations « trompeuses » indiquent que l’on peut utiliser des GPU NVidia. Cela est faux. Monero n’utilise que la puissance CPU et les GPU ont des performances si basse que c’est une perte d’argent. Le minage sur GPU n’est actuellement pas très efficace. L’unique avantage d’avoir des GPU NVidia, c’est que vous pouvez miner quasi simultanément du monero par le CPU et une autre crypto-monnaie par les GPU. Toutefois, dans ce cas de figure, l’investissement financier pour démarrer est particulièrement lourd. Comptez une carte mère multi-processeur Xeon (à ma connaissance il n’existe pas de CM bi-CPU Ryzen AMD ou i5, i7, i9) + le rig GPU NVidia. A ce jour, bi-cpu Intel Xeon + rig GPU Nvidia, en gros 24 000 € HT. Je vous recommande d’utiliser XMRig, disponible sur xmrig.com.
Étape 3 : Configurez votre mineur. Exemple de ligne de commande pour xmrig : xmrig -o pool.minexmr.com:4444 -u 47yjn9ShdYqFFQsPWc6wiHaFNQhuKgFQVRkVXz5hr7gzEjjR8F43pc7GG9JitksiPiFf4HmT3Ucf7FwtEGCj9fAwRiVvNX3 vous pouvez également utiliser l’assistant de configuration XMRig. Ensuite, laissez tourner et attendez que votre solde en attente commence à augmenter sur votre tableau de bord
Mises en garde
En terme de portefeuille, il est notoirement recommandé de ne pas utiliser Freewallet, Changelly ou Coinfloor.
Le pool Minergate est aussi notoirement connu pour se faire de l’argent sur votre dos de manière abusive. C’est le plus facile et le plus simple d’accès mais la simplicité et la facilité ont, semble t-il, un cout.
Paiements
Vous pouvez voir votre solde en attente sur votre tableau de bord de votre pool .
Une fois qu’il est au-dessus de votre seuil, il sera envoyé automatiquement sans frais de tx. Si vous souhaitez un paiement avant d’atteindre votre seuil, vous pouvez utiliser l’option Envoyer maintenant sur votre tableau de bord. Votre solde sera envoyé instantanément, mais vous devrez payer 0,0004XMR pour les frais de tx. Le paiement minimum est de 0,004XMR.
Frais de pool
Les pools facturent des frais de 1% sur les récompenses minières.
Détails de connexion
Il existe plusieurs serveurs de pool de minage à divers endroits. Sélectionnez le plus proche de chez vous afin de réduire le nombre d’actions expirées.
La difficulté s’ajuste automatiquement sur tous les ports à l’exception du 3333. Ne mettez pas en dur les adresses IP dans votre fichier hosts ou dans vos DNS locaux car elles peuvent changer.
Utilisation des identifiants de plate-forme
Chaque portefeuille peut avoir de nombreux identifiants de plate-forme qui vous permettent de visualiser leur hashrate individuellement, alors qu’ils contribuent tous au même portefeuille pour les paiements. Vous pouvez utiliser la fonction rig-id dans les mineurs qui la prennent en charge. Les ID de plate-forme doivent être alphanumériques et comporter moins de 20 caractères. Les travailleurs (ou workers) inactifs seront automatiquement supprimés au bout d’une semaine.
Portefeuille et logiciel démon
Il existe un certain nombre de portefeuilles monero disponibles. Sur les PC, nous vous recommandons d’utiliser MyMonero si vous souhaitez configurer rapidement un portefeuille, ou le démon et le portefeuille officiels Monero de getmonero.org pour une meilleure sécurité. Sur mobile, nous vous recommandons d’utiliser CakeWallet .
Pay Per Last N Shares (PPLNS) est une méthode de distribution des bénéfices entre les mineurs. Il répartit les paiements pour chaque bloc parmi les N dernières actions, quel que soit le moment où le bloc précédent a été trouvé. Cela résout le problème du pool hopping, où il est plus rentable de miner juste après la découverte d’un bloc. Avec PPLNS, les mineurs fidèles obtiendront les meilleurs profits. Minexmr fonctionne en utilisant PPLNS avec une fenêtre d’environ 30 minutes (en fonction de facteurs tels que le hashrate du pool). Cela signifie qu’il y aura une augmentation et une diminution des paiements lorsque vous démarrez ou arrêtez l’exploitation minière.
Partages invalides
Les partages invalides ne devraient pas se produire avec un mineur correctement configuré. Ils sont généralement causés par une ancienne version du logiciel de mineur ou des overclocks instables. Les actions ne seront pas créditées et votre mineur en sera informé. Il n’y a aucune pénalité pour la soumission de partages invalides, cependant si vous en soumettez trop, vous serez temporairement banni.
Il y a des serveurs dont le rôle ne nécessite pas une attention particulière et donc pour lesquels une stratégie de mise à jours automatique, planifiée est intéressante.
Dans mon cas, ce ne sont que 1 ou 2 serveurs qui sont concernés. Je ne vais pas faire une GPO uniquement pour 2 machine.
Je vais dans « éxécuter » et je saisi « gpedit.msc ». Je vais dans « Stratégie Ordinateur local« , puis « Configuration ordinateur« , puis « Modèles d’administration« , puis « Composants Windows« , puis « Windows Update«
Pour définir l’heure, il faut accéder à Configuration du service Mises à jour automatiques, sélectionner l’option 4- Téléchargement automatique et planification des installations, puis entrer une heure dans la zone déroulante Heure de l’installation planifiée.
On peut aussit indiquer que cette installation surviendra lors de la période de maintenance automatique (configurer à l’aide de Configuration de l’ordinateur\Modèles d’administration\Composants Windows\Planificateur de maintenance).
Le paramètre Toujours redémarrer automatiquement à l’heure planifiée force le redémarrage après l’heure d’installation définie et vous permet de configurer un minuteur permettant d’avertir un utilisateur connecté qu’un redémarrage va avoir lieu.
On peut aussi obtenir le même résultat avec une édition du Registre mais ce n’est pas propre. Il vaut mieux laisser Windows manipuler lui même la base de registre via les GPO locales ou domaine.
Avec regedit : HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU
On défini AuOptions sur 4, puis ondéfini l’heure d’installation avec ScheduledInstallTime, ensuite on active AlwaysAutoRebootAtScheduledTime pour terminer on donne le délai en minutes par l’intermédiaire de AlwaysAutoRebootAtScheduledTimeMinutes.
Peu le savent mais on peut faire l’installation de WSUS sans avoir besoin de passer par l’interface graphique, qui à mon goût est un peu limitée. En effet, on peut effectuer l’installation à l’aide de l’applet de commandeInstall-WindowsFeatureet en spécifiant les noms de fonctionnalités appropriés que l’on souhaite installer.
Dans le cas de WSUS, nous nous focalisons uniquement sur la fonctionnalité des services de mise à jour.
On obtient les sous-fonctionnalités possibles et disponibles à l’aide de la cmdlet Get-WindowsFeature et en spécifiant UpdateServices * pour le paramètre Name .
Get-WindowsFeature –Name UpdateServices *
Vous pouvez essayer de tout installer, mais cela se terminera mal pour vous car il y aura un conflit entre l’utilisation de la base de données interne Windows (WID) et l’utilisation d’une autre base de données SQL Server (locale ou distante) pour stocker la base de données SUSDB.
On a le choix entre l’utilisation de WID ou l’utilisation de SQL Server. Chose à savoir mais c’est une solution non pérenne, SLQ Express server est utilisable avec WSUS. Néanmoins, l’utilisation de SQL Server Express est limité (taille mémoire, taille database, etc). Il vaut mieux éviter.
Moi. J’ai choisi WID. Le premier argument. Il n’y a pas d’argent. Le second, je ne veux pas de SQL Express. Et puis… C’est plus simple avec la base de données WID. Plus simple parce qu’il n’y a qu’une seule ligne de code pour tout installer.
Juste pour voir ce qui peut être installé, on utilise le commutateur WhatIf.
À première vue, cela installera WSUS, ainsi que la base de données WID et certains composants IIS qui sont utilisés pour les enregistrements client et d’autres choses. Ca me semble probant. Je supprime WhatIf et je relance la commande.
C’est un chouia long, il faut patienter un peu…
L’installation est terminée. On a un message indiquant qu’une configuration supplémentaire est nécessaire. Pour les habitués, c’est la fameuse postinstall que l’on a en mode graphique. Elle existe aussi en mode POSH.
A partit de la, on va utiliser wsusutil.exe que peu utilisent bien que ce soit un outil puissant. Il se trouve dans C:\Program Files\Update Services\Tools. Il y a les paramètres habituels que l’on utulise usuellement mais il y en a d’autres dédiés à la configuration PostinstallIl suffit juste d’utiliser l’ argument PostInstall .
.\wsusutil.exe postinstall /?
Bien sûr, il faut avoir les paramètres pour spécifier où stocker le contenu et où créer la base de données.
Avant de spécifier l’endroit où je veux stocker le contenu, il faut créer le répertoire pour le stockage. Dans mon infra, nous avons un NetApp pour ce type d’utilisation. JE ne stocke rien dans le disque de l’OS. On crée le lecteur « D:\ ».
New-Item -Path D: -Nom WSUS -ItemType Répertoire
One exécute la commande suivante pour configurer le répertoire de stockage, pour télécharger et enregistrer tous les fichiers de mise à jour dans D:\WSUS.
.\wsusutil.exe postinstall CONTENT_DIR=D:\WSUS
Après tout ça, on a configuré le répertoire de stockage sur un autre lecteur sur lequel sera enregistrer les fichiers de mise à jour.
Utilisation avec un serveur SQL alternatif
Si on veut utiliser un serveur SQL différent pour enregistrer les données au lieu de se fier à WID C’est une option utilisable avec WSUSUtil.exe PostInstall.
Il faudra spécifier à WSUSUtil le répertoire Content, ainsi que la base de données SQL Server que l’on souhaite utiliser je souhaite utiliser pour mon serveur WSUS. Note. Le serveur WSUS doit se trouver sur un domaine pour que la génération de base de données SQL Server distante fonctionne.
Et après quelques minutes, la configuration est terminée avec le répertoire Content sur « D:\WSUS » et la base de données SUSDB configurée sur mon serveur SQL distant.
Inspectez l’état d’installation de WSUS
En utilisant mon installation actuelle de WSUS et la base de données SQL Server distante, nous pouvons maintenant vérifier l’analyseur des meilleures pratiques pour voir si quelque chose d’autre est nécessaire avant de configurer le serveur WSUS et de lancer la synchronisation pour obtenir toutes les métadonnées de mise à jour.
Le serveur WSUS n’est pas configurer pour utiliser le module linguistique. Ca peut se régler plus tard. Il est presque conforme (la Base données est stockée au mauvais endroit)
On configure les langues et on indique au serveur où on veux faire la synchronisation.
#Obtenir les objets WSUS Server
$wsus = Get-WSUSServer
#Connection à la configuration de WSUS server
$wsusConfig = $wsus.GetConfiguration()
#Régler le téléchargement des updates à partir de Microsoft Updates
Set-WsusServerSynchronization –SyncFromMU
#Régler la langue des mise à jours en français et sauvegarder la configuration
$wsusConfig.AllUpdateLanguagesEnabled = $false
$wsusConfig.SetEnabledUpdateLanguages(“fr”)
$wsusConfig.Save()
#Obtenir les enregistrement WSUS et démarrer la synchronisation initiale pour avoir les dernières catégories
$subscription = $wsus.GetSubscription()
$subscription.StartSynchronizationForCategoryOnly()
While ($subscription.GetSynchronizationStatus() -ne ‘NotProcessing’) {
Write-Host “.” -NoNewline
Start-Sleep -Seconds 5
}
Write-Host “Sync is done.”
L’exécution du script.
J’ai bossé sur un script pour WSUS se synchronise automatiquement une fois par jour à minuit et lancer une autre synchronisation pour extraire les métadonnées de mise à jour mais je n’ai pas eu le temps de le finir. Si l’envie vous en prends.
Get-WsusProduct | where-Object {
$_.Product.Title -in (
'CAPICOM',
'Silverlight',
'SQL Server 2016',
'SQL Server 2012',
'SQL Server 2019',
'Exchange Server 2010',
'Windows Server 2012r2',
'Windows Server 2016',
'Windows Server 2019', 'Windows 10')
} | Set-WsusProduct
#Configurer les classifications
Get-WsusClassification | Where-Object {
$_.Classification.Title -in (
'Mettre à jour les correctifs',
'Mises à jour de sécurité',
'Mises à jour critiques',
‘Service Packs’,
'Mises à jour')
} | Set-WsusClassification
#Configurer les synchronisations
$subscription.SynchronizeAutomatically = $true
#Régler la synchronisation prévue à minuit chaque nuit
$subscription.SynchronizeAutomaticallyTimeOfDay = (New-TimeSpan -Hours 0)
$subscription.NumberOfSynchronizationsPerDay = 1
$subscription.Save()
#Lancer une synchronisation
$subscription.StartSynchronization()
La synchronisation peut prendre un certain temps. Une fois l’opération terminée, vous pouvez commencer à examiner les mises à jour disponibles
Il est courant d’avoir un LDAP pour les utilisateur Linux/*nix et un Active Directory pour les utilisateurs sous Windows. Parfois, c’est intéressant d’exporter les utilisateurs du ldap avec quelques infos pour les importer vers l’active directory.
Voici un exemple de fichier qui permet de faire cela. Le fichier a été nettoyé d’informations de mon infra du boulot mais l’idée est là et ça fonctionne. Dans mon cas, il fonctionne de manière quotidienne. Il est lancé par une tâche planifiée.
Avec quelques notions en POSH aka Powershell vous pourrez l’améliorer et le modifier à votre convenance.
# Importer le module active directory pour utiliser les cmdlets AD
Import-Module activedirectory
#copier le fichier csv du ldap ou d'une ressource partagée sur le réseau à partir d'une url
Invoke-WebRequest -Uri "http://intra.deployadmin.com/ldap/ldap.csv" -OutFile "C:\ldap2adds\ldap.csv"
#Chemin complet du path
$pathldap2adds = "C:\ldap2adds"
$SourceFilePath = "C:\ldap2adds\ldap.csv"
# $ADServer = "ad3.deployadmin.com"
# $csvreportfile = $SourceFilePath
$SearchLoc ="CN=users,Dc=deployadmin,DC=com"
$ADServer = "ad4.deployadmin.com"
# Diverses informations utiles
# Stocker les données de ldap.csv dans la variable $ADUsers
# Une boucle sur chaque ligne utilisateur contenant les infos de l'utilisateur dans le fichier csv
$ADUsers = Import-csv $SourceFilePath -Delimiter "|"
foreach ($User in $ADUsers)
{
$Username = $User.uid
$Password = "c6nW484EiFX3"
$Firstname = $User.givenname
$Lastname = $User.sn
$UserMailName = $User.mail
$OU = "Dc=deployadmin,DC=com"
$path="CN=Users,Dc=deployadmin,DC=com"
if (Get-ADUser -F {SamAccountName -eq $Username})
{
#Si l'utilisateur existe envoyer un warning
Write-Warning "le compte utilisateur avec le nom d'utilisateur $Username existe déjà dans l'Active Directory."
}
else
{
#Si l'utilisateur n'existe pas alors creer le compte utilisateur
# Le compte sera cree dans l'OU fourni par la variable $OU
New-ADUser `
-SamAccountName $Username `
-UserPrincipalName $UserMailName `
-Name "$Firstname $Lastname" `
-GivenName $Firstname `
-Surname $Lastname `
-EmailAddress $UserMailName `
-Enabled $True `
-DisplayName "$Lastname $Firstname" `
-Path $path `
-AccountPassword (convertto-securestring $Password -AsPlainText -Force) `
-ChangePasswordAtLogon $true `
}
}
# Feature : sauvegarde du fichier ldap.csv avec la date du jour d'importation
$DateNow = Get-Date -Format "yyyyMMdd" #Date 20210224
$FileName = [io.path]::GetFileNameWithoutExtension($SourceFilePath) #Récupérer le nom de fichier sans son extension
$FileExtension = [io.path]::GetExtension($SourceFilePath)
#Récuperer l'extension du fichier
Rename-Item -Path $SourceFilePath -newname $FileName$DateNow$FileExtension #Rename filename
Le groupe de sécurité Utilisateurs protégés a été introduit avec Windows Server 2012 R2 et est toujours d’actualité dans Windows Server 2019. Ce groupe utilisateurs a été développé pour apporter une meilleure protection des comptes à privilèges élevés (administrateurs, comptes admin fonctionnels, etc) contre les attaques de vol d’informations d’identification. Les membres de ce groupe ont une protection non configurable appliquée. Pour utiliser le groupe Utilisateurs protégés, Le contrôleur e Domaine doit être sous Windows Server 2012r2 minimum et les clients doivent être sous Windows 8.1 minimum ou Windows 2012 R2.
Les comptes de service et les ordinateurs ne peuvent pas être membres du groupe de sécurité des utilisateurs protégés. Ces comptes peuvent être protégés à l’aide de différentes fonctionnalités, telles que les silos de règles, que j’expliquerai plus loin dans ce chapitre.
Pour commencer, nous pouvons examiner le groupe de sécurité Utilisateurs protégés à l’aide de la commande suivante:
Get-ADGroup -Identity "protected users"
Ce groupe se trouve dans le conteneur Utilisateurs par défaut dans AD.
Ici, nous allons ajouter le compte d’utilisateur Adam au groupe Utilisateurs protégés à l’aide de la commande suivante:
J’ai récemment fait un audit de l’Active Directory avec pingcastle. J’ai remarqué que certains comptes dans l’Active Directory étaient actifs, mais avait un mot de passe vide . Cela ne devrait pas être possible si il y a une politique de mot de passe en place. Tout au moins, c’est que je pensais …
Pourquoi y a-t-il des mots de passe vide dans l’Active Directory?
Les comptes actifs avec des mots de passe vides sont une faille de sécurité à mes yeux et ne devraient tout simplement pas être possibles. Pour répondre à la question à laquelle cela se produit et comment l’éviter, nous devons jeter un coup d’œil à l’attribut UserAccountControl.
Attribut : « UserAccountControl »
J’ai découvert que la raison d’un mot de passe vide dans Active Directory peut être trouvé ici – dans l’attribut UserAccountControl. Dans cet attribut, l’indicateur « PASSWD_NOTREQD » peut être défini. Si cet indicateur est défini, un administrateur de domaine peut émettre un mot de passe vide, contournant la stratégie de mot de passe. L’utilisateur ne peut pas faire cela.
Dans Active Directory, vous pouvez rechercher les comptes avec les indicateurs définis. Le filtre LDAP suivant recherchera les comptes qui sont actifs mais dont l’indicateur «PASSWD_NOTREQD » est défini.
Pour les comptes avec l’indicateur « PASSWD_NOTREQD » à l’attribut « UserAccountControl« , la valeur est 544 . La valeur standard de l’attribut « UserAccountControl« (lors de la configuration du compte) est 512 . L’indicateur « PASSWD_NOTREQD » a pour valeur 32 et augmente la valeur de 32 à 544.
Comment est définit l’indicateur « PASSWD_NOTREQD »
L’indicateur « PASSWD_NOTREQD » peut être défini
lors de la migration depuis NT4.
Si vous utilisez IADsContainer.Create, IADs.Put ou IADs.SetInfo
Ce module permet aux développeurs, administrateurs et professionnels de l’informatique décisionnelle SQL Server d’automatiser le développement de bases de données et l’administration de serveurs, ainsi que le traitement de cube multidimensionnel et tabulaire. Pour l’automatisation, utilisez le ReportingServicesTools
Version minimale de PowerShell 5,0
Options d’installation
Installer le module Automatisation
Copiez et collez la commande suivante pour installer ce package à l’aide de PowerShell
Fournit des fonctionnalités supplémentaires pour SSRS (SQL Server Reporting Services). Inclut la possibilité de déployer des rapports SSRS, des ensembles de données et des sources de données.
La suppression est assez simple mais il y a quelques différences selon que l’on utilise WID ou SQL Server. Pour supprimer complètement WSUS, vous devez :