22 Feb 2023, 00:00

Notes sur KeepassXC

Aperçu

Keepass est le client original. En v1 il était disponible uniquement sous Windows. Depuis la V2, il est multiplateforme.
Il est codé en dotnet (et donc mono sous Linux).

KeepassX était un client alternatif à Keepass nativement compatible Linux. Il n’est plus beaucoup développé. Je ne me penche pas dessus.

KeepassXC est un fork communautaire de KeepassX, nativement multiplateforme, codé en C++, et encore mis à jour régulièrement.

Keepass2 et KeepassXC partagent le même format de base de données, le format .kdbx.
Il me semble que Keepass v1 utilisait le format .kdb.

On peut ouvrir un fichier .kdbx alternativement avec Keepass2 et KeepassXC, les modifications sont vues mutuellement.

Par défaut, Keepass2 intègre une icône à la zone de notification.
KeepassXC ne le fait pas, mais on peut activer l’option dans les paramètres. Si on coche “Réduire au lieu de quitter l’appli” et “Afficher une icône dans la zone de notification”, on a le comportement le + souple : la fenêtre est réduite lors de la réduction et disparaît lors de la fermeture ; l’appli étant en permanence en fonctionnement dans la zone de notification.

Pour l’instant je me penche principalement sur KeepassXC. Son dépôt git est ici :
https://github.com/keepassxreboot
et son site officiel ici :
https://keepassxc.org/

On peut l’installer via les dépôts Debian avec la commande
sudo apt install keepassxc

L’intégration de KeepassXC à Firefox nécessite un module. En essayant de l’installer depuis le magasin de modules de Mozilla, je n’ai pas réussi à faire dialoguer les 2. Mais Debian package l’extension, et l’association avec KeepassXC a fonctionné directement (après avoir supprimé l’extension installée manuellement).
sudo apt install webext-keepassxc-browser

Il faut également activer, dans les paramètres de KeepassXC, l’intégration (générique) aux navigateurs, ainsi que l’intégration à chaque navigateur que l’on souhaite utiliser.
L’activation du navigateur Firefox va créer un fichier (qui contient le chemin du proxy KeepassXC) dans ~/.mozilla/native-messaging-hosts/ ; il faut donc la réactiver si on fait des tests à base de dossiers FF tout neuf.

Il me semble que chaque connection entre 1 profil et KeepassXC utilise une “base de données” (qui n’est pas la base de données KDBX, mais simplement le nom du lien entre les 2). On peut le voir dans les paramètre de Keepassxc-browser -> Base de données connectée. Je ne sais pas comment consulter les différents liens dans KeepassXC lui-même.

Une fois l’ensemble paramétré, on voit apparaître le logo de KeepassXC à côté des champs username. Si on clique dessus, cela remplit automatiquement les champs, ou propose de choisir l’identifiant en cas d’IDs multiple enregistrés pour une même URL.

Sync

Le fichier KDBX est synchronisable entre différents postes via des outils externes ; en mon cas Nextcloud.
Après test, il s’avère qu’il est tout à fait possible d’avoir le fichier KDBX déverrouillé sur 2 postes en parallèle. Dès que les modifications sont appliquées par le poste qui n’a pas créé ces modifs, KeepassXC s’actualise tout seul et affiche les modifications, sans besoin de fermer/ouvrir la base ou de redémarrer le logiciel.
La modification sera également accessible sous Firefox sans besoin de le relancer, mais en actualisant toutefois la page.

Import

On peut importer (entre autres) une base de password au format CSV. Ceci permet d’importer les passwords de Firefox.
Un bon guide est ici :
https://blog.bilak.info/2021/04/02/moving-passwords-from-firefox-lockwise-to-keepassxc/

On commence par exporter les mots de passe de Firefox dans un fichier CSV.
Si on utilise une version =< 2.7.0 de KeepassXC (jusqu’à Bullseye pour la version des dépôts Debian), il faut modifier les timestamps via le script présent sur le lien ci-dessus.

Ensuite, dans KeepassXC, “Base de données -> Importer -> Fichier CSV”. On choisit le CSV créé précédemment. Il faut alors créer une nouvelle base de données qui contiendra l’import. On pourra fusionner cette nouvelle base avec une base pré-existante ultérieurement.

Pour l’import, il faut cocher l’option spécifiant que la 1ère ligne contient les noms des champs.
Ensuite, établir cette correspondance :

  • Group -> Not Present
  • Title -> url
  • Username -> username
  • Password -> password
  • URL -> url
  • Notes -> httpRealm (pas obligatoire, mais permet de conserver des informations supplémentaires)
  • TOTP -> Not Persent
  • Icon -> Not Present
  • Last Modified -> timePasswordChanged
  • Created -> timeCreated

Fusion de 2 bases

Ouvrir la base destination.
“Base de données -> Fusionner à partir d’une base de données”. Taper le pass de la base source.
Les dossiers sont respectés lors de l’import.

31 Jan 2023, 00:00

Comptes Microsoft personnels et professionnels

Il y’a 2 types de compte Microsoft : les comptes personnels (créé et géré par soi-même) et les comptes professionnels/scolaires (créés par une organisation pour une personne de l’organisation).

Il est parfois pas évident de distinguer si nous utilisons un compte personnel ou professionnel. Voici des URL qui ne semblent fonctionner que pour 1 seul des 2 types :

PRO
https://myaccount.microsoft.com
(renverra sur microsoftonline.com ; refusera un login personnel)

PERSO
https://login.live.com
(annonce que le compte n’existe pas si on essaye un compte pro)

https://admin.microsoft.com, https://login.microsoft.com , https://account.microsoft.com ou https://login.microsoftonline.com` redirige vers un des 2 “logins” ci-dessus, selon le type de compte.

Il me semble que l’on peut établir une équivalence entre l’usage de l’URL “live.com” et un compte personnel : l’un implique forcément l’autre.
(en fait non : c’est le cas pour strictement https://login.live.com, mais la même URL avec des paramètres peut accepter un compte pro en redirigeant vers login.microsoftonline.com ).

Liens VLSC

https://www.microsoft.com/Licensing/servicecenter/default.aspx
https://www.microsoft.com/fr-fr/licensing/default
https://www.microsoft.com/fr-fr/microsoft-365/enterprise/microsoft-office-volume-licensing-suites-comparison

Pour créer un compte d’admin d’entreprise “.onmicrosoft.com”, il est nécessaire de passer par l’achat d’une licence orientée pro (par exemple Office 365 Business Standard) ; on peut toutefois utiliser l’offre 1 mois gratuite.
Le domaine sera créé via une adresse mail externe en guise d’administrateur. Nécessite une carte bancaire.

Office

Il est déjà arrivé quue la connexion d’Office à un compte personnel, dans le but d’activer le produit, ne se fasse pas, Office essayant de se connecter à un compte pro.
En ce cas, utiliser le Store pour se connecter a fonctionné, et la connexion à Office a ensuite récupéré la connexion établie vers le compte personnel. Il est ensuite possible de se déconnecter du store.

30 Jan 2023, 00:00

Suppression locale d'un compte utilisateur de domaine

Pour supprimer d’un poste le profil d’un utilisateur du domaine (supprimer C:\Users\utilisateur et les entrées de registre associées), il faut aller dans Paramètres -> Système -> À propos de -> Paramètres avancés du système.
Puis Profils des utilisateurs -> Paramètres.

De là, on peut supprimer les profils de domaine (qui ne seront pas supprimés du domaine, juste du poste).

29 Aug 2022, 00:00

Supprimer un profil de domaine d'un poste connecté au domaine

Depuis un compte administrateur local, qui n’est PAS le compte que l’on souhaite supprimer du poste, aller dans les propriétés système -> Paramètres système avancés -> Profile des utilisateurs -> Paramètres.

On peut y supprimer les profils, y compris les profils issus d’un domaine.

20 Jul 2022, 00:00

Notes sur Powershell

Version

$PSVersionTable.PSVersion

Profils

https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-7.3

Les profils sont un peu l’équivalent du .bashrc pour bash.

echo

echo bidule est équivalent à 'bidule'

Variables

Affecter un nombre
$myvar = 1.1

Affecter une chaîne :
$myvar = "Chaîne de caractères"

Affecter plusieurs valeurs (vecteur ?) :
$myvar = 1,"chaine",3

Afficher une variable :
$myvar

Test si variable vide :
if ($myvar) { echo 'not empty' } else { 'empty' }

Variables d’environnement

Obtenir la liste :
dir env:

Utiliser une variable d’env spécifique (ici username) :
$env:username

Lancer Powershell à partir d’un script bat

Dans le script :
powershell -command myPScommand
Les variables affectées dans le script bat sont disponible sous PS dans les variables d’environnement

Langue des messages

on peut changer la langue d’affichage des messages (à l’échelle d’une seule commande) via la syntaxe :
[cultureinfo]::CurrentUICulture='en-us'; myPSCommand
(remplacer myPSCommand par la commande à exécuter)

Encodage

L’encodage par défaut n’est pas UTF-8 (il me semble que c’est UTF-16).
Pour le changer, par exemple avec get-content, il y’a l’option -encoding utf8.

Si cette commande est lancée via un bat, et le résultat utilisé, il faudra changer l’encodage dans le script bat pour qu’il passe en UTF-8 :
chcp 65001

Modules

Get-Module : liste les modules actuellement importés.
Get-Module -ListAvailable : liste tous les modules actuellement installés (avec leur emplacement)
Get-InstalledModule : liste les modules qui ont été installés via install-module (il me semble)

install-module -Name modulename
Demandera à installer NuGet si absent.

uninstall-module ModuleName : pour désinstaller le module

import-Module ModuleName
pour importer le module (rendre les commandes disponibles)

Exemples de modules :

  • MicrosoftTeams
  • PowershellGet

Lister les dépôts :
Get-PSRepository

Si message d’erreur :
AVERTISSEMENT : Unable to resolve package source 'https://www.powershellgallery.com/api/v2

Il faut forcer TLS 1.2. Pour ceci :
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Ceci force TLS1.2 pour la session PS actuelle uniquement. Pour le forcer par défaut, on peut utiliser une clé de registre (force pour Powershell) :
HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\ et créer une clé DWORD SchUseStrongCrypto avec la valeur 1.
Pour les apps 32b sur un OS 64b, on peut aussi créer la même clé à cet emplacement :
HKLM\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319

https://learn.microsoft.com/en-us/mem/configmgr/core/plan-design/security/enable-tls-1-2-client
https://www.inflectra.com/support/knowledgebase/kb510.aspx

07 Feb 2022, 00:00

Gestion fine de la stratégie de mot de passe sur un AD

Sous Windows Server, la stratégie de mot de passe gérée par les GPO est commune à tous les utilisateurs.

À partir de Windows Server 2008 (et 2012 pour l’interface graphique, il me semble), si on veut définir des stratégies plus fines, on peut le faire en passant par les PSO (Password Settings Objects).
Il faut d’abord créer un groupe de sécurité, et y placer les utilisateurs concernés.
Ensuite, ouvrir le Active Directory Admin Center (ADAC) :
dsac.exe
Aller dans domain (local) -> System -> Password Settings Container et faire clic-droit -> Nouveau -> Paramètres de mot de passe.
Donner un nom et une priorité (1 = la + élevée) à la stratégie, régler les paramètres désirés, et choisir le groupe de sécurité précedemment créé dans “S’applique directement à”.

Une fois le PSO créé, il devrait s’appliquer correctement, uniquement aux utilisateurs positionnés dans le groupe, en étant prioritaire par rapport à la stratégie par défaut.

31 Jan 2022, 00:00

Compatibilité DDR DDR-L

La mémoire DDRxL est prévue pour fonctionner à plus bas voltage que la DDRx (par exemple 1.35V pour la DDR3L contre 1.5V pour la DDR3).
Elle est toutefois capable de fonctionner à voltage “complet”.

Donc, la DDRxL peut être mise à la place de la DDRx, mais pas l’inverse. Il faut toutefois, sur une même carte-mère, que toutes les barrettes soient du même type (?).
Pour que le système fonctionne en voltage bas, il faut que l’ensemble des composants le supporte.

31 Jan 2022, 00:00

Permissions des disques VHD/VHDX

Dans Hyper-V, si on crée un disque virtuel, et qu’on l’attribue à une VM dans un 2nd temps, il est possible qu’elle ne puiss pas démarrer avec le message “Erreur d’accès général refusé” concernant le fichier VHD.

Ceci est parce que chaque VM est un objet de sécurité, et qu’il faut lui affecter les autorisation correctes sur le fichier disque. Pour ceci, lancer Powershell, et obtenir le SID de la VM :
Get-VM 'Mon serveur virtuel' | Select-Object VMID (en entrant le nom de la VM).
Puis lui donner les droits sur le fichier :
icacls hard-disk.vhdx /grant %SID%:F (en entrant le SID trouvé ci-dessus).

La VM devrait alors pouvoir démarrer.

Source

27 Jan 2022, 00:00

Gestion des certificats sous Windows

certmgr.msc pour voir les ceertificats de l’utilisateur actuel
certlm.msc pour voir les certificats de la machine elle-même (bureau à distance, etc.)

Pour voir à quel certificat correspond un hachage précis, on peut aller dans Actions -> Rechercher des certificats, choisir “Tous les magasins de certificats”, rechercher dans le champ “Hachage SHA1” et entrer le hash dans le champ “Contenu”.

Les certificats expirés pour l’authentification des clients (Magasin ordinateur -> Personnel -> Certificats) ne semblent pas se supprimer tout seuls après leur expiration, ce qui crée un Evt 64 dans l’observateur d’événement. On peut les supprimer manuellement.

05 Jan 2022, 00:00

Autoriser l'accès à un partage réseau sans authentification depuis Windows Server 2019

Depuis Windows Server 2019, l’accès aux dossiers partagés (sur un autre serveur) qui ne nécessitent pas d’authentification est désactivé.
Pour le réactiver, il faut aller dans gpedit.msc, et aller dans Configuration ordinateur -> Modèles d'administration -> Réseau -> Station de travail LANMAN et activer le paramètre Activer les ouvertures de session invité non sécurisées.

Probablement faisable via gpmc.msc dans le cas d’un domaine.

Source

Possible via regedit aussi ?